Paper 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.
Metadata
- Available format(s)
- Publication info
- Preprint. MINOR revision.
- Keywords
- applicationsSGXsmart contracts
- Contact author(s)
- juels @ cornell edu
- History
- 2017-08-28: last of 6 revisions
- 2016-02-19: received
- See all versions
- Short URL
- https://ia.cr/2016/168
- License
-
CC BY