说到这个预言机,很多人的第一反应可能是预测市场,判断币价的涨跌。
其实预言机并不是预测未来的机器,预言机是一个用来服务区块链网络的中间接口,它是给项目方提供数据服务的。
那么这个预言机到底是什么呢?预言在互联网领域预言机oracle machine又称为预示机,是一种抽象电脑,用来研究决定性问题,中国人民银行发布的区块链报告里,是这样对预言机定义的:区块链外信息写入区块链内的机制,一般被称为预言机,预言机的功能就是将外界信息写入到区块链内部,完成区块链与现实世界的数据互通。
举例来说,假设现实世界中的“数据源”和区块链中的“数据接口”,是两个使用不同语言的国家,预言机就是中间的翻译官。通过预言机智能合约就可以和链外数据进行无障碍交流。
在实际使用智能合约中,需要预言机对数据进行验证。因为区块链也是基于共识的系统,所运行的智能合约也要求一定要是确定性的程序。预言机对数据验证这一步骤是为了契合共识机制,使最后反馈给智能合约的数据也是“确定性”的。
预言机的运行原理:当区块链上的某个智能合约有数据交互需求时,预言机在接收到需求后,帮助智能合约在链外收集外界数据,验证后再将获取的数据反馈回链上的智能合约。
区块链为什么需要预言机?
因为区块链上的智能合约和去中心化应用(Dapp)对外界数据拥有交互需求。
区块链是一个封闭的环境,链上是无法主动获取链外真实世界的数据。主要是因为区块链无法主动发起Network call(网络调用)而链上智能合约是被动接收数据的。其次,智能合约其实并不“智能”,它只是在满足相应条件下,才达到触发状态的程序。同时,智能合约最终的执行需要合约参与方的私钥签署,智能合约本身没有办法自动执行。
当智能合约的触发条件取决于区块链外信息时,这些信息需先写入区块链内记录。此时需要通过预言机来提供这些区块链外的信息。
先举一个通俗易懂的例子,假设现在我被关进了一个小黑屋里,我对外面的世界发生了什么几乎一无所知,不知道外面是否有人,即使呼叫也没有人回应,只有外面的人在门口告诉我,我才可以得知外面的改变。
智能合约就像这个例子中的“我”一样,它无论何时何地,都无法主动向外寻求信息,只能外部把消息或数据给到里面。而预言机就是这个在门口收到我的请求后,从外面输送消息和数据的人。
或许你又会提出疑问为什么链上无法直接导入和接收数据?主要是因为区块链的共识机制。
区块链是基于共识的网络,所运行的智能合约也要求一定要是确定性的程序, 每笔交易和区块处理过后,每个节点必须要达到相同的状态。但是数据本身具有复杂性和多样性,这也是为什么预言机为了契合区块链的共识机制,除了搜集数据还有一步数据验证的步骤才将最后的“确定性”信息反馈给智能合约。
预言机有什么用?
智能合约的触发和运行不能没有数据源,预言机作为中间数据代理人为智能合约提供数据。这些预言机是智能合约与外部进行数据交互的唯一途径,如果没有预言机智能合约的实用性也会大打折扣。
预言机有哪些作用?
1、预言机提供了智能合约在合约条款得到满足时运行的必要条件,这些条件可以是与智能合约有关的任何东西:温度数据、支付完成、价格变化等;
2、在区块链和互联网之间建立一道可信的数据网络,打破智能合约获取数据的束缚,在保证可信的情况下,使其具有访问互联网数据的能力;
3、为保证所获数据的真实可信,预言机需要提供多种加密证明方法,构建可信环境;
4、预言机具有减少大量围绕传统书面合约的强制执行的浪费性工作的潜能;
5、基于区块链具有的潜力,可以通过强制让所有事情都在一个完全透明的、匿名的情况下,来减少膨胀的官僚主义。
智能合约无法主动获取现实世界的数据,即不能直接引入互联网数据,也不能执法调用外部网络API,而任何商业应用都不可避免地要与现实世界交互,特别是与互联网数据交互。这就是预言机(oracle)诞生的理由。随着区块链网络的不断完善,现实应用场景不断开拓与细化,未来会产生越来越细致的智能合约类型,以及新的预言机结构。这些都会共同构建一个更加实用易用的区块链底层结构,让互联网和区块链之间深化融合,沟通更加便捷和简单。
更多精彩内容,欢迎扫码来撩我,知无不答!