科普 | 什么是预言机

Ajian   |     |   2385 次阅读

当你需要一些你不想自己获取(或者你无法获取!)的数据时,你需要与预言机这样的第三方进行交流。原因有很多。

一方面,在签署比特币多重签名交易时,你可能无法相信某一实体。比方说,你希望一笔资金在某些特定条件下被转移。与其自己手动执行(不委托任何第三方)或将其委托给第三方执行(你不会信任他,因为他可能表现很差),不如用比特币的方式强制执行多重签名,将交易审批流程分派到不同的签署方(预言机?)。

利用 N/M 多重签名交易(译注:即在M个签名方中只要有 N 个同意交易就能执行的多重签名机制)的方法是确保每个预言机只拥有一个私钥,这样预言机可以在它认为正确的时间进行签名,但交易只会在 M 个预言机中的 N 个都对签署某个交易达成一致时才有效。这比信任单一的第三方要强大得多,因为选择的预言机可能是相互竞争的,因此全部作假的可能性很低。

分布式预言机网络的想法已经存在了很多年,但是在一个跨预言机通信协议(Orisi 算是其中一个吗?)上找到共识是很困难的。寻找愿意加入该网络的各方更加困难,因为需要先建立一个良好的激励机制,而且我们还不知道应该如何设计与这个预言机网络进行的交互。除此之外,一个主要限制可能是你想要获取数据的数据源,其中一些可能在未经许可的情况下无法在外部使用(稍后我们将对此进行更深入的讨论)。

考虑到(以太坊)智能合约时,这个想法有了很大改观,交易的批准逻辑在网络上由你自己的智能合约代码实施。这意味着预言机并不会在某些条件得到验证时就执行签名,而会向你提供你要求的数据,你就可以直接验证条件并触发交易或者状态更改。但是你仍然不能依靠分布式网络来获取外部数据:链上的应用程序/服务活在自己的世界里,因此需要预言机来引入外部数据。

数据日益增长的需求来自越来越多的行业寻求愈发复杂的现实世界用例。然而,大多数关于预言机的误解是由于你并没有清楚地认识到你需要什么样的数据。

例如 Augur 或 Gnosis 这样的预测市场平台就是为未来发生的关于人群不断变化的情绪(或知识!)的良好和可靠的指标。预测市场通常也被称为预言机,但相对于上面讨论的预言机,预测市场的意义是不一样的,覆盖面更为广泛。

还有一点值得讨论,我们只想把预言机当做价格推送吗?在这个情况下,预言机就只是一个数据源,大多数时候它不会与区块链有任何关联。金融机构通常将“彭博社”或“路透社”称为预言机,但真正含义是金融机构只是将其用作数据源。作为真正的预言机会需要与区块链交互,由此产生很多复杂问题,而这是一些数据源不愿意负担的(额外的复杂性和成本)。尽管如此,一旦选择了合适的数据源和公式,预言机就可以访问彭博社的数据。把“数据源”称为“预言机”,是对术语的误用。

为了方便描述,我们定义一下这3种类型:

  • 数据源
  • 查询
  • 预言机 / 预言机网络

数据源(data-source)即你要查找的信息的来源,根据你的实际查询内容,数据源可以是任何东西,一些例子包括 “Augur”(查看未来事件/事实),“Bloomberg”( 寻找金融数据),“比特币区块链”(寻找地址余额,某个交易的 OP_RETURN 内容或任何其他区块链数据),“WolframAlpha”(寻找对给定 Wolfram Alpha 查询的响应)或..“网络”? 获取 Web 数据源或 API 数据是获取数据的最简单也是最常用的方法。

查询是你选择的数据源可以理解的公式,以便将你想要的数据提供给你。

预言机/预言机网络是负责将你连接到数据源。

以下两点我认为值得提一下:

  1. 我为什么要信任数据源?大多数情况下你不应该信任。在不同的数据源中找到其共识是一个很好的方法,并且可以提供额外的可靠性,同时仍然使用某种“中心化”(有用)的数据。
  2. 如果预言机/预言机网络给我返回错误的结果怎么办?这是希望使用预言机网络共识而不是单个预言机的主要论点。但是,不是还有其他办法来阻止预言机伪造数据吗?回头我们稍微讨论一下。

Oraclize 方案作为预言机的实现有点不同。

你可以把 Oraclize看作单个预言机和增强型预言机网络之间的东西。Oraclize 可能会避免响应你的数据请求(由于法律原因或停机时间),但无法更改你选择的数据源的数据。

这就是为什么我们的服务被称为“可证诚实的”。这个方案得以存在要感谢 TLSNotary/pagesigner。它是对 TLS 的一种修改,我们的预言机服务使用它来提供密码学证明,表明我们提供给你的数据和给定服务器在特定时间给予我们的数据是一致的。除了提供此证明外,Oraclize 还将证明分发到网络上,作为 IPFS 持久联盟的一部分,即使我们的系统(出于任何原因)无法访问,我们的证明多数时候也是可用的。

我们确实还会提供工具来独立验证我们的可信度。例如,以太坊网络监视器从你的客户端(这就是为什么它占用好多磁盘空间,骚瑞!)连接到以太坊公共节点和 IPFS 网关(或者如果你愿意的话连接到你本地节点)寻找 Oraclize 交易,取回它们的 TLSNotary诚实证明并验证。

你可以轻松地自行监控网络,以确保Oraclize方案的行为诚实,并且我们鼓励你这样做!

这在实践中意味着什么?如果我们篡改了你的数据,任何人可以在任何时候自动地验证这一点,我们会瞬间名誉扫地。如果遇到一次错误对你来说仍然太冒险,那么你可以等待我们发布正在为以太坊开发的开源链上验证码系统。这意味着你的智能合约代码可以在从 Oraclize 接收数据时自行验证 TLSNotary 证明,以便在证明结果无效时丢弃此数据!

在我们看来,Oraclize 方案是一种很好的折衷办法,以一种适用于当今的分布式区块链和智能合约的方式解决“预言机问题”。拥有预言网络将有助于解决“审查/停机”问题,但依靠单一预言所带来的风险却因为 Oraclize 方案正在实施的新方法而大大减少。


Oraclize team 声明:本文中有关 Oraclize 的部分信息已经过时,具体而言:

  1. 除了基于 TLS Notary 技术的可信证明以外,今天我们已经支持其他类型的可信证明(如 Android 证明和 Ledger证明);
  2. 通过 Proof Shield,可信证明的链上验证也已成为可能。

原文链接: https://blog.oraclize.it/understanding-oracles-99055c9c9f7b
作者: Thomas Bertani
翻译&校对: 小马 Pony & Elisa

本文由作者授权 EthFans 翻译及再出版。


你可能还会喜欢:

引介 | 预言机:让智能合约起飞
Gnosis和Augur的不同点
观点 | 智能合约:一个新经济时代

 
0 人喜欢