Chainlink 2.0白皮书:去中心化预言机(七)—— 信任最小化

煤油灯科技2022-10-20 10:06

7 信任最小化 

作为一个由一组异构实体参与的去中心化系统,Chainlink网络在活跃性(可用性)和安全性(报告完整性)方面提供了强大的保护,防止出现故障。然而,大多数去中心化系统的组成部分本身去中心化的程度各不相同。即使在大型系统中也是如此,在这些系统中,矿工[32]和中介机构[51]的去中心化程度有限。

任何去中心化工作的目标都是最小化信任:我们寻求减少Chainlink网络内系统性损坏或故障的不利影响,即使是由于恶意DON造成的不利影响。我们的指导原则是最小特权原则[197]。系统内的系统组件和参与者应具有严格限定的权限,仅允许成功完成其分配的角色。

在这里,我们列出了Chainlink采用的几种具体机制,以实现更大的信任最小化。我们根据基因座来描述这些机制,即系统组件,它们根植于其中,如图14所示。我们在相应的小节中处理每个基因座。

7.1 数据源身份验证 

当前的预言机操作模型受到以下事实的限制:很少有数据源对它们忽略的数据进行数字签名,这在很大程度上是因为TLS本身并不对数据进行签名。TLS确实在其“握手”协议中使用了数字签名(在服务器和客户端之间建立共享密钥)。因此,启用HTTPS的服务器在公钥上有证书,原则上可以用于签署数据,但它们通常不使用这些证书来支持数据签名。因此,与当今的预言机网络一样,DON的安全性依赖于预言机节点将数据从数据源忠实地中继到合约。

我们在Chainlink中的信任最小化愿景的一个重要长期组成部分涉及通过支持数据签名工具和标准来加强数据源身份验证。数据签名可以帮助实施端到端完整性保证。原则上,如果合同接受直接由数据源签署的一段数据D作为输入,那么oracle网络就无法切实篡改D。已经出现了各种令人鼓舞的实现数据签名的努力,包括OpenID Connect,它主要用于用户身份验证[9],TLS-N,一个旨在通过重新调整TLS证书用途来扩展TLS[191]的学术项目,和TLS证据扩展[63]。尽管OpenID Connect已经得到了一些采用,但TLS证据扩展和TLS-N尚未得到采用。

图14:本节讨论的信任最小化机制的位置。数据源向DON提供数据,DON将数据功能传递给依赖的智能合约。此外,DON或oracle网络在MAINCHAIN上包括节点管理智能合约,例如补偿节点、护栏等。

数据源身份验证的另一个潜在途径是使用发布者自己的签名HTTP交换 (SXG) [230],他们可以将其缓存在内容交付网络上,作为加速移动页面 (AMP) 协议 [225]的一部分。Chrome移动浏览器显示来自AMP缓存的SXG的内容,就好像它们是从发布者自己的网络域而不是缓存服务器域提供的一样。 这种品牌化激励,再加上使用Cloud Flare的Real URL[83]和Google的amppackager [124]等服务启用它相对容易,可能会导致缓存新闻内容中广泛采用SXG,这将使Chainlink预言机以简单、防篡改的方式触发有效SXG中报告的具有新闻价值的事件。

虽然来自新闻出版商的AMP缓存SXG对于交易数据报告等高速应用程序没有用处,但它们可以作为与极端天气或选举结果等现实世界事件相关的自定义合同的安全来源。

我们相信简单的部署、成熟的工具和灵活性对于加速数据源签名至关重要。使数据提供者能够使用Chainlink节点作为经过身份验证的API前端似乎是一种很有前途的方法。我们打算为节点创建一个选项以在此模式下运行,无论是否作为成熟的预言机参与网络。 我们将此功能称为经过身份验证的数据源 (ADO)。 通过将Chainlink节点与ADO结合使用,数据源将能够受益于Chainlink社区开发的经验和工具,将数字签名功能添加到其现有的链下API套件中。 如果他们选择将节点作为预言机运行,他们还可以在与现有数据提供者相同的模型下开辟潜在的新收入流,例如运行Chainlink节点以在链上的数据销售API 的Kraken [28]、Kaiko [140]等。

7.1.1 认证数据来源的局限性 

数据源的数字签名虽然有助于加强认证,但本身并不足以实现预言机网络的所有自然安全或运营目标。

首先,给定的数据D仍然必须以稳健且及时的方式从数据源中继到智能合约或其他数据消费者。也就是说,即使在所有数据都使用预先编程到依赖合同中的密钥签署的理想环境中,仍然需要一个DON来可靠地将数据从源传递到合同。

此外,在许多情况下,合约或其他预言机数据消费者希望访问基于源数据计算的各种功能的经过身份验证的输出,主要有两个原因: 

机密性:数据源API可能提供敏感或专有数据,需要 在链上公开可见之前进行编辑或清理。但是,对签名数据的任何修改都会使签名无效。换句话说,朴素的ADO和数据清理是不兼容的。 我们在示例3中展示了如何通过ADO的增强形式来协调这两者。

数据源故障:错误和故障都会影响数据源,而数字签名不能解决任何问题。 从一开始 [98],Chainlink就已经包含了一种修复此类故障的机制:冗余。预言机网络发布的报告通常代表多个来源的组合数据。

我们现在讨论我们正在ADO设置中探索的方案,以增强源数据的机密性并安全地组合来自多个源的数据。

7.1.2 机密性

数据源可能无法预测和提供用户所需的全部API。具体来说,用户可能希望访问预处理数据以帮助确保机密性。下面的例子说明了这个问题。

示例3:Alice希望获得一个去中心化身份 (DID) 凭证,说明她已年满18岁(例如,贷款)。 为此,她需要向 DID 证书颁发者证明她的年龄这一事实。Alice希望为此目的使用来自她所在州机动车辆部 (DMV) 网站的数据。  DMV 有她的出生日期记录,并将在其上发出以下形式的数字签名证明:

在此示例中,证明可能足以让Alice向 DID 证书颁发者证明她已年满18岁。但它不必要地泄露了敏感信息:Alice的确切DoB。理想情况下,Alice希望从DMV获得的只是简单声明A′A^{\prime}上的签名,即“Alice 已超过 18 岁”。换句话说,她想要函数G在她的生日X上的输出,其中(非正式地),如果CurrentDate - X ≥ 18岁,则A′=G(X)=TrueA^{\prime}=G(X)=True; 否则,G(X)=FalseG\left(X\right)=False。概括地说,Alice希望能够从数据源请求一个签名证明A′A^{\prime},其形式为:

其中G(X)表示函数G及其输入X的规范。我们设想用户应该能够提供所需的G(X)作为输入以及她对相应证明的请求。

请注意,数据源的证明A′A^{\prime}必须包含规范G(X)以确保正确解释A′A^{\prime}。在上面的示例中,G(X)定义了A′A^{\prime}中布尔值的含义,因此True表示证明的主体已超过18岁。

我们将灵活查询称为用户可以将 G(X) 指定为函数查询的灵活查询。为了支持示例3中的用例以及涉及直接来自合约的查询的用例,我们打算在ADO中包含对涉及简单函数G的函数查询的支持。

7.1.3 组合源数据 

为了降低链上成本,合约通常被设计为使用来自多个源的组合数据,如下例所示。

示例4(中间化价格数据)。为了提供价格馈送,即一种资产(例如ETH)相对于另一种资产(例如美元)的价值,预言机网络通常会从多个来源(例如交易所)获取当前价格。 预言机网络通常将这些值的中值发送给依赖合约SC。

在具有数据签名的环境中,正常运行的预言机网络从数据源S={S1,...,SnS}S=\left\{S_1,...,S_{nS}\right\}一系列值V={v1,v2,...,vnS}V=\left\{v_1,v_2,...,v_{nS}\right\}来自个源,带有伴随的源特定签名Σ={σ1,σ2,...,σnS}Σ=\left\{σ_1,σ_2,...,σ_{nS}\right\}。在验证签名后,它将价格v=median⁡(V)v=\operatorname{median}\left(V\right)传输到SC。

不幸的是,预言机网络没有简单的方法将示例4中的中值v连同一个简洁的证明传输到SC,即v是在有符号输入上正确计算的。

一种天真的方法是在SC中编码所有nSn_S数据源的公钥。然后,预言机网络将中继 (V, Σ)并允许SC计算V的中值。然而,这将导致大小为O(nS)O\left(n_S\right)的证明σ——即不会简洁。它还会为SC带来高昂的gas成本,这需要验证Σ中的所有签名。

相比之下,使用SNARK可以简洁地证明正确组合的经过身份验证的源值。它在实践中可能是可行的,但对证明者施加了相当高的计算成本,并且在链上施加了一些高gas成本。使用Town Crier也是一种可能,但需要使用TEE,这并不适合所有用户的信任模型。

一个有用的概念是为从源签署组合数据的一般问题制定解决方案,这是一种称为功能签名的加密工具[59, 132]。简而言之,功能签名允许签名者委托签名能力,这样被委托者只能在签名者选择的函数F范围内对消息进行签名。我们在附录D中展示了此功能约束如何将DON发出的报告值范围限制为数据源签名值的函数。我们还引入了一个新的原语,称为离散化功能签名,其中包括对准确性的宽松要求,但可能比SNARK等方法性能更高。

以包括输出源身份验证的方式组合数据源的问题也适用于数据聚合器,例如CoinCap、CoinMarketCap、CoinGecko、CryptoCompare等,它们从多个交易所获取数据,它们根据交易量加权, 使用他们在某些情况下公开而在其他情况下是专有的方法。希望通过源身份验证发布值的聚合器面临与聚合源数据的节点集合相同的挑战。

7.1.4 处理源数据 

复杂的智能合约可能依赖于对主要数据源的自定义聚合统计数据,例如许多资产近期价格历史的波动性,或相关事件新闻中的文本和照片。

由于DON中的计算和带宽相对便宜,因此只要用于区块链的任何输出值足够简洁,这些统计数据(即使是具有许多输入的复杂机器学习模型)都可以经济地处理。

对于DON参与者可能对复杂输入有不同看法的计算密集型工作,可能需要在DON参与者之间进行额外的沟通,以在计算结果之前就输入建立共识。只要最终值完全由输入确定,一旦建立输入共识,每个参与者都可以简单地计算该值并将其广播给其他参与者及其部分签名,或将其发送到聚合器。

7.2 DON 信任最小化 

我们设想了两种主要的方法来最小化对DON组件的信任:故障转移客户端和少数报告。

7.2.1 故障转移客户端 

密码学和分布式系统文献中的对抗模型通常认为攻击者能够破坏(即破坏)节点子集,例如,对于许多BFT协议来说少于三分之一。 然而,通常观察到,如果所有节点都运行相同的软件,则识别出致命漏洞的对手原则上可以或多或少同时危害所有节点。 这种设置通常被称为软件单一文化[47]。

已经提出了各种自动多样化软件和软件配置的建议来解决这个问题,例如,[47, 113]。然而,如[47]中所述,软件多样性是一个复杂的问题,需要仔细考虑。例如,软件多样化可能会导致比单一文化更糟糕的安全性,如果它增加了系统的攻击面,从而增加了可能的攻击媒介,超过了它提供的安全优势。

我们认为,支持强大的故障转移客户端(即节点可以在面对灾难性事件时切换到的客户端)是软件多样化的一种特别有吸引力的形式。故障转移客户端不会增加潜在攻击媒介的数量,因为它们不是作为主线软件部署的。然而,作为第二道防线,它们提供了明显的好处。我们打算在DON中支持故障转移客户端,作为减少它们对单个客户端的安全性依赖的关键手段。

Chainlink已经建立了一个强大的故障转移客户端系统。我们的方法包括维护以前经过实战考验的客户端版本。例如,今天,以链下报告(OCR)为主要客户端的链链接节点包括对Chainlink以前的FluxMonitor系统的支持(如果需要)。 FluxMonitor已经使用了一段时间,已经接受了安全审计和现场测试。它提供与OCR相同的功能,只是成本更高——仅在需要时才会产生成本。

7.2.2 少数派报告 

给定足够大的少数派集合OminorityO_{minority}(观察多数人渎职行为的诚实节点的一小部分),生成少数派报告可能会有所帮助。这是一个并行报告或标志,由OminorityO_{m\mathrm{i}nor\mathrm{i}ty}转发到链上的依赖合约SC。SC可以根据自己的合同特定政策使用此标志。例如,对于安全性比活性或响应性更重要的合同,少数报告可能会导致合同要求另一个DON提供补充报告,或触发断路器(请参阅下一节)。

即使大多数人是诚实的,少数报告也可以发挥重要作用,因为任何报告聚合方案,即使它使用功能签名,也必须以阈值方式运行,以确保对预言机或数据故障的弹性。换句话说,对于某个阈值kSk_S,必须能够根据kS<nSk_S<n_S预言机的输入生成有效报告。 这意味着即使所有来源都是诚实的,损坏的DON在通过在全套预言机报告的V中报告的nSn_S中选择其首选kSk_S值来操纵报告值方面具有一定的自由度。

例如,假设在一个系统中nS=10n_S=10和kS=7k_S=7,该系统使用功能签名来验证 ETH 美元价格的V上的中位数计算。假设五个来源报告价格为500美元,而其他五个来源报告价格为1000美元。然后通过对最低的7个报告进行中间化,DON可以输出有效值v = $500,通过对最高的报告进行中间化,它可以输出v = $1000。

通过增强DON协议,使所有节点都知道哪些数据可用,以及哪些数据用于构建报告,节点可以检测并标记统计上显着的倾向,以支持一组报告而不是另一组报告,并生成少数报告作为结果。

7.3 Guard Rails 

我们对DON的信任模型将MAINCHAIN视为比DON更高安全性、更高权限的系统。  (虽然这种信任模型可能并不总是成立,但在DON是更高安全平台的情况下,它更容易适应结果机制,反之亦然。)因此,自然的信任最小化策略涉及监控和故障保护机制的实施 在智能合约中——在DON的MAINCHAIN前端或直接在依赖合约SC中。我们将这些机制称为护栏,并在此列举一些最重要的机制: 

  • 断路器:SC可能会暂停或停止状态更新,作为状态更新本身的特征之一(例如,连续报告之间的巨大差异)或基于其他输入。例如,当预言机报告随时间变化令人难以置信的情况下,断路器可能会跳闸。少数报告也可能使断路器跳闸。因此,断路器可以防止DON做出严重错误的报告。

断路器可以为考虑或实施其他干预措施提供时间。一种这样的干预措施是逃生舱口。

  • 逃生舱口:在不利的情况下,如一组保管人、社区代币持有人或其他受托人机构所确定的,合同可能会调用紧急设施,有时称为逃生舱口[163]。逃生舱口会导致SC以某种方式关闭和/或终止未决和可能的未来交易。例如,它可能会将托管资金返还给用户[17]),

可以终止合同条款[162],或者可以取消未决和/或未来的交易[173]。 逃生舱口可以部署在任何类型的合同中,不仅仅是依赖于DON的合同,而且它们作为防止 DON 渎职的潜在缓冲剂是令人感兴趣的。

  • 故障转移:在SC依靠DON提供基本服务的系统中,SC可以提供故障转移机制,即使在DON故障或行为不端的情况下也能确保服务继续。 例如,在TEF(第6节)中,锚合约可以提供双重接口,其中链上和链下执行接口都支持某些关键操作(例如,提款)或普通交易,具有合适的延迟以防止DON交易的提前运行。在数据源签署数据的情况下,当DON未能这样做时,用户还可以向提供报告。

正如针对各种形式的乐观汇总(参见第6.3节)所提出的那样,欺诈证明在风格上与我们上面列举的机制相似并且是互补的。它们还提供了一种链上监控形式,并针对链下系统组件中的潜在故障提供保护。

7.4 信任最小化治理

与所有去中心化系统一样,Chainlink网络需要治理机制来随着时间的推移调整参数、响应紧急情况并指导其演变。

其中一些机制目前驻留在MAINCHAIN上,即使部署了DON,也可能会继续这样做。一个例子是预言机节点提供者(DON 节点)的支付机制。MAINCHAIN上的DON前端合约包含可能会定期修改的附加机制,例如护栏。

我们预见到两类治理机制:进化的和紧急的。

  • 进化治理:对Chainlink生态系统的许多修改使得它们的实施不是紧急问题:性能改进、功能增强、(非紧急)安全升级等等。随着Chainlink在其治理中逐步向更多参与者迈进,我们预计许多或大多数此类更改将得到受这些更改影响的特定DON社区的批准。 在此期间,也许最终作为一种并行机制,我们相信临时最小特权的概念可以成为实施进化治理的有用手段。很简单,这个想法是逐步部署更改,确保社区有机会对其做出响应。 例如,可以限制迁移到新的MAINCHAIN合约,以便必须在激活前至少30天部署新合约。
  • 紧急治理:MAINCHAIN 合约中可利用或被利用的漏洞或其他形式的活动或安全故障可能需要立即干预以确保避免灾难性后果。 我们的目的是支持一种多重签名干预机制,在该机制中,为了防止任何组织的渎职行为,签名者将分散在各个组织中。 确保签名者的持续可用性和及时访问适当的指挥链以授权紧急变更显然需要仔细的运营规划和定期审查。 这些挑战与测试其他网络安全事件响应能力[134]所涉及的挑战相似,同样需要解决警惕性下降等常见问题[223]。

DON的治理与许多去中心化系统的治理不同,其潜在的异质性程度。每个DON可能有不同的数据源、可执行文件、服务级别要求(如正常运行时间)和用户。Chainlink网络的治理机制必须足够灵活,以适应运营目标和参数的变化。我们正在积极探索设计思路,并计划在未来发表关于该主题的研究。

7.5 公钥基础设施 

随着渐进式的去中心化,将需要对包括DON节点在内的网络参与者进行稳健的识别。 特别是,Chainlink需要强大的公钥基础设施(PKI)。PKI是将密钥绑定到身份的系统。例如,PKI支持Internet的安全连接 (TLS) 系统:当通过HTTPS(例如https://www.chainlinklabs.com)连接到网站并且浏览器中出现锁时,这意味着公众 域所有者的密钥已由权威机构绑定到该所有者 - 具体而言,通过所谓的证书中的数字签名。证书颁发机构 (CA) 的分层系统,其顶级根颁发机构硬连线到流行的浏览器中,有助于确保证书仅颁发给域的合法所有者。

我们预计Chainlink最终将使用去中心化名称服务,最初是以太坊名称服务(ENS)[22],作为我们PKI的基础。顾名思义,ENS类似于DNS,将(人类可读的)域名映射到互联网上的IP地址的域名系统。然而,ENS将人类可读的以太坊名称映射到区块链地址。因为ENS在以太坊区块链上运行,除非密钥泄露,否则篡改其命名空间原则上与篡改管理它的合约和/或底层区块链一样困难。(相比之下,DNS 历来容易受到欺骗、劫持和其他攻击。)我们已经在以太坊主网上的ENS上注册了data.eth,并打算将其建立为一个根命名空间,在此根命名空间下提供预言机数据服务的身份和其他Chainlink网络实体驻留。

ENS中的域是分层的,这意味着每个域都可能包含对其下其他名称的引用。ENS中的子域可以作为一种组织和委托信任的方式。

data.eth 的主要作用是作为数据馈送的链上目录服务。 传统上,预言机的开发者和用户使用链下资源(例如 docs.chain.link或ata.chain.link等网站,或Twitter等社交网络)来发布和获取预言机数据源地址(例如 ETH  -美元价格饲料)。 使用高度可信的根命名空间(例如data.eth),可以建立 eth-usd.data.eth 到例如 ETH-的链上预言机网络聚合器的智能合约地址的映射。 这将为任何人创建一条安全路径,以将区块链作为该价格/名称对(ETH-USD)的数据馈送的真实来源。 因此,ENS 的这种使用实现了链下数据源无法获得的两个好处: 

强大的安全性:域的所有更改和更新都被不可变地记录并以加密方式保护,而不是网站上的文本地址,这两者都不具备安全属性。

自动链上传播:更新数据馈送的智能合约的基础地址可以触发传播到依赖智能合约的通知,例如,可以使用新地址自动更新依赖合约。

然而,像ENS这样的命名空间, 不会自动验证断言名称的合法所有权。因此,例如,如果命名空间包含条目<“Acme Oracle Node Co.”>, addri, 则用户获得了addr属于名称Acme Oracle Node Co.的索赔人的保证。但是,如果没有围绕命名空间管理的其他机制,她无法获得该名称属于合法地称为Acme Oracle Node Co.的实体的保证。有意义的现实世界感。

我们验证名称的方法,即通过对应的合法现实世界实体确保其所有权,依赖于几个组件。如今,Chainlink Lab有效地充当了Chainlink网络的CA。虽然Chainlink Lab将继续验证名称,但我们的PKI将通过两种方式演变为更加去中心化的模型:

  • Web-of-trust 模型:分层PKI的去中心化对应物有10个,称为Web-of-trust。自1990年代以来已经提出了14种变体,例如[98],并且许多研究人员观察到区块链可以通过在全球一致的分类账中记录证书来促进该想法的使用,例如[227]。我们正在探索该模型的变体,以去中心化的方式验证Chainlink网络中实体的身份。
  • 与验证数据的联系:如今,大量的预言机节点性能数据在链上可见,因此归档绑定到节点地址。此类数据可被视为通过提供其(可靠)参与网络的历史证据来丰富PKI中的身份。 此外,基于DECO和Town Crier[160] 的去中心化身份工具使节点能够积累源自真实世界数据的凭证。仅作为一个示例,节点运营商可以将证书附加到其PKI身份,以证明拥有Dun and Bradstreet评级。这些补充形式的验证可以补充质押,以确保网络的安全性。具有已建立的现实世界身份的节点或 acle 节点可以被视为在源自其声誉的系统中拥有权益。(参见第4.3节和第9.6.3节。)

Chainlink PKI的最后一个要求是安全引导,即安全地发布Chainlink网络的根名称,当前为data.eth(类似于浏览器中顶级域的硬连线) 换句话说,Chainlink用户如何确定data.eth 确实是与Chainlink项目相关的顶级域? Chainlink网络的这个问题的解决方案是多管齐下的,可能涉及: 

  • 将TXT记录[224]添加到我们的chain.link域记录,指定data.eth作为 Chainlink生态系统的根域。(因此,Chainlink隐含地利用互联网域的PKI来验证其根ENS域。) 
  • 从Chainlink的现有网站链接到data.eth,例如,从https://docs.chain.link。(PKI的另一种隐含用途是用于互联网领域。) 
  • 通过各种文档(包括本白皮书)了解data.eth的使用。
  • 在我们的社交媒体渠道(例如Twitter和Chainlink博客 [18])上公开发布data.eth。
  • 将大量LINK置于与data.eth相同的注册人地址的控制之下。


原文链接:https://chain.link/whitepaper


---煤油灯科技victorlamp.com翻译整理---

你可能也喜欢这些文章

科技互联网,科技,资讯,动态,洞察,量子,计算,AI,人工智能,机器人,区块链,Web3,分布式,操作系统,OS,芯片,视频,深度,论文