此前,据Medium消息,去中心化借贷平台Compound发布了名为“开放预言机系统”的社区项目,以此设定价格预言机的开放标准,让开发者可以从分布式的价格信息流中贡献价格数据。该项目的原型机目前已经在以太坊Rinkeby测试网上运行,发布来自CoinbasePro、Kraken和币安这三个来源的价格信息。
为什么智能合约不直接调用CoinbasePro、Kraken和币安的价格信息,而是要通过“开放预言机系统”呢?
要弄懂这个问题,首先,我们必须什么是预言机(oraclemechanism)。预言机既不是预测价格的机器,也不是甲骨文,而是打通区块链的链上和链下的机制,即将区块链外信息写入区块链内的机制。
区块链是一个确定性的、封闭的系统环境,目前区块链只能获取到链内的数据,而不能获取到链外真实世界的数据,区块链与现实世界是割裂的。区块链不允许不确定的事情或因素,智能合约不管何时何地运行都必须是一致的结果,所以虚拟机不能让智能合约有networkcall,不然结果就是不确定的。即智能合约不能进行输入/输出,无法主动获取外部数据的,所以只能通过预言机将数据给到智能合约。
而预言机可以将外界信息写入到区块链内,完成区块链与现实世界的数据互通。它允许确定的智能合约对不确定的外部世界作出反应,是智能合约与外部进行数据交互的唯一途径,也是区块链与现实世界进行数据交互的接口。
下图就是理想中预言机的工作流程,即外部把数据给链上的Oracle合约,然后Oracle合约再把数据给用户的智能合约。
预言机作为区块链与现实世界进行数据交互的桥梁,应用场景非常多。或者说,一切需要与链下进行数据交互的DApp都需要预言机,比如金融衍生品交易平台、借贷平台、快递追踪/IoT、稳定币、游戏、保险、预测市场等。
以目前最热门的DeFi概念为例,如果是一个通过加密资产抵押或者借贷的项目,那就需要预言机在贷款生成时提供价格数据,同时能监控加密抵押物的保证金比率,在保证金不足的时候发出警告,并触发清算程序。甚至,借贷平台能用预言机来导入借款人的社交、信用和身份信息,以确定不同的贷款利率。举个例子,稳定币DAI需要获取ETH的实时价格,来判断所抵押的加密货币是否达到了平仓价格进而触发平仓。假设有1000个节点,那就需要向交易所或CoinMarketCap的ETH/USDT交易对进行1000次的API数据请求,但是,由于ETH的价格是实时变动的,加上网络延迟、计算速度等原因,每个节点获取到的价格可能都不相同,这部分数据被输入到智能合约后,节点间无法达成共识,那么整个系统就会崩溃。
在保险应用方面,类似Etherisc这样的平台正在建立去中心化的保险应用,包括航空延误险、农作物保险等等。用户以ether支付保费,购买保险,并根据保险协议得到自动赔付。预言机能为这类应用引入外部数据源和事件,帮助去中心化的保险产品做出赔付的决定,并能安排未来的自动赔付。所以在DeFi领域稳定币、去中心化杠杆交易、金融衍生品交易等都需要预言机。
参考知乎孙孝虎文章《什么是区块链预言机》
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。