预言机 Oracle 是区块链中很是重要的一个成果,但我发明很少有人接头,也大概许多人对此并不相识。而网上关于预言机的文章很少,许多也没有讲大白,甚至有些照旧错误的。所以我整理了一篇具体的文章,分享给各人,相信看完必然会对 Oracle 有一个深条理的相识。
1、预言机(Oracle)是什么?
11 月 6 日,在中国人民银行宣布的《区块链能做什么?不能做什么?》的陈诉中,是这样对预言机界说的。
区块链外信息写入区块链内的机制,一般被称为预言机 (oracle mechanism) 。
预言机的成果就是将外界信息写入到区块链内,完成区块链与现实世界的数据互通。它答允确定的智能合约对不确定的外部世界作出回响,是智能合约与外部举办数据交互的独一途径,也是区块链与现实世界举办数据交互的接口。
听上去很难领略,我们举例来说。
各人会很形象的把公链比作操纵系统(Windows、IOS、安卓),DAPP 类比的话就是 APP,那么预言机可以形象的比做 API 接口。API 是一组界说、措施及协议的荟萃,通过 API 接话柄现计较机软件之间的彼此通信。
这样类比固然禁绝确,但意思就是预言机是区块链和现实世界之间的纽带,可以实现数据互通的东西。
2、Oracle 为什么被中译为预言机?
跟别人提起预言机,许多人的第一回响都是预测市场,预言机这个名字确实容易想到预测。
Oracle 最初是来历于古希腊宗教,意为“神谕、先知、预言”。而在互联网规模,预言机(英语:oracle machine),又称谕示机,是一种抽象电脑,用来研究抉择型问题。可以被视为一个多了个黑盒子(预言者)的图灵机,这个黑盒子的成果是可以在单一运算之内解答特定问题。
也许你会好奇这跟甲骨文公司有什么干系吗?其实没有干系。
Oracle 在中国叫甲骨文公司的原因大概是另一个故事。在中国商朝晚期,王室把在动物骨骼或龟甲上做占卜记事的文字叫甲骨文,甲骨文被英译为 Oracle bone script,厥后 Oracle 公司到中国中译为了甲骨文公司。(很有原理的揣摩 哈哈哈)
3、区块链为什么需要预言机?
区块链是一个确定性的、关闭的系统情况,今朝区块链只能获取到链内的数据,而不能获取到链外真实世界的数据,区块链与现实世界是盘据的。
一般智能合约的执行需要触发条件,当智能合约的触发条件是外部信息时(链外),就必需需要预言机来提供数据处事,通过预言机将现实世界的数据输入到区块链上,因为智能合约不支持对外请求。
详细原因是这样的。区块链是确定性的情况,它不答允不确定的工作或因素,智能合约不管何时何地运行都必需是一致的功效,所以虚拟机(VM)不能让智能合约有 network call(网络挪用),否则功效就是不确定的。
也就是说智能合约不能举办 I/O(Input/Output,即输入/输出),所以它是无法主动获取外部数据的,只能通过预言机将数据给到智能合约。
我们通过一个例子来说明一下。
假设此刻我被关进了一个小黑屋里(不要多想,只是例子????),我对外面的世界产生了什么一无所知,不知道外面是否有人,纵然呼唤也没有人回应,而我知道外界信息的方法,只有外面的人在门口把他看到的听到的都汇报我,我才可以得知。
例子固然不太得当,但智能合约就像这个例子中的我一样,它无论何时何地,都无法主动向外寻求信息,只能外部把动静或数据给到内里。而预言机就是这个在外面输送动静和数据的人。
仿佛这么看来,智能合约并不是很智能呀,是的,智能合约其实是完成的不智能的工作,即写好了条件和功效,当给它条件的时候,就可以触发,但也不会顿时执行,还需要合约相关的人举办私钥签署才可以执行。
所以,网上许多文章其实都有水分,好比智能合约某个时间可能触发某个条件就可以自动执行之类的,只能说这样的句子在逻辑上大概是有问题的。关于预言机的许多文章也有水分,描写的并禁绝确。
上面就是区块链为什么需要预言机,,因为智能合约无法主动去获取链外的数据,只能被动接管数据。
4、预言机怎么办理这个问题?
来历:ChainLink 白皮书
这是抱负中预言机的事情流程,即用户的智能合约把请求给链上 Oracle 合约,通过链下的 API 接口得到外部数据,更确切的说是外部把数据给链上的 Oracle 合约,然后 Oracle 合约再把数据给用户的智能合约。或者很难领略,因为在互联网中,挪用数据长短常容易的,只需要在措施中写挪用的代码就可以了。可是区块链与外部世界的数据交互,确实不能举办这样的操纵。
5、预言机的应用场景有哪些?
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。