不要把 Oracle 理解成 “甲骨文”,或者数据库
上段时间我们的保姆级教程栏目有些偏航,讲了不少关于保险和 NFT 的内容,本期我们回归正道,继续学习一些区块链世界中的基础概念 —— 预言机。
预言机是一个向区块链提供外部信息的链下服务,它扮演着连接区块链和外部世界的角色。
虽然智能合约解决了人与人之间的信任交互问题,但区块链是一个确定的、封闭的系统环境,区块链只能获得链上的数据,却无法获取到链下的真实世界的数据。
举个例子,张三和李四通过智能合约打赌,2020 东京奥运会开始的一周内 A 国的奖牌数量会不会突破 50 枚。张三觉得会突破 50 枚,李四认为不会,他们为这个赌约下注 100 UNB 币,下注的代币被锁在智能合约中,智能合约会根据最后的结果将代币转账到获胜一方的钱包中。
问题来了,智能合约无法获取真实世界的数据,它又怎么能知道 A 国到底有多少奖牌呢?
因此,我们需要 预言机 (Oracle) 来完成这项工作。
继续我们的例子,每天,智能合约都会通过 预言机 来查询 A 国奖牌数量,智能合约向预言机发起一个查询请求,预言机调用东京奥运会奖牌榜的官方数据接口,获取到 A 国奖牌数量后,将数据返回给智能合约。获取到奖牌数据的智能合约就会执行相关操作,判断赌约的获胜者是张三还是李四。
在这个打赌的例子中,预言机 充当了一个传话者的角色。假如没有了预言机,张三和李四之间的打赌无法实现。
上面我们说到,预言机通过东京奥运会奖牌榜的官方数据接口来获取 A 国的奖牌数据,但这个数据接口的数据是真实可靠的吗?万一网站数据出错了呢?万一预言机被张三劫持了,提供虚假数据呢?这些都是有可能发生的,区块链世界中也发生过预言机被攻击的安全事件。因此,我们需要对预言机进行缜密、安全的设计,确保数据的可靠性和真实性
总而言之,预言机是去区块链的重要一环,它为区块链打开了一扇通往外部世界的窗户。
下期我们来了解一下目前主流的预言机项目。