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. Many of their envisioned uses require them to consume data from outside the blockchain. (For example, a financial instrument might rely on a stock price.) Trustworthy *data feeds* that can support data requests by smart contracts will thus be critical to any smart contract system.

We present an authenticated data feed system called Town Crier (TC). TC builds on the observation that many web sites, such as major news and finance sites, already serve as trusted data sources for non-blockchain uses. TC acts as a bridge between such servers and smart contract systems. It uses trusted hardware to authenticate and scrape data from HTTPS-enabled websites and to generate trustworthy data for relying smart contracts. It also includes a range of advanced features such as support for private data requests, which involve decryption and evaluation of request ciphertext within TC's hardware. We describe the TC architecture, its underlying trust model, and its applications, and report on an implementation that uses the newly released Intel SGX software development kit and furnishes data for the smart-contract system Ethereum. To the best of our knowledge, ours is the first research paper reporting system implementation on a real SGX-enabled host. Finally, we present formal proofs of the security of TC, including correct handling of payment in Ethereum. We will soon be launching TC as an online public service.

Category / Keywords: applications, SGX, smart contracts

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

Contact author: juels at cornell edu

Available format(s): PDF | BibTeX Citation

Version: 20160330:013429 (All versions of this report)

Short URL:

Discussion forum: Show discussion | Start new discussion

[ Cryptology ePrint archive ]