本文继 《Fabric Ventures:预言机系统的设计难点在于去信任成分》。与外部世界进行交互,是智能合约顺理成章的下一步目标,这同样也需要部署正确设计的激励机制来避免攻击。这里主要的挑战是强大经济刺激导致的不端行为。当我们拥有可真正工作的预言机时,将会涌现众多的使用场景,其中最令我们兴奋的包括去中心化保险产品、金融产品、预测市场。
原文标题:《全面概述去中心化预言机(下)》(Decentralised Oracles: a comprehensive overview)
作者: Julien Thevenard,区块链投资机构 Fabric Ventures 合伙人
翻译 : 安仔 Clint、wuwei、阿剑
IV. 致力于去中心化预言机的项目
许多去中心化程度不同的项目都致力于解决上述问题,或是编写多种激励机制来减少对单一信任中介的依赖,或是引入成熟的攻击-抵御机制。囿于篇幅,本文无法逐一介绍各项目的深度细节,因此下文将对各种项目进行高度概括性的描述。
所有的项目可以分为两类:通过网络提供预言机服务,以及网络自带预言机服务。
1. 预言机即服务
ChainLink (已上线)
Chainlink 的目标是构建一个完全去中心化的预言机网络,网络节点兼容以太坊、比特币和 Hyperledger,并支持模块化:系统的每个部分都支持升级。其主要的想法是为预言机打造一个可信的市场。有良好行为的预言机节点会受到激励,其表现和声誉会公之于众,反之有恶意行为的节点会受到惩罚。Chainlink 一开始是在链上对预言机的数据进行聚合,后续将通过一个有趣的设计转而在链下进行数据聚合。
Chainlink 示意图
任何系统的安全性都是由其最短板决定。去中心化保证了每时每刻的可用性,但存在失效节点传递错误数据的风险,为此 ChainLink 提供了 2 种解决方案。
链上聚合
- 初始解决方案:链上聚合
合约在链上聚合所有节点的数据(可被公开审计),并使用 commit-reveal 的方式避免节点获取其它预言机的结果和互相抄袭。聚合后的最终结果将在足够多的结果在链上公布后被确定,但这会带来不小的计算成本:每个节点都会发起一次交易、每次交易都需要达成共识、还需要在以太坊部署一个或多个聚合合约。
- 中期策略:链下聚合
链下聚合能提高达成共识的经济性,但无法解决上文所说的吃空饷问题。链下聚合方案利用了 Schnorr 签名:每一个参与任务的预言机会收到一个针对此任务的 [公钥,私钥] 组合。预言机使用私钥为(被请求的)数据结果(已加密)生成部分签名。单一的部分签名无法直接使用,但当有足够数量的的部分签名合在一起时(如下图所示),会形成一个集体签名,该过程等价于一个链上交易对数据结果进行聚合。
链下聚合
这里的关键词是足够数量的部分签名,这也意味着该方案提供了(当部分节点无法响应时的)容错机制。这个方法的缺点在于,即便是诚实节点,如果消息传播花了太长时间,他们也无法获得奖励 —— 这使得节点对响应时间有依赖。这个方案也解决了抄袭问题,因为结果揭晓之时,已无法再提交新答案了。
你可以在 这里 找到更多关于 ChainLink 的信息。本文的图示出自它的 白皮书。
Witnet
Witnet 是一个基于信誉的去中心化预言机网络:运行 Witnet 软件的节点是否正确地响应了数据请求决定了它是获得还是失去信誉值,而正确性是由共识算法分析节点的结果集后确定的。与共识不一致的的节点会失去信誉值(比如它们因节点下线或尝试做恶而产生了不一致),从而与正常节点区隔开来。当达成共识的过程超时时,只要最后节点结果和共识一致,它就不会受到惩罚。
被称作目击者(witness)的预言机节点,基于它们的网络信誉,被随机分配任务并开挖区块,使其不易受「多数人攻击」的影响。行为良好的节点可以迅速增加信誉值,并在网络中承担更多的责任;相反,失效的和恶意的节点将迅速失去其在网络中的信誉,进而无法再对网络作出贡献,最终变得无足轻重。
因为 Witnet 中的信誉值如此重要,所以除了(在完成一个任务后)在好坏节点间有信誉值的转移变化外,系统还设计了一个在所有节点间进行固定的信誉值重分配的机制,重分配的间隔为一个区块一次(90 秒),从而避免:A. 由信誉值集中在最老的那些诚信节点而导致的中心化;B. 尸位素餐(节点不再响应任务,只是获取挖矿收益)。
每次区块生产中,会使用滞纳金函数实现信誉值的重分配:生效节点的信誉值每次以对数函数方式减少,减少的信誉值由所有行为良好节点共享。换句话说,所有节点的信誉值都会不断减少,而那些信誉值最多的节点则损失最大。因此,为了在 Witnet 中保持名列前茅,必须时刻保持良好的行为。
Witnet 拥有自己的区块链网络,因此可以通过桥接节点提供去中心化的预言机服务。有了互操作性解决方案之后,可能(桥接节点)这种模式就不是那么有用了,但在互操作性方案开发出来之前,,但它提供了一个可扩展的方案,降低了链上操作的费用,并有助解决关键漏洞。
你可以在 https://witnet.io 找到更多信息,或者在 这里 阅读白皮书。
Oraclize
Oraclize 是由伦敦的一个 9 人网络安全公司提供的中心化区块链预言机解决方案。它们拥有世界上使用最广泛的、运行时间最长的区块链预言机服务。服务支持多个区块链平台(比特币、以太坊、Monax、Rootstock、Corda 和私有网络等),而最主要的客户则在以太坊平台上。
他们的方案是利用所有的 TEE 供应商来降低脆弱性,这一做法被称作沙箱化。Oraclize 利用 IT 供应商和生产商的产品(包括亚马逊的 EC2,Google 的 SafetyNet, 高通的 QSEE,Ledger 的 Nano S 和 英特尔的 SGX)作为他们核心服务的关键组件。这些产品在物理上被分成独立的小组,并可以通过软件协作使用:Oraclize 设计了支持 ad-hoc 的定制程序作为软件接入层,支持所有 TEE 的接入和互相协作。当某种技术手段因为漏洞而受到影响时(比如英特尔的 SGX 幽灵漏洞),整体的数据聚合依然可以忽略受影响的节点,从其它多个 TEE 中获得正确数据。(这里假设漏洞是基于某种特定架构的,而不是某种影响所有处理器的通用漏洞)
为保证分布式信任和数据正确性,Oraclize 使用 TLSNotary 来给 https 站点的 TLS 数据进行签名。这么做有一定代价:Oraclize 理论上只能传送网站显示的数据(不能在链下预处理后上传),但这足以覆盖常用的场景。方案主要的风险在于当多数的数据源被破坏时,没有办法阻止错误数据的继续分发,但该风险在多数「去中心化」解决方案中都会存在。你可以在这里了解更多关于 Oraclize 的信息。
Town Crier
这个学术项目背后是 5 名康奈尔大学的博士和本科生组成的团队。
Town Crier 可以作为(任意区块链上的)智能合约与 启用 https 的网站之间的桥梁,它通过 TLS 层来保证两者之间的安全通信以传输经过认证的数据。这个方案与 TLS-notary (只是软件层的安全)不同,它允许更多定制化的数据传输。数据由那些运行在英特尔 SGX 上的节点解密处理(两者皆有的软硬件安全级别)。授权数据最终从 enclave 发送到区块链中,仅依赖 SGX 来保障节点软件的运行符合预期。
为保障机密性,消息数据只会在可信执行环境中的 enclave 中被解密,因此它不仅可以保障数据的安全传输,也可以用来获取加密的用户凭证(比如私有 API)。另外,它也支持自定义请求爬取多个目标。为解决点单失败问题,它们的方法是在多个 SGX 平台上进行数据源聚合和预言机部署。该软件被证明具有一定的扩展性,可以支持 15-65 笔交易 / 每秒的吞吐。你可以在找到更多关于 Town Crier 的介绍。在 2018 年 11 月 1 日的第四次开发者会议中,CEO Sergey 宣布了 ChainLink 收购 Town Crier 的消息。
2. 内部预言机服务
A. 预测市场
预测市场好比博彩市场。你对结果进行下注,下注价格则由结果发生的概率决定。
Augur 和 Gnosis 是两个最知名的去中心化预测市场,两者都创办于 2015 年。它们利用集体智慧和少争端的去中心化网络建立起优雅的预测市场。为保障市场正确运行,两者都不得不依赖于精心设计的激励机制。我们将以 Augur 为例进行进一步剖析。
Augur (已上线)
Augur 是一个免信任的,去中心化预言机和预测市场平台,允许地理上分散的个体对任意事件的客观结果进行推测和汇报。对 Augur 而言,创建去中心化预测市场是比较容易的,关键在于如何保证市场的诚信(保证诚实能成为理性的 Augur 节点最有利可图的选择)。Augur 拥有自己的代币 Reputation (REP),无论是创建新的预测项目,还是 报告 / 争辩 预测结果,都必须先质押一部分 REP ——这些付出将会在预测事件尘埃落定后以获得一部分平台手续费用作为补偿。市场中的押注行为并不以 REP 计价。
预测市场的生命周期 说明
任何人都可以在 Augur 平台上为即将发生的事件创建预测市场。创建者设定事件的结束时间,并指定事件结果的汇报者。这个结果允许接受社区的质询。以下是 Augur 旨在保护诚信参与者的一系列措施:
- 市场创建者需持有有效性债券:当市场定义不完善,或者结果不可能做到客观何准确时,这些债券将失效、归零。
- 市场创建者持有无结果债券:当创建者指定的结果汇报者在 3 天内没有给出结果时,这些债券将失效。此时,任何人均可以提交此事件的临时结果。
- 一旦有临时结果上报,任何 REP 的持有者均有机会在 7 天内对暂定结果提出异议(发起竞标)。竞标保证金占预测项目市值比例最小者可以获得竞标的胜利。一旦竞标失败,质押的 REP 将返给所有者;然后整个市场进入结算。
- 若第一个临时结果竞标成功,接下来的步骤取决于本轮的质押金数量。当质押金小于所有 REP (目前为 150 万美元) 的 2.5% 时,市场会开始下一轮竞标;否则(大于 2.5%)进入分叉状态。
- 分叉状态将持续 60 天,期间所有的市场会被临时冻结,直到它们被迁移到一个「Augur 新世界」中。如果所有的市场都只有两个选项的(是 / 否,选中 / 落选,赢 / 输等),此时将会生成 3 个世界,比如会有 3 种可能的真相:一种真相为是,一种为否,最后一种为无效。市场会被划分到对应的世界中。用户可以能且只能将其 REP 代币迁移到其中一个世界中。若是用户在 60 天内完成 REP 代币的迁移(投向其中一个结果),则可以获得额外 5% 的 REP 作为风险补偿。这里的风险是指,当用户迁移到错误的世界时,则他们的 REP 会被困住(REP 在 A/B/C 的世界中是不可互换的)。如果用户不想承担风险,他们可以在 60 天后再进行迁移, 此时这个市场已经达成了正确的共识。因为并行的 Augur 世界可以共存(比如:以太坊 / 以太坊经典),所以最终那个赢得绝大部分市场活动的显而易见的获胜者,才会成为真正的 Augur。
我们希望读者能认识到在创建预测市场时定义不清所带来的危害,以及由去中心化预言机来控制结果播报可能造成怎样古怪的经济后果。
当 Augur 预言机通过汇报真实生活中的事件结果来完成一次 Augur 市场的预测活动时,我们可以想象当激励足够而且 Augur 不断成长时,Augur 市场的结果本身可以作为一种可靠的预言机。换句话说,我们可以假设 Augur 市场会最终(可能)给出一个真实的结果,并以此作为另一个智能合约的输入。
B. 支付服务
Ramp
银行账本历来不易被外部访问,但事情在快速变化,更多的监管机构正在接受开放银行(open banking)框架。比如,在欧洲,PSD2 指令要求欧洲银行对授权的第三方供应商开放银行账户的 API 访问,Ramp 即是其中之一。
(Ismail Chaib 和 OpenBankProject 的覆盖情况)
Ramp正在建设金融基础设施,以保障传统金融机构和公共区块链之间的信任最小化通信。实践中,他们使用 PSD2 来提供 p2p 的法币和加密货币原子交换服务(Ramp Swaps)。过程如下:
- 卖方创建一个智能合约,在第三方监管中锁定一定量的数字资产。当买方在如约发送法币后,数字资产会释放给买方,否则退还给卖方。
- 买方通过汇款付款给卖方。
- 一个支付预言机验证买方的付款并发送付款凭证(PoP)到网络中。预言机能够访问买卖双方的账户,并查看它们的收付款情况。
- 智能合约解锁第三方监管中的资产并发送给买方。
存在金融机构的账本中的数据异常敏感,因此,相对于汇报可公开获得的信息(比如商品价格或体育比赛结果),汇报此类信息面临一种显而易见的挑战:
- 数据由单一的可信来源提供——比如:银行。
- 转账信息是可变的,金融机构可能撤销交易。
- 数据无法公开访问,也不容易验证。
- 给定的账户信息(身份信息和交易历史)需要保密。
- 账本有不同的访问方式,并且通常依赖用户的许可。
- 双向通信不能保证总是畅通——有双向通信,智能合约才能够发起交易。
- 数据是结构化的——账本由账户组成,但具体的组织结构不同机构间互不相同。
因为隐私的要求,不能简单的将从银行获得的信息传播到区块链上。原始信息需要脱敏以适配区块链交易。因此,数据需要在链下处理后,以简单的是非题形式(比如:某一笔交易是否成交?)将答案发送到网络中。Ramp 正进一步拓展它的技术并使其被更多监管机构接纳。Ramp 也在探索安全 enclave 的使用,使其能作为额外的保护层,容纳更多的权威第三方作为预言机在区块链上验证银行交易。这些发展将消除最大的中心化需求:法币网关。如果你想更多得了解 Ramp,请移步它们的 网站。
C. 去中心化保险
相比利益驱动的保险公司,我们更信任代码,但是如果没有可信的预言机,一切无从谈起。
——Hugh Karp,NexusMutual
Etherisc 提供的去中心化保险产品
参数保险是一种带有参数触发器和付款条件的特殊保险(如果 Y 发生,则付款 $X),比如航班晚点,交易所遭黑客入侵。显然,这些产品适合使用智能合约。它们需要预言机服务为这些事件提供可靠的数据,可以通过经济激励在内部获得(使用 EtherRisk 定义的数据输入,或使用 Nexus Mutual 的投票过程),也可能通过去中心化的预言机服务(Oaas)提供商获得。
可以预料,我们将看到越来越多由智能合约处理的保险产品,特别是已经有了利用复杂物联网传感器、无人机和卫星的 Flyingcarpet。比如,农民可以通过智能合约购买保险,然后气象卫星将数据传送给 Flyingcarpet,并由在它的平台上构建的 AI 模型进行分析。
某些情况下,如果不对输入信息进行本地协调处理,声明的结果将无法被自动检测和处理。这些情况中需要本地的(受激励的)预言机作为独立的声明代理,比如量化汽车的损毁情况。保险公司可以利用这些代理,这些代理也很容易添加莫格智能合约作为其潜在的雇主。这一做法已经在 EtherRisk 和 Nexus Mutual 的路线图中,它们利用类似的权益设计来惩恶扬善。欺诈通常是保险中最大的成本,不可能指望有某种系统可以绝对免于欺诈,但如果智能合约可以实现媲美中心化保险的可靠性,则节约下来的成功便可回馈给客户。
最终,这些声明代理可以在去中心化的自治组织中工作,比如使用 Aragon 或 Colony 来协调它们各自的运行。
V. 结论
去中心化网络不可篡改特性所带来的机遇和挑战可以概括为一个词:激励机制。通过良好设计的经济激励机制,使得去中心化网络能进行空前的全球协作,并保证理性的参与者的行为符合网络的利益。消除对可信第三方的依赖是一项挑战,任何事和任何人理论上都可能变坏,必须将风险降到可容忍的水平。的确,短期攻击的风险一直存在,但不应削弱网络维护者们的长期激励,他们可以从中获得巨大的利润。
比特币矿工作为一个整体被视为可信的「实体」 被雇佣和信任,以保证比特币账本的安全。曾经出现过矿工利用漏洞进行短期获利的事件,但他们更愿意进行理性地长期博弈,以保证自己的 ASIC 矿机投资和区块奖励不会大幅贬值。进一步说,以太坊因过度依赖像 Infura 或 Metamask 这样的服务(它们确实通过 Consensys 变得中心化)而饱受批评,但因为这些服务在以太坊中有巨大利益,因此能够保持不作恶。这些中间方案的风险在进一步的去中心化过程中是可容忍的。
与外部世界进行交互,是智能合约顺理成章的下一步目标,这同样也需要部署正确设计的激励机制来避免攻击。这里主要的挑战是强大经济刺激导致的不端行为。随着网络的发展,这些激励将变成网络贡献者们巨大的收入来源。日积月累,网络中会有足够的预言机服务提供商并保有巨大利益,使其减少对单个(预言机)节点的依赖却同时能充分保证服务质量。
萝卜加大棒的激励是强大的,我们期望看到所有这些项目的发展。ChainLink 通过使用代币和信誉机制,已经能较好地获得可靠的预言机服务。当我们拥有可真正工作的预言机时,将会涌现众多的使用场景,其中最令我们兴奋的包括去中心化保险产品、金融产品、预测市场。
免责声明:Fabric 资本投资了 Ramp。
来源链接:medium.com