原文标题:First-Party vs Third-Party Oracles

作者:Saša Milić

这是我们 “获取区块链上的 API” 系列的第三篇文章。在此之前,我们梳理和详细介绍了现代 web API 的背景信息及重要性,并介绍了 API 连接性问题

番茄天蛾身上的寄生蜂的茧 © Wordpress / pattyler1

Oracle 一词起源于其历史和神秘的含义 (即具有占卜能力的人),但不幸的是区块链预言机仅仅是一种软件,它可以获取链下信息并将其记录在区块链上,从而有效地充当了链下世界和链上世界之间的桥梁 (我必须指出,这是一个具有不同程度安全性的桥梁)。

“在区块链上获取 API” 系列文章不会过于关注预言机,因为我们聚焦于 API 连接问题而非预言机问题。但是,我们也将在几篇文章中讨论预言机,因为它们是解决 API 连接问题的必要组成部分,你需要一个预言机节点,该节点将链下 API 的数据记录到区块链上。

然而重要的是,我们对第一方预言机和第三方预言机进行了明确区分。第一方预言机由 API 提供商自己运营,而第三方预言机则不是服务数据的经营者,它们是数据源与区块链之间的中间商。

巴托洛梅·埃斯特万·穆里略(BartoloméEsteban Murillo)的原初构想(左)和两次修复尝试(右)图片:Europa Press 2020 / Wikimedia Commons

作为中间商的第三方预言机的问题

“预言机问题” 是一个抽象且泛化的问题,在某种程度上已经被约定俗成为:两个任意系统,需要进行互操作 (通过彼此的技术接口)。正因为其过于泛化,因此需要一个灵活的接口,该接口只能由第三方预言机提供支持。

但是,从未决的问题中产生的解决方案通常不是最佳的,因为该问题的明确范围受到更多的限制。在大多数情况下 (尤其是当下区块链领域的现状) 去中心化的互操作性问题实际上是 "以去中心化的方式从传统 API 提供商接收服务的问题"。

现在,我将列出当第三方中间商被用作 API 和区块链之间的接口层时会出现的几个问题。

脆弱性

“去中心化接口”的加入为区块链应用程序创造了一个全新的攻击面。一群恶意的第三方预言机可以串通起来操纵结果。事实上,当对实质的、连续的数据执行“共识”时,一个单点预言机就可以扭曲结果 (我们即将发表一篇正式论述此类问题的文章)。

此外,单个参与者也可以伪造多个预言机节点运营者身份,并建立看上去相当诚实的运营记录,从而执行相同类型的攻击,这被广泛认为是西比尔病毒袭击 (Sybil attack)。

中间税

为了平衡和抵消整个新攻击面的脆弱性,预言机从诚实行为中获得的潜在利益必须始终超过 (理想情况下是大大超过) 从虚假报告中获得的利益,从而避免预言机的任何恶意行为。在 API3 白皮书的3.2节中详细讨论了博弈论的论点。这是必须支付给这些第三方中间商在提供数据服务的成本之上的额外成本 (你也可以将它看做是一种税)。

昂贵且无效的冗余

依赖于第三方预言机的数据喂送在预言机级别需要过度的冗余。这是因为第三方预言机远不如 API 提供程序可信赖 (正如已经讨论过的:后者在“本位市场”中已具有传统的链下业务,并保持各自的声誉)。

需要注意的是,这种意义上的去中心化很难在数据源级别提供任何额外的安全性。起初,它只是为了减少使用第三方预言机所造成的额外的脆弱性。这至少增加了 gas 成本和与运营人相关的其他成本。

缺乏透明度

正如我们之前的文章中所讨论的:x 个预言者提供的价格信息很难概全 x 个唯一的数据点。提供数据喂送的预言机数量不一定对应于更高质量和更健壮的数据,这有点像光学游戏。通常,去中心化预言机网络的用户会忽略这一事实,并将预言机层面的去中心化与系统整体的去中心化相混淆。这主要是由于预言机所使用的数据源缺乏透明性,它掩盖了去中心化在数据源 (API) 级别所面临的严重瓶颈的事实。

重要的是,当数据源的获取方面不透明时,开发者很难准确评估数据源的质量。并且,由于数据源是模糊的,数据喂送的质量也可能会相应地受到质疑。由于很少有人强迫或鼓励他们去做其他事情,预言机则有动机去收集廉价且易于访问的数据。

对于价格提要,这一点尤为突出,因为一些 API 提供商使用了相对高级的过滤和聚合方法(以及相应的服务价格)。一个显著的例子便是 CoinMarketCap 的容积膨胀检测算法 (volume inflation detection algorithm)。显然,对于此类广泛适用的用例,数据源很重要。

利用链下现实世界的声誉

使用第一方预言机利用了 API 提供商的链下声誉,在区块链可量化、确定性和封闭世界中,我们经常认为这是理所当然的。也就是说,尽管 API 提供商可能没有明确 (或使用一些其他可量化的衡量标准) 来证明其可信性,但他们的可信度已经可以从他们在链下商业世界中的声誉和成功中 (不同程度地) 得到证明。

New York City skyline © Getty Images / Achim Thomae

此外,此类公司的收入是一种“软质押 (soft stake)”。他们利用自己在现实世界中的声誉 (以及自己的收入来源) 进行质押,是阻止第一方恶意预言机行为的重要因子。以 Coinbase 预言机 (Coinbase oracle) 为例,该公司为特定市场提供签名价格数据,利用其作为企业的信誉 (作为加密/区块链领域的一家知名企业,该公司更是如此) 从整个生态系统的健康发展中受益,因此相比无名的第三方预言机,此类第一方预言机提供商作恶的可能性更小。

此外,在第三方预言机解决方案中,数据源通常被认为是可信的。事实上,在 Chainlink 网络中,用户可以通过工作规范 (job specifications ) 和适配器 (adapters) 选择第三方预言机从何处收集数据 (证明预言机是否确实从这些来源收集数据又是另一回事)。这种结构事实上假定了数据源是可信的,用户只需要找到可信的中间商就可以通过链上传输数据。

相比之下,第一方预言机利用了 “现实空间” 已经建立和维持的信任和声誉作为保障前提。

结论,及下一篇文章

最后,我认为如果我们帮助所有特定数据源成为第一方预言机 (即 API 提供商通过预言机直接在区块链上为其数据提供服务),那么对第三方预言机的优势就会大大削弱。

(我必须指出,我并不是说第一方预言是完全可信的,他们当然不是,诸如停机时间和数据质量等问题我将在后面的文章中与你详细讨论。)

那么,这个条件(“如果”)是什么呢?你可能会问: 如果没有第一方预言机怎么办?我们如何能够假设会有丰富的第一方预言机存在 (或未来存在) ?在下一篇文章中,我将向你介绍第一方预言机集成的障碍 (和为什么我们没有看到更多的障碍) ,以及 API3 如何应对这些确切的挑战。敬请期待!