什么是区块链预言机 BlockChain Oracle

Posted 区块探索

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是区块链预言机 BlockChain Oracle相关的知识,希望对你有一定的参考价值。


预言机 Oracle 是区块链中非常重要的一个功能,但我发现很少有人讨论,也可能很多人对此并不了解。而网上关于预言机的文章很少,很多也没有讲明白,甚至有些还是错误的。所以我整理了一篇详细的文章,分享给大家,相信看完一定会对 Oracle 有一个深层次的了解。



1、预言机(Oracle)是什么?



11 月 6 日,在中国人民银行发布的《区块链能做什么?不能做什么?》的报告中,是这样对预言机定义的。


区块链外信息写入区块链内的机制,一般被称为预言机 (oracle mechanism) 。


预言机的功能就是将外界信息写入到区块链内,完成区块链与现实世界的数据互通。它允许确定的智能合约对不确定的外部世界作出反应,是智能合约与外部进行数据交互的唯一途径,也是区块链与现实世界进行数据交互的接口。


听上去很难理解,我们举例来说。


大家会很形象的把公链比作操作系统(Windows、ios、安卓),DAPP 类比的话就是 APP,那么预言机可以形象的比做 API 接口。API 是一组定义、程序及协议的集合,通过 API 接口实现计算机软件之间的相互通信。


这样类比虽然不准确,但意思就是预言机是区块链和现实世界之间的纽带,可以实现数据互通的工具。



2Oracle 为什么被中译为预言机?



跟别人提起预言机,很多人的第一反应都是预测市场,预言机这个名字确实容易想到预测。


Oracle 最初是来源于古希腊宗教,意为“神谕、先知、预言”。而在互联网领域,预言机(英语:oracle machine),又称谕示机,是一种抽象电脑,用来研究决定型问题。可以被视为一个多了个黑盒子(预言者)的图灵机,这个黑盒子的功能是可以在单一运算之内解答特定问题。


也许你会好奇这跟甲骨文公司有什么关系吗?其实没有关系。


Oracle 在中国叫甲骨文公司的原因可能是另一个故事。在中国商朝晚期,王室把在动物骨骼或龟甲上做占卜记事的文字叫甲骨文,甲骨文被英译为 Oracle bone script,后来 Oracle 公司到中国中译为了甲骨文公司。


(很有道理的猜测 哈哈哈)

什么是区块链预言机 BlockChain Oracle



3、区块链为什么需要预言机?



区块链是一个确定性的、封闭的系统环境,目前区块链只能获取到链内的数据,而不能获取到链外真实世界的数据,区块链与现实世界是割裂的。


一般智能合约的执行需要触发条件,当智能合约的触发条件是外部信息时(链外),就必须需要预言机来提供数据服务,通过预言机将现实世界的数据输入到区块链上,因为智能合约不支持对外请求。


具体原因是这样的。区块链是确定性的环境,它不允许不确定的事情或因素,智能合约不管何时何地运行都必须是一致的结果,所以虚拟机(VM)不能让智能合约有 network call(网络调用),不然结果就是不确定的。


也就是说智能合约不能进行 I/O(Input/Output,即输入/输出),所以它是无法主动获取外部数据的,只能通过预言机将数据给到智能合约。


我们通过一个例子来说明一下。


假设现在我被关进了一个小黑屋里(不要多想,只是例子

以上是关于什么是区块链预言机 BlockChain Oracle的主要内容,如果未能解决你的问题,请参考以下文章

区块链Defi 预言机是什么?

科普 | 什么是区块链预言机?

区块链知识系列 - Oracle预言机

区块链知识系列 - Oracle预言机

区块链去中心化金融Defi之加密资产预言机介绍

Cosmos区块链Chainlink预言机教程