聚合区块链

中级Feb 26, 2024
本文将深入探讨什么是聚合层、它如何运作,以及它与共享序列器或验证器有何不同。
聚合区块链

我想提出两个观点:
1.无论是一级链(L1)还是二级链(L2),没有单一的链能够支持达到互联网规模所需的吞吐量。
2.扩展区块链意味着扩大对流动性和共享状态的访问。如果通过多个链增加区块空间却导致流动性碎片化,这种做法是行不通的。

这对于模块化和整体化的区块链可扩展性观点都是一个挑战。观点(1)是对整体化视角的挑战,整体化视角认为单一的高吞吐量链是扩展的最佳方式。观点(2)是对模块化视角的挑战,因为这意味着多链或多Rollup生态系统对于以有意义的方式扩展(即增加对共享状态和流动性的访问)是不够的。

如果观点(1)和(2)都是真的,那么解决可扩展性问题就需要跨多个链扩大对共享状态和流动性的访问。Polygon的解决方案是聚合层,或称为“AggLayer”。AggLayer为几乎即时的跨链交易提供安全保障,并实现链间状态和流动性的统一。

本文将深入探讨AggLayer是什么、它如何工作,以及它与共享序列器或证明者有何不同。

问题

二级链(L2)存在一个问题:流动性和状态在Rollup和一级链(L1)之间碎片化。

这从可用性的角度来看是不好的,因为它引入了复杂性,但这也是昂贵的。碎片化的流动性意味着更高的滑点和更差的执行。Optimistic Rollup(ORs)要求用户支付昂贵的第三方桥费用,以避免七天的提款延迟。即使是零知识Rollup(ZKRs)也要求用户往返以太坊进行无需信任的跨链交易。

最终性和有效性

这就是低延迟、无需信任的跨链交易目前不可能实现的原因。

假设有两个 Rollup,链 A 和链 B,共享一个到 L1 的桥。链 A 上的 Alice 想向链 B 上的 Bob 付款,因此 Alice 锁定或销毁链 A 上的代币,以便转移到链 B。

链 B 需要满足两件事才能将这些代币安全地记入 Bob 手中。

  1. 包含 Alice 交易的批次必须在以太坊 L1 上完成。
  2. 链B必须能够验证Alice交易后链A的结果状态是有效的。

如果包含Alice交易的批次未在以太坊上终结,那么链A可以对链B说谎并通过保留Alice在链A的资金并在链B上铸造Bob的资金来进行双花。同样,如果链B不检查A的有效性证明,那么链A可以包含一个无效的交易并从B窃取资金。

观点(1)和(2)意味着无需信任的跨链交易不能有低延迟。(1)目前需要12分钟,而(2)在ORs中需要等待挑战期的持续时间,在ZKRs上需要几分钟来生成证明。

良好的用户体验与 20 分钟的延迟是不兼容的。聚合层就是为了解决这个问题而设计的。

聚合层

Polygon 是一个由 ZK 驱动的 L2 生态系统,以以太坊为基础。聚合层是一种由质押节点运行的去中心化协议,它确保了低延迟跨链交易的安全性和统一桥接[1]。

在这个上下文中,“安全性”指的是:

如果一个 rollup 的状态在 Ethereum 上被最终确定/结算,而该链状态依赖于另一个链的无效或未最终确定的状态,或者它包含了一个原子[2]捆绑包中的交易并未在所有其他链上成功执行,则这是不可能的。

换句话说,如果链 B 的状态依赖于链 A 的无效或未最终确定的状态,则无法在以太坊上最终确定。

这个保证很重要。在链 A 的状态在以太坊上最终确定或生成证明之前,它允许链 B 以超低延迟安全地与链 A 互操作。

聚合层如何工作

聚合层分三个阶段运行。假设链 A 是运行在 Polygon 生态系统中的 ZK 驱动的链。

  1. 预先确认: 链 A 向 AggLayer 提交新区块/批次A1 的标头以及轻客户端证明。标头包括对 A1 所依赖的所有其他块和捆绑包(B1、C1 等)的承诺。当新批次在没有有效性证明的情况下被接受时,它被 AggLayer 视为“预先确认”。
  2. 确认: 链 A 或 A 的任何全节点生成 A1 的证明并将其提交给 AggLayer。一旦 AggLayer 验证了证明,如果它所依赖的所有批次也都被确认,则 A1 被确认。
  3. 最终确定: A1 被确认后,它的证明将与其他汇总的批次一起聚合成一个发布到以太坊的单一证明。聚合证明强制依赖链状态和束是一致的。

链可以自行在延迟和活跃性保证之间进行权衡。一条链可能会在预确认步骤之后选择与另一条链进行互操作,以实现超低延迟的跨链交易,但从根本上来说,该模型与等待确认甚至最终确定的链兼容。

第三步是跨链交易的安全保障。让我们进一步深入探讨这种设计如何实现安全的跨链交互。

异步互操作性

以跨链传输的第一个例子为例。链 A 上的 Alice 想要锁定或销毁区块 A1 中的一些代币,以便铸造代币并将其转移给链 B 上的 Bob。如果链 B 不等到 A1 在以太坊上通过有效证明最终确定,则链 A可能会模棱两可或给链 B 一个无效的状态。

聚合层以一种简单的方式解决了这个问题。链 B 可以暂时假设 A1 有效并将在以太坊上最终确定,甚至无需等待证明。在提交到聚合层之前,链 B 的定序器将所声明的链 A 状态根A1 作为 A1 标头中的依赖项(如 B1A1 )提交。链 B 构建 B1 所需的延迟从 20 分钟减少到最多几秒。

在确认步骤中,聚合层为提交的每个块/批次构建依赖关系图。例如,如果 A1 依赖于 B1,而 B1 又依赖于 C1,则一旦提交证明,πC1 就会得到确认。但是,即使收到 πA1,也只能通过 πB1 和 πC1 来确认 A1。此设计的关键方面是证明聚合电路强制跨依赖项的一致性。如果“B1A1”与链 A 提交的区块“A1”不一致,或者“A1”缺少证明,则“B1”不能包含在以太坊上最终确定的聚合批次中。

该机制保证,如果链 A 模棱两可或提交无效块(例如“A1”),则依赖于链 A 的无效或模棱两可状态根的任何批次都无法在以太坊上最终确定/结算。即使 AggLayer 本身模棱两可,链也有密码学保证,任何依赖于无效或模棱两可的块的块都无法最终确定,因为不一致或无效的链状态的两个证明无法在证明聚合电路中聚合在一起。这确保了上述安全特性得以保留。

原子互操作性

安全机制可以扩展到原子案例。假设用户向多个链提交一个原子交易包。这个包是有序的,因此在链A上执行的交易结果会传递给链B,同样,链B的更新状态会传递给链C,等等。如果所有链上的交易都成功执行,那么这个包就会被包含进去;否则,它就会被拒绝。

理想情况下,提供包含原子交易的能力,而无需要求链B的操作者为包中包含的所有其他链运行一个完整节点;或接受包可能在以太坊上部分包含的风险(对参与的链造成伤害)。

这就像在异步案例中一样引发了一个类似的安全问题:链A可能会说谎并提交一个实际上不包括原子包的批次,或者向链B发送一个无效的结果。

幸运的是,可以为原子案例重用异步案例中的相同机制。链B承诺对包以及从其他链收到的交易结果。聚合层(和证明聚合电路)检查包在各链之间是否一致。只有当包中的所有交易都成功执行时,包含链B的包的批次才能在以太坊上被最终确定/结算。

跨链可组合性

聚合层通过异步跨链调用实现了超低延迟的跨链组合性。这是一个非常强大的原语:合约可以在超低延迟下安全地调用其他链上的合约,无需等待以太坊的最终确定。用户可以通过OKX链在Polygon上进行接入,然后一键立即将资金存入Aave上不同链上的高流动性借贷市场,而无需换出包装的合成资产。

应急协调基础设施

聚合层保证了近乎即时的跨链交互将是安全的[3]。但这只是解决问题的一半。链运营者如何共享和信任彼此的链状态?他们如何协调生成原子束?

AggLayer的一个设计目标是它应该是最小化的。其目的是保证安全并提供一个基础,允许任何人建立协调基础设施,以在不同的设置中提供活性。

链的运营者可以根据他们的信任假设自由选择应急协调机制——这些可能包括中继、共享证明者基础设施或共享有效性排序器[4]集群。这些保护链在依赖其他链状态或束时免受活性问题的影响。

Polygon生态系统优先考虑链的选择和主权。链可以运行它们自己修改的执行环境,使用自己的代币进行质押和支付燃料费,选择自己的数据可用性机制等。同样,链应该决定如何处理互操作性和活性故障风险之间的权衡。有几个选项:

链B可以选择不使用快速互操作性和聚合层。它可以直接向以太坊提交批处理和证明,而最终确认永远不会被延迟。

链B可以在聚合层确认链A的状态后才接受链A的状态。只有当聚合层发生等价时,链B才会被延迟。

链B可以在聚合层预确认链A的状态时接受链A的状态。如果聚合层发生等价或链A未能产生证明,链B将会被延迟。

链B可以在点对点设置中接受链A的状态,而不检查聚合层是否预确认了链A的状态。如果链A发生等价或未能产生证明,链B将会被延迟。

需要注意的重要一点是,用户不能引起活性故障,只有行为不当或功能故障的链才能。等价和提交无效块可以受到严重惩罚,要么通过削减,要么通过将链从聚合层中逐出并阻止它们无缝互操作的能力。因此,活性故障应该非常罕见。

链可以采取额外的预防措施来最小化活性问题的风险,通过维护白名单或黑名单与其互操作的其他链,并设置可以在任何批次中共同涉及的链的数量限制。他们可以依赖运行全节点的第三方以确保如果链在能产生证明之前离线,有一个备用证明者。

链协调接受原子束的机制也是灵活的。例如,一部分链可以在共享有效性排序集群中互操作以获得极低的延迟,或者他们可以依赖中继。

加密经济保护的中继器可以通过为两条链运行完整节点并证明每条链的状态有效来实现链 A 和 B 之间的互操作性。即使链 A 或 B 预先确认了新批次然后离线,共享证明者基础设施也可以介入生成证明。

你可以想象,在AggLayer提供的安全基础之上,新的和更好的互操作性及共享流动性的协调基础设施将会出现。关键是,整个Polygon生态系统不需要共享相同的基础设施或信任假设。它不需要在单一的共享有效性排序器或证明者下运行。这是与ORs相比的一个极其重要的优势。

结束语

聚合层的根本作用是让我们能够创建一个多链生态系统,使用起来就像是单一链一样。这是对单一体系和模块化论断的综合:统一的状态、流动性和可组合性,以及多链生态系统的无限扩展性。

聚合ZK与Optimistic系统

这是一个根本上只有基于ZK系统才能实现的愿景。我将在未来的帖子中展开这一点,但是希望实现快速互操作的Optimistic生态系统必须依赖共享有效性序列器。这对链来说是一个坏交易:它限制了它们重新分配序列器费用和MEV,共享有效性序列器迫使链可能接受对其执行环境的限制,而基于OR的系统中的互操作性迫使链接受额外的信任假设,以换取低延迟。

此外,跨链互操作性打破了ORs的一个重要属性。在单链ORs中,任何人都可以为OR运行一个完整节点,并且一旦交易被发布到L1,就可以立即确认交易是有效且已最终确定的。在多链情况下,这已不再成立——现在需要为OR与之互操作的每个链运行一个完整节点。

相比之下,Polygon的愿景是链条具有主权。它们可以使用任何执行环境,可以依赖任何中心化或去中心化的序列器,并且可以自己在跨链延迟和活性之间进行权衡。

这是一个反映现有互联网的愿景。互联网是一个弹性可扩展、无需许可和统一的环境。同样,AggLayer也是可扩展和无需许可的——它对参与的链不施加任何限制——并允许用户无缝地在生态系统中移动资产和状态,为互联网的价值层提供一个统一的界面。

这是Polygon的未来:不是单一的,不是完全模块化的,而是聚合的。

[1] 确保统一流动性的一部分是摆脱桥接上包裹合成代币的糟糕用户体验。Polygon的LxLy桥的用户可以在保持可替代性的同时,无缝转移跨链资产。然而,为了安全地做到这一点,我们需要防范最弱环节安全性——或者攻击者腐化单个链并从桥上的所有链中排干所有资金。我将在未来的帖子中讨论如何做到这一点,但AggLayer可以利用证明聚合步骤来强制执行链级会计,避免最弱环节安全性。

[2] 当我提到原子跨链交易时,我的意思是用户能够提交一个跨多个链的“包”或一组交易。原子包具有的属性是,如果且仅当所有交易成功执行时,其交易才被包含在每个相关链中。如果单个交易失败,则该包不能在任何链上被包含。

最基本的例子再次是我们的跨链转账。假设Alice想要给Bob发送1 ETH,但Alice在链A上,Bob在链B上。假设两个卷轴共享一个原生桥,Alice可以在链A上销毁她的ETH并在链B上铸造ETH,然后转给Bob。但关键是要保证她不能在不销毁ETH的情况下铸造ETH,反之亦然——否则她可能会丢失她的ETH或使桥下担保。

这就是原子交易如此重要的原因。为了允许链与链之间的低延迟互动,并使使用Polygon生态系统感觉像使用单一链,需要原子保证。

[3] 这是一个微妙的点,但从生态系统的角度来看 - AggLayer提供了安全性,但从单个链的角度来看,这种设计优先考虑活性而不是安全性,因为链B可以依赖于链A的无效状态。在这种情况下,链B将不会被AggLayer接受(由证明聚合电路强制执行)并且需要构建一个新的不依赖于A的区块。

[4] 我们整体的方法很大程度上借鉴了Umbra Research的共享有效性序列设计。

2024年2月9日 - 更新了这份草稿,以澄清聚合与共享序列之间的一些比较。聚合论文依赖于共享序列器、中继和构建器等机制来促进链之间的协调。反过来,聚合层保证了安全性。

声明:

  1. 本文转载自[Brendan Farmer],著作权归属原作者[Brendan Farmer],如对转载有异议,请联系Gate Learn团队,团队会根据相关流程尽速处理。
  2. 免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。
  3. 文章其他语言版本由Gate Learn团队翻译, 在未提及Gate.io的情况下不得复制、传播或抄袭经翻译文章。
Jetzt anfangen
Registrieren Sie sich und erhalten Sie einen
100
-Euro-Gutschein!
Benutzerkonto erstellen