Oracle 是什么?Oracle 的中文意思是先知,预言者。电影黑客帝国里扮演先知角色的老太太就叫做 Oracle。
Oracle 的定义之一是,在某方面具有绝对权威或可提供指引的人或物。
举个例子,在一个小镇上,有个男人每天早上 9 点出来遛狗,风雨无阻。渐渐地,镇上的居民根据这个男人有没有在遛狗,来判断时间。如果看到他在街道上遛狗,那肯定就是早上 9 点了。
对于镇上居民来说,这个男人就是 Oracle(预言者)。
那他是不是一个可靠的预言者呢?不一定。如果他生病了,狗撒手没了,或者天降暴雨,这些都有可能打乱他早上 9 点遛狗的安排,也就是说,他并不是可靠的预言者。
预言者的来源
预言者,或者说先知这个概念来源于古希腊神话。在希腊神话中,先知是帮助人与神沟通的桥梁,通过占卜获得上天诸神的旨意,并告知地上的民众。
占卜的方法有很多,但其本质都是试图预知未来。
区块链上的先知——预言机
区块链技术是我们跟踪链上行为的利器,但如果我们要将链下数据带到链上时,该怎么办呢?比如,我们如何让区块链知道某个代币的价格,天空的颜色,或者美国总统大选特朗普能否连任。
像这样的情况,区块链就需要一个可靠的信息来源——预言机。
你可能有点疑惑,为什么区块链需要知道代币价格这类信息呢?
代币价格这类信息并不是链上天然存在的,而这些信息对于链上智能合约的运行至关重要。比如,处理借贷的智能合约需要根据获取到的最新代币价格来决定借款人的可贷额度。
也有人会问,为什么不使用可靠的外部信息源来解决所有这些问题呢?
恭喜你,问到点子上了!你认为怎样的信息来源是可靠的?很多人会回答:链外的中心化信息源。而「中心化」正是问题所在,「中心化」就意味着单点风险,而经验告诉我们,保持中心化信息源的长期可靠和准确是非常困难的。
如何解决预言机问题?
现在有几个团队正在寻求合适的解决方案。
Augur 便是这个领域的头部玩家之一,它在预测市场做预言机。Augur 让用户通过投票来确定一个事件的真实结果,如果有人认为结果与事实不符,就会进入争议阶段,进一步确认真相。通过这种民主的方式,借助群体智慧发现真相。
另一个解决方案是 Chainlink,致力于创建分布式预言机网络。这个网络允许智能合约访问链外资源,比如其他区块链上的信息或者网站 API 这样的标准数据源。举个例子,如果有一条记录股票市场数据的区块链,那么其他的区块链就可以通过 Chainlink 提供的预言机服务获取股票市场的数据。
预言机的安全性和可靠性?
虽然预言机可以提供数据,但如何确保数据的可靠和准确仍是挑战。
Synthetix 的预言机有一次报价错误,报出的韩元价格为正常价格的 1000 倍。该平台上一个交易机器人检测到这个错误后从中套利,获得了 1000 倍的收益,在一小时内获利超过 10 亿美元。
无独有偶,bZx 协议也发生过预言机报价异常的事件。bZx 协议允许用户通过 Fulcrum 进行保证金交易。这个交易过程并不复杂,但 Fulcrum 需要预言机提供的数据去进行定价,于是它选中了去中心化交易平台 Kyber。作为一个交易平台,Kyber 本应为 Fulcrum 提供精准的实时价格,但比起中心化交易平台,Kyber 的交易体量还是偏小了,流动性不足。
而这一点,被一个用户利用了,并从中牟利。
这个用户先是贷款借出大量以太币,把其中的一部分存入 Fulcrum 平台,然后用剩下的钱吃掉了 Kyber 的所有稳定币挂单。Kyber 上的稳定币受此影响,价格从 1 美元涨到 2 美元。由于 Fulcrum 平台使用 Kyber 提供的预言机报价,导致 Fulcrum 误认为稳定币的价格是 2 美元一枚。紧接着这个用户提走了之前存入 Fulcrum,但价格已经翻了一倍的以太币,在还清借来的以太币后仍获利 60 万美元左右。
这件事情发生后,bZx 团队放弃了 Kyber 提供的预言机服务,转而选择 ChainLink 作为预言机。
预言机的未来
虽然预言者在历史故事中屡见不鲜,但区块链上的预言者——预言机,出现在人们视野中的时间还很短,我们对它还不够了解。现有的预言机机制仍有许多亟待改善之处,在市场吸取了每一个真金白银的教训之后,相信未来的预言机将会更为坚实可靠。
很难说,未来的预言机,会是什么样子的,要是有一个先知告诉我们就好了。