链眼社区:专注于区块链安全,区块链数据分析, 区块链信息整合,区块链技术服务和区块链技术咨询。

COSMOS 链间安全(interchain security)
扫地僧
2022-07-04 15:44:09

一.介绍

跨链安全性以许多不同的方式被提及:共享安全性、跨链验证、跨链抵押、共享质押。本文档将限制使用以下三个术语:

共享安全

共享安全是一系列技术,包括乐观汇总、zk-rollups、分片和链间安全。

跨链安全

跨链安全是 Cosmos 特定类别的共享安全,它使用 IBC(跨链通信)。

跨链验证

跨链验证是启用跨链安全的特定 IBC 级别协议。

虽然跨链安全可以通过多种方式实现,但本文档将重点关注一个跨链安全实例,该实例对 ATOM 代币和 Cosmos Hub 具有特别有价值的属性。由此产生的技术可以在几乎没有修改的情况下应用于其他场景,但我暂时不考虑这些(或只专门写一小部分),因为当前的优先事项是为 Cosmos Hub 实现此功能。

在非常高的层次上,跨链安全性是指将已委托给提供者链上的验证者的代币进行质押,以告知消费者链上的验证者集的组成。区块链间通信用于将验证者权益委托的更新从提供者链传递到消费者链,以便消费者链拥有一个最新的模型,验证者可以在消费者链上生成区块。根据消费者链的要求,提供者链验证器的包含可以是强制性的,也可以是选择加入的。提供者链将尊重消费者链产生的任何验证者不当行为的证据,作为降低提供者链上行为不当验证者权益的证据。

二. Cosmos Hub 用户故事

Interchain Security 对 Cosmos Hub 有价值有两个主要原因。第一个原因是因为它允许集线器极简主义,第二个原因是降低启动和运行安全的主权分散公共区块链的障碍。

1. 实用中心极简主义

Hub Minimalism 是一种战略理念,它认为 Cosmos Hub 应具有尽可能少的功能,以减少安全漏洞的表面积并减少用户组之间发生利益冲突的机会。集线器极简主义者可能会反对治理模块与 DEX 位于同一区块链上,因为治理模块的用户现在必须适应 DEX 的用户,即使他们有不同的兴趣。最好的情况是,不同的用户组可以和平共处,最坏的情况是它们可能导致应用程序功能出现分歧的硬分叉。

当前的 Cosmos Hub 正在添加更多功能,这带来了 Hub 极简主义所关注的一些风险。如果跨链安全可用,则可以通过允许 Cosmos Hub 的每个不同功能成为由同一组 ATOM 委托验证器验证的独立链来满足中心极简主义者。这样,每个功能的操作可以独立发生,而不会影响其他 ATOM 安全集线器特定应用程序的操作。

2.降低安全壁垒

网络的安全性通常被描述为攻击该网络的成本的函数。在 Tendermint 共识中,我们将 ⅓ 和 ⅔ 锁定的质押作为目标,以获得关于活性和正确性的各种保证。这意味着,为了对网络进行各种攻击,您需要获得 ⅓+ 或 ⅔+ 的所有股份。计算攻击成本的粗略方法是将达到这些比例所需的代币数量乘以该代币的当前市场价格。我们将其称为腐败成本。

腐败成本计算不考虑任何特定令牌的可用性,但它确实对链的安全性给出了非常粗略的估计。重要的是,链上锁定的总价值 (TVL) 保持低于腐败成本,否则该链应被视为不安全。由于链服务于有价值目的的能力通常取决于它可以处理的 TVL,因此找到增加 Cosmos 生态系统中链的腐败成本的方法非常重要。这样做的一种方法是将 Cosmos ATOM 的价值借给任何链的腐败成本。借助跨链安全性,这成为可能,因为已经拥有相当大市值的 ATOM 会增加新链的腐败成本。

三. 跨链安全堆栈

Interchain Security 在技术层面的工作方式仍处于开发过程中,但高层的堆栈已经规划好了。它需要新功能和对提供者链和消费者链上当前功能的修改。该技术可以逐步开发,以便在以后推出扩展功能集之前,可以将最小可行的功能集作为 V1 推出。

1.链注册

1.1. V1 完整的验证器集

为了迭代工作,最简单的跨链安全版本是第一个里程碑,包括提供者链的整个验证器集。为了确保整个验证器集准备好在消费者链上验证,它必须通过提供者链的治理过程。治理提案附加到一个新的链注册模块。该模块跟踪希望使用提供者链的验证器集的消费者链。与所有治理提案一样,风险和收益应该在链下进行社会化,并最终通过链上投票获得批准。如果投票通过,消费者链将能够开始使用跨链安全的过程。预计第一个消费者链将被视为 Cosmos Hub 本身的扩展;本质上是本来可以直接在 Cosmos Hub 上运行的模块,但出于某种原因,它们更适合在自己的特定于应用程序的区块链上运行。这些消费者链可以被认为具有与 Cosmos Hub 相同的安全保证,由 ATOM 质押令牌的全部力量保护。这些消费者链可能会或可能不会向提供者链验证者提供费用和奖励,具体取决于特定的应用程序设计。它们可能被认为对 Cosmos 和验证者自愿参与的 ATOM 的成功具有足够的价值,或者它们可能拥有一个特定于应用程序的治理令牌,用作费用令牌并奖励给验证者及其组成的委托人。这些消费者链可以被认为具有与 Cosmos Hub 相同的安全保证,由 ATOM 质押令牌的全部力量保护。这些消费者链可能会或可能不会向提供者链验证者提供费用和奖励,具体取决于特定的应用程序设计。它们可能被认为对 Cosmos 和验证者自愿参与的 ATOM 的成功具有足够的价值,或者它们可能拥有一个特定于应用程序的治理令牌,用作费用令牌并奖励给验证者及其组成的委托人。这些消费者链可以被认为具有与 Cosmos Hub 相同的安全保证,由 ATOM 质押令牌的全部力量保护。这些消费者链可能会或可能不会向提供者链验证者提供费用和奖励,具体取决于特定的应用程序设计。它们可能被认为对 Cosmos 和验证者自愿参与的 ATOM 的成功具有足够的价值,或者它们可能拥有一个特定于应用程序的治理令牌,用作费用令牌并奖励给验证者及其组成的委托人。

1.2. V2 部分验证者集(选择加入)

一旦 V1 完成,下一个里程碑将是创建一个链注册表版本,其中提供者链验证者选择加入作为消费者链上的验证者。预计 Opt-In Interchain Security 的候选者不被视为 Cosmos Hub 本身的一部分,而是独立的网络。由每个消费者链来宣传提供者链验证者因参与而获得的好处。这可能纯粹是在新网络上获得费用的机会,它可能与代币的一些创世分配配对,它可能与一些链下法律协议配对以支付质押服务或任何其他类型的利益。Interchain Security 不强制执行此好处,但可以通过多种方式促进此好处。

无论是 V1 还是 V2,都必须假设每个验证者都已经考虑了为消费者链运行验证者以在该网络上生成块所需的工作,并考虑到他们的供应商链权益 (ATOM) 被削减的风险应该他们在该网络上的验证工作做得很差。为了选择加入,验证者必须使用其验证者密钥向链注册中心提交交易,目的是包含在相关消费者链的一组验证者中。

与链注册相关的最后一条信息是每个消费者链的启动时间(TTL)。TTL 指定验证者加入或离开链注册中心的不归路点。此时,特定网络的注册表中包含的验证器列表可以导出到该网络的初始创世文件。如果该网络正在过渡到使用主权验证者集的跨链安全性,这将被视为验证者集被完全重新定义的网络升级。

验证者可以加入已经运行的链间安全网络,但如果他们打算成为原始创世验证者集的一部分,他们应该在 TTL 之前加入。在验证者数量或达到阈值数量之前,注册中心内的链可能不会产生 TTL。Interchain Security 的未来版本可能有助于自动化这些阈值,但初始版本将由手动控制。

2. Provider Chain Staking 模块

Tendermint 使用 ABCI 从状态机中获取一组验证者和投票权,以便就区块生产达成共识。此信息存储在 Cosmos SDK 应用程序的质押模块中。在跨链安全的配置中,消费者链也有一个 Tendermint 实例,它使用 ABCI 请求一组验证者及其投票权。然而,与其直接来自消费者链的质押模块,在某种意义上它需要来自提供者链的质押模块。实际上,提供者链的质押模块的状态通过 IBC 定期中继到消费者链,在消费者链中存储在消费者链的质押模块中,Tendermint 可以通过 ABCI 访问。

为了让提供者链将验证者集和投票权传递给消费者链,它需要能够区分与不同网络相关的验证者集。在 V2 中,并非 Provider Chain 质押模块中的所有验证者都会选择加入每个 Consumer Chain 集合。为了支持链间安全,需要扩展提供者链,以区分验证者集及其对链注册表中指定的各种链的投票权。

为了在提供者链上提供必要的功能,可能需要实现一个包装器模块,该模块将核对质押模块验证器,以确定它们是否包含在存储在链注册表中的集合中。像这样的模块需要同时导入 Chain Registry Keeper 和 Staking Keeper,以便进行特定于链的质押查询。跨链验证模块将定期请求这些查询,并通过 IBC 中继到消费者链。该模块可称为“xStaking 模块”。

3. 验证者设置限制

当前的 Cosmos Hub 限制为 150 个验证者。此限制适用于有兴趣作为 Cosmos Hub 本身的验证器集的一部分生成块的验证器。这将消费者链的合格验证者数量限制为相同的前 150 个 Cosmos Hub 参与者。然而,仅仅因为验证者没有足够的质押 ATOM 有资格在 Cosmos Hub 上进行验证,并不意味着他们不应该有资格在另一个消费者链上进行验证。

Interchain Security 应该通过降低运营盈利验证者业务的障碍来增加验证者生态系统的多样性。这将大大有助于创建一个由不同验证者组成的健康生态系统,从而产生抗脆弱且运行稳健的网络。为了使前 150 名验证者有资格成为 Cosmos Hub 的区块生产者,同时增加消费者链的合格验证者数量,质押模块需要停止强制验证者在离开前 150 名时取消授权验证器。这将导致具有 ATOM 委托的验证者列表更长,这些验证者不参与提供者链(Cosmos Hub)上的块生产。

4.特定于链的代表团

为了进一步实现创建具有健康竞争的多样化验证者集的目标,重要的是努力实现特定于链的委托。如上所述,对于 Interchain Security 的初始版本,特定于链的验证计算由包含在消费者链验证器集中的验证器确定。这意味着对该验证人的所有个人授权都包含在决策中。与验证人如何决定自己的佣金率类似,可以决定代表其委托人做出该决定是该验证人的特权。幸运的是,如果委托人不同意验证人代表他们做出的选择,他们可以重新委托给更符合委托人意愿的验证人。

最初由验证者来评估参与消费者链验证者集是否值得额外的工作和它所带来的风险。随后,由委托人决定他们的验证人的选择是否与他们自己的一致。然而,委托人可能同意验证人在提供者链上的操作方式并希望继续被委托,但不同意参与(或不参与)消费者链的选择。

最初,验证者在新网络上运行新节点实例的成本可能会阻止较小的验证者参与。可以想象,验证是一项规模化的业务,业务规模越大,越容易进一步扩展。这可能会导致只有最大的验证者参与跨链安全。为了确保委托人不会将他们的 ATOM 重新委托给这些超级验证人,建立在每条链的基础上委托给验证人的能力非常重要。这将允许委托人将 ATOM 委托给 Hub 上一个小型但运行良好的验证者,同时也将相同的 ATOM 委托给消费者链的更大、风险规避程度较低的验证者。如果较大的验证者行为不端并在提供者链上被削减,该特定委托人的股份也将被削减。这将减少最初的小型验证人委托的权益数量,但仅限于该委托人。

围绕复杂委托的可选性最终将增加验证者操作的可能多样性。然而,由于此类委托的复杂性,此功能被假定为跨链安全的未来版本的一部分。

5. Epoch 质押

Cosmos SDK 当前的 Staking Module 正在向基于 Epoch 的 Staking 方向发展。这意味着验证者集委托数量不是基于每个区块计算,而是在称为 Epoch 的一段时间(或区块)内计算。这将减少计算质押的次数,并且通常会降低质押所涉及的复杂性。链相关权益计算的额外复杂性同样受益于权益计算的一般简化,并且需要在链之间发送更少的数据包。

三. privader chain 分布模块

Cosmos SDK 的分发模块使用一个名为 F1 的系统来跟踪委托人绑定到不同验证人的质押代币数量以及他们已经绑定了多长时间。区块生产奖励和所有交易费用在每个区块结束时汇入分配模块账户,然后根据其总投票权分配到每个验证者账户。当委托人想要撤回奖励时,分配模块计算自委托人上次撤回以来其验证人代表他们获得的奖励数量,并根据属于委托人的权益数量与委托人总权益的比较来计算结果验证者。

幸运的是,这个系统足以处理从消费者链到提供者链的奖励分配。由于分配模块正在收取上一个纪元的所有费用,并且这些费用可以是任何面额的,因此它可以类似地用于分配消费者链费用。消费者链可以简单地使用一个 IBC 转账数据包,将单个 epoch 的整批费用在 epoch 结束时发送到 Provider Chain,直接针对分配模块账户。从分配模块账户的角度来看,这些费用看起来像是收取的正常费用,并分配给所有验证者及其委托人。这个简单的解决方案只有在整个验证器集参与跨链安全(V1 完整验证器集)时才有效。

为了区分部分验证者集(选择加入)中的费用,需要扩展分配模块以包含链注册表中记录的链 ID,以区分正在分配的奖励池。如果 xStaking 模块包含复杂的委托,则用于计算委托的 stakingKeeper 方法还需要包含链注册中心对链 ID 的引用,以便正确计算与特定消费者链相关的委托奖励。同时,对于 Interchain Security V1,这是不必要的。

四.IBC 和跨链验证

有许多 IBC 应用层模块和数据包需要开发才能完全实现跨链安全的 IBC 组件。这项工作从 Informal Systems 的规范草案开始,可在@ibc/cross-chain-validation看到。本节将保留这些机制的高级职责,而不是深入研究它们是什么以及它们的确切工作方式的细节。

跨链验证中存在三种类型的操作,它们必须存在才能发生跨链安全:

  • 验证器集更新
  • 证据

1. 验证器集更新

跨链验证的主要职责是传递验证者集及其投票权。在链注册表中指定了在与特定消费者链相关的集合中包含验证器。以 Provider Chain 质押代币计价的投票权在质押模块中指定。xStaking 模块允许在链特定名称上对验证者及其委托进行排序。这种整理是必须通过跨链验证传递给消费者链的。

中继这些验证器集更新的速率是安全的函数。在一个极端情况下,您可以想象验证器集与 Provider 链上产生的每一个 epoch 一起进行整理和中继。这将确保消费者链在提供者链中的每次潜在状态更新时都具有绝对准确的验证者权重表示。但是,由于委托受制于解除绑定期,因此可以更保守地处理状态更新。在另一个极端情况下,人们可能会认为,如果 Provider 链上没有发生主动的权益解除绑定,则可以假设在该解除绑定期间的最大持续时间内无法更新验证人集,因此可以等待验证人集更新直到在那一刻之前。

在安全和正确的时间内记录和中继验证器集更新的过程是 Informal Systems 规范和研究的重点。我们可以假设设计将意识到必须进行验证器集更新以确保安全操作的必要节奏。当没有更新时,可能需要简单地通过心跳 IBC 数据包来确认这一点。

2. 奖励分配

虽然跨链安全性可能会消除质押代币在新区块链的代币设计中发挥作用的必要性,但可以假设会有某种经济系统来奖励验证者生产区块。为了遵循 Cosmos SDK 的默认功能,我们假设有一个简单的通胀奖励代币附加到区块的生产中。该代币也可以是治理代币,其价值可能隐含在治理其他有用和有价值的网络的能力中。代币可能有很多用途或存在的理由,但作为每个区块链设计自己目的的责任,我们将假设存在某种奖励代币,并用于奖励验证者生产区块。

在当前系统中,奖励被汇集到分配模块帐户中。分配模块导入质押模块以跟踪验证者的权重,以便在每个委托人的基础上计算和分配奖励。为了在消费者链上发生这种情况,不仅需要通过跨链验证传递验证器集和验证器投票权,还需要组成每个验证器的所有组成委托人。这将导致一个非常大的 IBC 数据包,即使不是不可能,也会使常规通信变得困难。此信息不应中继所有委托人,而应保留在 Provider Chain 质押模块内的 Provider Chain 上。

而不是在消费者链上分配奖励,为每个产生的块收集的奖励应该每隔一段时间转移到提供者链上。它可能是定期间隔或用户发起的 IBC 数据包,但类似于从消费者链的分发模块帐户到提供者链的分发模块帐户的 ics-20 代币转移。标准 ics-20 转账之间的区别在于,如果不使用 V1 Full Validator Set Interchain Security,Provider Chain 分配模块帐户需要知道奖励来自哪个链以及在哪个时期收集奖励。此信息将是执行 Provider Chain 分发模块所必需的'

3. 证据

在单链系统中,验证者可能以各种方式行为不端,导致附加到该验证者的权益被削减。这可以在状态机内自动发生,或者仅在收集到不当行为的证据并提交给链后发生。在为消费者链设置的验证者由仅存在于提供者链上的权益保护的情况下,需要将不当行为的证据提交给提供者链,在那里可以削减权益中的代币。与单链系统类似,这可能会自动发生或仅在手动提交证据的情况下发生。如果它是自动发生的,这意味着可以自动生成一个传出的 IBC 数据包,但仍需要手动将其转发到可能会受到惩罚的供应商链。

无论哪种方式都会带来一个问题,即是否应该由提供者链来验证可罚没事件的证据,或者只是信任消费者链的命令来在提供者链的层面上削减验证者。虽然两者可能都有能力,但信任消费者链使提供者链的工作变得更加容易。在这种情况下,提供者链不需要了解消费者链中包含的逻辑,这可能是确定是否发生可罚没犯罪所必需的。信任消费者链来执行自己的规则让消费者链非常信任它不会滥用职位并提交一波可罚没的命令,这可能会使验证者变得一无所有。然而,这最终是验证者的责任,以确保在消费者链上验证的可削减风险值得预期的回报。这包括确定消费者链的状态机是否包含验证者熟悉的逻辑。

消费者链削减提供者链验证者的能力也可能在提供者链层面施加限制。例如,可以将其作为链注册表中消费者链的必需参数,以提供最大削减率。这将确保验证者知道,即使他们违反了消费者链的所有规则,他们仍然可以将对其权益的损害限制在一定程度上。还可以在提供者链级别强制执行一个参数,以防止验证者加入消费者链验证者集的任何组合,从而导致组合的可罚没率超过某个阈值。例如,如果有 3 条消费者链,每条链在 X 个区块上的最大可削减率为 33%,并且提供者链对验证者有一个安全限制,要求他们在 X 个区块上保持低于 90% 的可罚没事件,因此不允许验证者加入所有这 3 个消费者链的链注册表。Provider Chain 上的这个参数应该是一个治理参数,可以通过代币质押投票进行调整,以反映 Provider Chain 的实际验证者集的风险偏好。

应考虑围绕提交证据的激励措施,以确保应受惩罚的罪行不会被忽视。这与中继器激励类似,目前中继 IBC 数据包需要一些费用,但作为核心 IBC 逻辑的一部分,没有可能的奖励或支付。因此,IBC 数据包目前以一种利他的方式进行中继。重要的是要确保始终提交可罚没的攻击,以确保子链和 Provider Chain 操作的完整性。可能会使用可削减数量的代币作为提交证据的奖励(假设可以确保不是罪魁祸首提交自己的证据并重新获得他们的股份)。也许需要一些固定费用来至少支付交易费用,

五.消费链质押模块

使用跨链安全,消费者链通过跨链验证 IBC 数据包接收提供者链的一组验证者投票权的更新。这些更新用于填充消费者链的质押模块。在消费者链上,Tendermint 共识正在运行,它向消费者链质押模块询问当前的验证者列表及其投票权。这与没有跨链安全的传统配置几乎相同,因为从 Tendermint 的角度来看,流程是相同的(ABCI 向质押模块询问此信息)。

1. V3 分层安全

与其尽可能与当前的质押模块保持一致,不如使用附加功能制作一个包装质押模块。这将允许消费者链创建自己的质押设计,以扩展从提供者链接收到的验证器集。例如,来自 Provider Chain 的验证器集可以在收到后存储在类似质押的模块中。此外,另一个模块可用于使用辅助本地质押令牌跟踪对一组重叠验证者的委托。实际的验证者集及其投票权可以是这两组的组合,并通过 ABCI 传递给 Tendermint。这种组合可以按链或根据需要进行定制,例如,它可能只是增强提供者链验证器的功能或根据需要使集合黯然失色。

六. 消费链分销模块

供应商链上的委托人和验证人可能不会为了被包含在消费者链上的验证人集中而冒险使用他们的 ATOM,除非有这样做的动机。至少,从处理交易中获得的交易费用可以被视为一种可能的激励措施。也可能有完全在状态机之外的激励措施,例如通过传统的货币传输方式定期支付的服务协议。更有可能的是,消费者链包括某种类型的区块奖励,如传统验证方案中所见。这可能是用于气体、治理或其他用途的子链特定令牌。

无论如何准确计算奖励,都由消费者链设计一个足够有吸引力的系统,以使提供者链的验证者冒着抵押代币的风险以获得资格。一旦计算出该奖励,就需要将其分配回获得奖励的验证者。这些奖励可以存入消费者链或提供者链。如果存放在消费者链上,则只能记录他们获得奖励的验证者以及在哪个时间段内,因为每个委托人的指标仅存储在提供者链上。

为了让委托人获得与他们目前所经历的类似的奖励分配,应定期将奖励转移到提供者链,在那里他们可以利用跟踪跨链验证客户端连接的提供者链分配模块。这些将通过类似于传统 IBC 传输数据包的 CCV IBC 交易发送到供应商链,但会发送到分发模块帐户,其中包含有关它们在哪个验证器和链上以及在什么时间段内获得的相关信息。此信息将允许提供者链分配模块将奖励分配给每个验证者的组成委托人。

七. 推出和开放式问题

跨链安全由许多活动部分组成,每个部分都有可变的功能范围。在本文档中,各种功能被称为 V1、V2 和 V3。还有其他悬而未决的问题,包括跨链安全堆栈中包含的每个模块的确切实施细节。这些进一步产生了每个步骤的预期用户流以及边缘情况,例如:

  • 子链或提供者链停止
  • 供应商链升级之子
  • 供应商链或消费者链的有争议的分叉
  • 两边的 IBC 版本不同步

其他悬而未决的问题包括解决此配置给供应商链带来的风险程度。提供者链验证器是否可以在大量消费者链上进行验证?这在多大程度上应该是 Validator 的选择还是 Provider Chain 状态机施加的限制?如果验证者暴露在过多消费者链的削减条件下,这是否会危及提供者链的安全性,还是委托人有责任考虑这种风险?

验证新链的经济成本是另一个悬而未决的问题,对于确定该产品的可行性很重要。在大量消费者链上进行验证的成本是否会让较小的验证者望而却步,还是较小的验证者可以与较大的验证者和交易所竞争?

八.结论

Interchain Security 是一种新的共享安全原语,它对 Cosmos Hub 等单个区块链的安全性和可扩展性具有影响,并有可能显着降低为新应用程序运行安全公共区块链的障碍。它可以被认为是分片的一种竞争配置,并且在为包含在其环境中的应用程序提供的安全产品方面,使 Cosmos Hub 与 Eth 2.0 或 Polkadot 相提并论。Cosmos 生态系统的设计理念始终将自治和主权置于安全保障之上——“带来自己的安全”是过去使用的一个术语。这里讨论的跨链安全设计试图将 Cosmos 的自治和主权设计理念与提供共享安全相结合。

合作伙伴