2019年,去中心化借贷平台Compound发布了名为开放预言机系统的社区项目,以此设定价格预言机的开放标准,让开发者可以从分布式的价格信息流中贡献价格数据,因此区块链预言机一次出现于币圈,而对于新入圈的投资者来说,对于区块链预言机一窍不通,那么,区块链预言机概念到底是指什么呢?接下来币圈子小编就来给大家全面分析一下区块链预言机。
11月6日,在中国人民银行发布的《区块链能做什么?不能做什么?》的报告中,是这样对预言机定义的。
区块链外信息写入区块链内的机制,一般被称为预言机 (oracle mechanism) 。
预言机的功能就是将外界信息写入到区块链内,完成区块链与现实世界的数据互通。它允许确定的智能合约对不确定的外部世界作出反应,是智能合约与外部进行数据交互的唯一途径,也是区块链与现实世界进行数据交互的接口。
听上去很难理解,我们举例来说。
大家会很形象的把公链比作操作系统(Windows、IOS、安卓),DAPP 类比的话就是 APP,那么预言机可以形象的比做 API 接口。API 是一组定义、程序及协议的集合,通过 API 接口实现计算机软件之间的相互通信。
这样类比虽然不准确,但意思就是预言机是区块链和现实世界之间的纽带,可以实现数据互通的工具。
区块链是一个确定性的、封闭的系统环境,目前区块链只能获取到链内的数据,而不能获取到链外真实世界的数据,区块链与现实世界是割裂的。
一般智能合约的执行需要触发条件,当智能合约的触发条件是外部信息时(链外),就必须需要预言机来提供数据服务,通过预言机将现实世界的数据输入到区块链上,因为智能合约不支持对外请求。
具体原因是这样的。区块链是确定性的环境,它不允许不确定的事情或因素,智能合约不管何时何地运行都必须是一致的结果,所以虚拟机(VM)不能让智能合约有 network call(网络调用),不然结果就是不确定的。
也就是说智能合约不能进行 I/O(Input/Output,即输入/输出),所以它是无法主动获取外部数据的,只能通过预言机将数据给到智能合约。
我们通过一个例子来说明一下。
假设现在我被关进了一个小黑屋里(不要多想,只是例子我对外面的世界发生了什么一无所知,不知道外面是否有人,即使呼叫也没有人回应,而我知道外界信息的方式,只有外面的人在门口把他看到的听到的都告诉我,我才可以得知。
例子虽然不太恰当,但智能合约就像这个例子中的我一样,它无论何时何地,都无法主动向外寻求信息,只能外部把消息或数据给到里面。而预言机就是这个在外面输送消息和数据的人。
好像这么看来,智能合约并不是很智能呀,是的,智能合约其实是完成的不智能的事情,即写好了条件和结果,当给它条件的时候,就可以触发,但也不会马上执行,还需要合约相关的人进行私钥签署才可以执行。
所以,网上很多文章其实都有水分,比如智能合约某个时间或者触发某个条件就可以自动执行之类的,只能说这样的句子在逻辑上可能是有问题的。关于预言机的很多文章也有水分,描述的并不准确。
好了,上面就是区块链为什么需要预言机,因为智能合约无法主动去获取链外的数据,只能被动接受数据。
通过以上介绍,相信大家对于区块链预言机概念有所了解,区块链预言机作为区块链与现实世界进行数据交互的桥梁,应用场景非常多,比如借贷平台、快递追踪/IoT、稳定币、保险等等,可以毫不夸张的说,区块链作为一种新兴的技术,还需要不断的探索和尝试,而区块链预言机在其中扮演着非常重要的角色。