预言机(Oracle)在古希腊是指古代的原始人在向神灵祈祷和祭祀时,神灵降下来的神谕,目的在于传达神的旨意从而预测未来。比如,电影《黑客帝国》里扮演先知角色的老太太就叫Oracle。
传统计算机领域的预言机雏形由图灵于 1939年提出,本质上是一个用于回答问题的黑箱,只适合回答决策类问题(是或者否)和功能性问题(如24能被哪些数整除)。此“预言机”实现数据的访问和调用挂钩,不能独立预测未来,本质上与“预言”无关。
区块链预言机可以解决区块链平台中智能合约与外部数据交互问题,扮演着区块链与外部数据之间桥梁的角色,可以理解为一种数据调用和访问的中间件。区块链预言机是区块链重要的基础设施。
应用场景与方式
以第二代区块链平台以太坊为基础,智能合约逐步迈入行业应用。智能合约允许在没有第三方的情况下进行可信交易,实现交易的可追踪且不可逆转,但是无法与区块链外的数据发生直接联系,需要一个外部的图灵机将数据写入区块链或提供给外部实现数据调用。由此,区块链预言机应运而生。所有需要与链外数据交互的区块链应用都需要借助预言机,典型的应用场景有借贷、保险、博彩与预测市场等。
基于区块链的物联网应用,是将链外传感器信息通过预言机传到链上,让智能合约验证后触发下一步行为。
如下案例可解释预言机的用途:有一个天气预报预警的DApp(分布式应用),用户可以通过链上智能合约进行天气预报的查询。天气预报的数据不是在链上自行生成的,而是需要智能合约向气象服务网站的接口发起请求获取数据。这时预言机就起作用了,智能合约可以向预言机发起请求,由预言机执行气象服务网站接口的调用,返回一致性的响应数据给智能合约,供智能合约处理。
在实现方式上,预言机既可以从链上获取原生数据,成为输出预言机;也可以通过网络爬虫或者传统第三方机构获取数据,成为输入预言机。
如果预言机主要完成链上和链下数据交互,则为数据预言机;如果主要实现虚拟数字资产交易,则为资产预言机;如果主要协同区块链完成共识,则为共识预言机。
中心式预言机设计与实现
按照预言机技术架构来区分,主要分为中心式预言机和分布式预言机。
中心式预言机通过一台预言机,实现数据采集,但是中心式预言机与区块链价值相互有一定抵触,存在一定风险,而分布式预言机可排除相应风险。
目前有一些区块链预言机项目在开展,但是有一定市场应用的主要还是中心式预言机,且部分中心式预言机得到了产业化应用。
中心化预言机由可信中心提供数据,通过第三方企业提供智能合约运行所需要的外部数据,并将数据传输至智能合约中。物联网区块链预言机主要是采集权威第三方表计、传感器数据,采用预言机算法,将数据传输到区块链平台。
和传统网络体系结构相对应,区块链预言机的技术架构自下而上依次为网络协议(一般为 TCP/IP)、操作层、合约层和应用层。
针对中心式区块链,重点是在操作层引入了可信第三方验证系统、可信执行环境(TEEs)。可信第三方验证的渠道必须是让用户可信的。一般来说,中心式预言机网络的审查人最好是由国家权威部门、大型企业担任,并且审查人和项目方无利益关系。主要是通过机制将预言机代码、执行环境进行可信追溯。一般采用硬件可信执行环境来保证。
硬件方面,智能合约的运行和数据调用均在可信执行环境(TEEs)上进行。TEEs基于可信硬件(即与系统其他部分隔离开的硬件),拥有独立处理器和内存,其运行完全独立于操作系统、虚拟机监视器、Bios 以及普通计算机的其他核心部件。TEEs分别在安全性和保密性方面发挥着重要作用。安全性方面,TEEs建立多个安全层,将可信硬件与计算机最脆弱的部分完全隔离,从而大幅缩小了黑客可攻击的范围。保密性方面,TEEs让节点无法查看运算数据,数据在链下进行传输和计算。
基于物联网的中心式区块链预言机将是未来的重要发展方向。目前国内由重庆倍来电新能源公司开发的预言机得到了规模化应用,主要应用在充电桩、光伏、储能、电网数据采集等方面,如在北京实现了“光充储网”一体化应用、模拟实现“隔墙售电”等。具体来说,就是利用该设备将表计数据直接一步上链,并利用内置的区块链钱包实现“光充储网”四角色之间转账,实现“物物转账”。未来,可以结合能源互联网应用场景,推动微电网数据一步上链,加快微电网交易应用和交易可信技术应用。
(作者供职于中国电力科学研究院有限公司,刘永相对本文亦有贡献。作者关于区块链的研究受《区块链内核系统研究及应用探索》(AI71-20-004)项目资助)