Town Crier: 面向智能合约的可验证数据供给系统

作者:张帆,康奈尔大学(Cornell University)计算机系博士三年级

智能合约指的是实现了某种“合约”的计算机程序,其渊源可追溯至Szabo的开创性工作[1]。智能合约的特点在于“合约”中的条款可以自发履行(self-enforce)而不受外界的影响。由于这种优秀的性质,人们长期以来将智能合约视为现有法律合同的更好的替代。尽管密码学货币(例如比特币)的出现为实现智能合约提供了基础(例如,Ethereum [以太坊] 推出的智能合约就是基于区块链技术),但是要完全实现智能合约的最吸引人的应用场景仍需一项关键的技术突破,那就是可验证数据供给(Authenticated Data Feed)。其原因是几乎所有的智能合约都需要获取区块链以外的信息,例如股票价格等。但是由于智能合约本质上是运行于区块链上的状态机(参见共识协议的限制[2, 3]),其输入只能来自区块链内部,并不能像传统计算机程序一样访问网络。简单的网络代理并不能解决问题,因为尽管HTTPS协议提供了可靠性的保证,但是HTTPS并不能提供可传递的数字签名。因此可信赖数据供给对与智能合约的生态系统是至为关键的。

在这篇论文中,我们提出了一个基于可信赖硬件(Trusted Hardware)的可验证数据供给系统:Town Crier(TC)。TC的基本构想是建立智能合约系统和现有互联网系统之间的桥梁,使得HTTPS协议提供的端到端可验证性延伸到智能合约系统。挑战之一是我们要保证智能合约的安全性不能因此弱化,也不能引入新的脆弱性。因次,我们应用了可信赖硬件(英特尔SGX)和HTTPS协议,并设计了“区块链-可信赖硬件”的混合协议解决了HTTPS缺乏数字签名的限制。同时,TC解决了区块链的保密性问题:通过利用可信赖硬件的保密性,TC可以安全的使用用户密钥来获取访问受控资源。使用TC非常简单。如图一所示,TC由TC合约前端(TC Contract)和TC服务器(TC Server)两部分构成。TC合约前端运行于区块链之上,负责在其他用户合约和 TC服务器之间中转信息。TC服务器又分为Relay和Enclave两部分;其中Enclave运行于由 Intel SGX硬件提供的安全环境中。用户合约只需向TC合约前端发送请求并等待响应即可。TC应用了基于硬件的数字签名来确保包含的完整性。

理论上,我们在UC框架中证明了TC的安全性。在此基础上,我们也探索了设计“区块链-可信赖硬件”混合TCB系统的基本挑战和技术,包括合理资源分配和TCB最小化等。详情见论文[4] (https://dl.acm.org/citation.cfm?doid=2976749.2978326)。我们正在积极部署TC并计划免费供社区使用。

[1] N. Szabo. Smart contracts. http://szabo.best.vwh.net/smart.contracts.html, 1994.
[2] Ethereum, A Next-Generation Smart Contract and Decentralized Application Platform
, https://github.com/ethereum/wiki/wiki/White-Paper
[3] G. Wood, Ethereum: A Secure Decentralised Generalised Transaction Ledger, http://paper.gavwood.com/
[4] Fan Zhang, Ethan Cecchetti, Kyle Croman, Ari Juels, and Elaine Shi. 2016. Town Crier: An Authenticated Data Feed for Smart Contracts. In Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security (CCS ’16). ACM, New York, NY, USA, 270-282. DOI: https://doi.org/10.1145/2976749.2978326

个人介绍:张帆(http://fanzhang.me),康奈尔大学(Cornell University)计算机系博士三年级。研究兴趣为系统安全,可信赖硬件和密码学货币。

Bookmark the permalink.

Comments are closed.