Cryptology ePrint Archive: Report 2016/168

Town Crier: An Authenticated Data Feed for Smart Contracts

Fan Zhang and Ethan Cecchetti and Kyle Croman and Ari Juels and Elaine Shi

Abstract: Smart contracts are programs that execute autonomously on blockchains. Their key envisioned uses (e.g. financial instruments) require them to consume data from outside the blockchain (e.g. stock quotes). Trustworthy data feeds that support a broad range of data requests will thus be critical to smart contract ecosystems. We present an authenticated data feed system called Town Crier (TC). TC acts as a bridge between smart contracts and existing web sites, which are already commonly trusted for non-blockchain applications. It combines a blockchain front end with a trusted hardware back end to scrape HTTPS- enabled websites and serve source-authenticated data to re- lying smart contracts. TC also supports confidentiality; it enables private data requests with encrypted parameters and secure use of user credentials to scrape access-controlled on- line data sources. We describe TC’s design principles and architecture and report on an implementation that uses Intel’s recently introduced Software Guard Extensions (SGX) to furnish data to the Ethereum smart contract system. We formally model TC and define and prove its basic security properties in the Universal Composability (UC) framework. Our results include definitions and techniques of general interest relating to resource consumption (Ethereum’s “gas” fee system) and TCB minimization. We also report on experiments with three example applications. We plan to launch TC soon as an online public service.

Category / Keywords: applications, SGX, smart contracts

Date: received 19 Feb 2016, last revised 29 Jun 2016

Contact author: juels at cornell edu

Available format(s): PDF | BibTeX Citation

Version: 20160630:031647 (All versions of this report)

Short URL:

Discussion forum: Show discussion | Start new discussion

[ Cryptology ePrint archive ]