区块链技术掀起了新一轮科技革命浪潮,将深刻改变金融交易、货物溯源和资产确权等数据管理方式。但这项新技术仍处于发展初期,面临着延展性、数据处理速度、数据安全等方面的挑战。针对这些挑战,目前技术专家们提出的一个解决方案是将一些重要性较低的交易先放在链下处理,处理完成后再大批量上传至区块链中。
区块链上的数据区块是按照一定顺序线性排列的,前后区块环环相扣。比如在比特币区块链中,区块按时间顺序排列,后一个区块中会包含前一个区块的哈希值,修改其中任意一个区块的数值都会导致其后所有区块的数值发生改变。但是链下数据通常不会像链上数据这样按序进行线性排列,那如何将链下无序的数据安全可信地同步至链上呢?此时就要召唤预言机了。
今天的万向区块链小课堂将带大家了解区块链中的预言机及其发展趋势。
什么是预言机?
预言机的英文是Oracle,本意指神谕。比如在希腊神话中,凡人在遇到一些无力应对或是按照常理无法解释的问题时,就会向奥林匹斯山上的众神祈求神谕,请求众神给他们提供解决问题的信息。
区块链中的预言机其实也发挥着类似的功能。区块链本身是无法接触到链下信息的,无法直接验证触发智能合约的条件,因此就需要预言机为区块链提供必要的信息来触发智能合约。简单来说,预言机可以看成是链下信息的传输器,也是智能合约与区块链下信息交互的唯一窗口。
如果这个解释还是让你觉得有些抽象,不妨看一看下面这个例子。假设李雷和韩梅梅打算有奖竞猜周六的气温。李雷猜周六的气温不低于20 °C,而韩梅梅猜周六气温低于20 °C。他们设计了一个智能合约,依据周六的实际气温决出胜者,并为胜者发放奖金。
智能合约要想做出以上判断就必须从可靠的天气预报网站上查询到周六的气温,以此为依据执行后续操作。这个可靠的信息来源就是我们所说的预言机。
由此可见,预言机就是为区块链上智能合约的运行提供可靠信息依据的第三方信息源。
预言机的分类
软件预言机
这类预言机一般是网站、公开数据库这类比较容易获取的网上信息源,能提供气温、交通、金融产品价格等信息。软件预言机可能是目前最为强大的一种预言机,因为它与互联网紧密相连,能实时向智能合约传送最新信息。
硬件预言机
这种预言机通常是物联网中的数据采集器,能将物理世界中的事件结果数字化后发送给智能合约,可用于追踪供应链中的货物运输过程。比如,当带有RFID标签的货物送达仓库后,仓库的传感器就会将这个信息发送给智能合约。
导入型预言机
这类预言机为智能合约提供区块链以外的信息。智能合约接受信息后就会开始执行。上面谈到的李雷和韩梅梅竞猜气温的例子中,用到的天气预报网站就其实就是一种导入预言机。
导出型预言机
这类预言机是将智能合约的数据传送到其他地方,与导入型预言机的信息流动方向完全相反。还是看李雷和韩梅梅这个例子,假设李雷猜中了周六的气温,智能合约就会做出“李雷是胜者”这个判断,并把奖金发放至李雷的账户中,然后将这个消息发送给区块链上的所有节点,让它们验证这笔交易。在这个过程中,智能合约本身就成为了一个导出型预言机。
共识型预言机
这类预言机通常要从几个不同的信息源处查询信息,再基于共识给出最终结果。比如,李雷和韩梅梅设置的智能合约查询了4个天气预报网站上周六的气温,其中3个网站显示周六气温为21 °C,1个网站显示周六气温为19°C。智能合约就会以多数网站认同的数据为准,判断李雷获胜,并给他发放奖金。
预言机发挥作用的关键是要确保其信息的可靠性。
作为智能合约与外界信息交互的唯一窗口,我们必须确保预言机传送给智能合约的信息是真实可靠的,否则将直接影响到智能合约判定和执行结果的可靠性。
上面提到的基于共识的预言机就能有效减低预言机信息造假的风险,即让智能合约基于多个预言机提供的信息做出判断,而不是仅依赖于单一的预言机。还是看李雷和韩梅梅竞猜气温这个例子,如果1个预言机反馈的周六气温是24 °C ,但另外4个预言机反馈的周六气温是18 °C 。出现这种信息冲突时,可以选择为智能合附加解决冲突的条件,或是直接暂停智能合约,进行人工干预。
预言机的发展趋势
一方面,随着区块链对链下信息需求的日益增加,预言机的研究和应用得到了进一步发展。未来预言机可能允许区块链对接现有的API或传统支付网络完成支付,还可能允许智能合约进行跨链操作。另一方面,越来越多的智能合约应用案例也会持续催生出新的预言机。这些创新会让区块链和互联网的交流变得更加简单实用。
总之,搭建实现区块链与链外世界统一融合的平台已逐渐成为一种趋势。平台上标准化的工具和界面会帮助开发者和普通用户轻松使用区块链赋能的服务。越来越多的企业也逐渐意识到需要建造区块链所需的IT基础设施以满足区块链对于信任验证的严格要求。预言机则是其中最有潜力的一大尝试。随着更多企业积极探索区块链技术在实际业务中的应用,我们将看到预言机涵盖更大规模的数据信息。
课后小结
最后为大家总结一下区块链预言机相关的核心概念:
1、区块链预言机是为智能合约提供数据信息的第三方信息源,通过为区块链上的智能合约协议提供区块链以外的信息,大大延展了智能合约的功能范围。
2、预言机发挥效用的前提是必须保证预言机提供的信息是真实可靠的。可行的办法是让智能合约不要依赖于单一的预言机,而是从多个预言机处获取信息,并选取一致性最高的结果作为判断依据,以此降低被虚假信息干扰的风险,但这种做法也会在一定程度上使智能合约运行过程变得更加复杂。
参考资料:
Blockchain Oracles Explained
https://www.mycryptopedia.com/blockchain-oracles-explained/
What Is A Blockchain Oracle?
https://cryptobriefing.com/what-is-blockchain-oracle/
What are Blockchain oracles?
https://cointelegraph.com/explained/blockchain-oracles-explained