免责声明:金色财经所有资讯仅代表作者个人观点,不构成任何投资理财建议。请确保访问网址为(jinse.cn) 举报

    Rollups 之间的无信任互操作性:概况、构建和挑战

    作者:Marshall Vyletel Jr. 来源:1kx 翻译:善欧巴,金色财经

    介绍

    以太坊上的 rollup 数量出现了爆发式增长。根据 L2Beat 的数据,截至撰写本文时,已有 91 个 L2 和 L3 上线,还有 82 个即将上线。因此,在流动性、用户体验和开发人员工具方面也存在大量碎片化。当前的互操作性解决方案还有待改进,因为它们依赖于第三方桥接器、外部包装资产和意图框架的组合,而每种解决方案都有各自的问题。

    1. 流动性桥通常是最大的加密货币黑客攻击的目标(例如价值 3.21 亿美元的虫洞桥黑客攻击)

    2. 外部包装的资产并不受欢迎,数据显示,只要有可能,人们更愿意以原生形式持有资产(例如,根据L2Beat 的数据,规范桥接资产价值为 220 亿美元,而外部包装的资产仅价值 30 亿美元)

    3. 意图框架依赖于第三方,这些第三方需要一些不可忽略的信任,并收取额外费用以促进跨 Rollup 活动(例如,由于官方桥梁不规范,Degen 链用户损失了 80% 以上的代币)。中心化的意图框架也意味着较低的竞争,这可能导致定价和性能不理想

    在本文中,我们通过定义和讨论分散的 Rollup 生态系统之间的六个级别的互操作性解决方案,调查了无信任互操作性前景。

    我们从默认情况开始,即异步从源 rollup 提现到 L1 并手动桥接至目标 rollup,最后以单个交易中跨 rollup 可组合性的假设架构结束。我们将探讨每个级别的互操作性将如何影响用户体验、开发人员体验、MEV 潜力以及 rollup 本身(具体与基础设施变化有关)。

    本文主要讨论以太坊及其 L2,并仅关注无需信任的互操作性。在这种情况下,“无需信任的互操作性”是指协议内通道,不需要第三方在大多数 rollup 已经需要的必要基础设施之外促进传输。

    准备工作

    定义

    从根本上讲,无需信任的互操作性需要一些共享资源,任何两个希望互操作的协议都必须能够访问这些资源。在以太坊 L1 的情况下,所有智能合约都存在于共享以太坊完整状态的同一环境中,因此它们将始终具有最高级别的互操作性。然而,L2 仅通过单独的桥接合约共享结算层,因此互操作性受到很大限制。

    能够推动我们在无信任互操作性阶梯上前进的关键共享基础设施组件是共享排序器、超级构建器和共享结算。这些共享层所开放的保证和新功能是相关的,但本质上是正交的。

    1. 共享序列器/超级建造者:主要提升速度和用户体验。

    2. 共享结算:无需外部包装和协议内消息传递的资产交换。

    首先,我们将定义引言中提到的六个无需信任的互操作性级别:

    1. L1 异步:
      →通过汇总结算的 L1 进行手动资产转移,实现互操作性。

    2. 原子包含:
      → 保证跨 Rollup Bundle 中的所有交易都将包含在该 Bundle 中涉及的每个 Rollup 的下一个块中,或者都不包含在内。

    3. 共享结算:
      → 通过相同的桥接合约,多个 rollup 连接到 L1。

    4. 原子执行:
      → 保证跨 Rollup 捆绑包中的所有交易都将包含在捆绑包中涉及的每个 Rollup 的下一个区块中并成功执行,否则将不执行任何交易。成功执行是指每笔交易均在不回滚的情况下执行,并反映在捆绑包中每个 Rollup 的更新状态中。

    5. 区块级可组合性:
      → 跨 Rollup Bundle 的下一个区块保证可以包含依赖交易(Rollup B 上的 tx B 依赖于 Rollup A 上 tx A 的结果)

    6. 交易级别可组合性:
      → 智能合约级别互操作性仅需一笔交易即可同时导致多个 rollup 之间的状态变化(无捆绑)。在任何 rollup 上使用任何协议在逻辑上等同于在一条链上使用不同的智能合约。重要的是,这意味着任何调用之前的状态更改都可以在返回时恢复。

    为了进一步了解每个级别,我们将介绍以下关键用例,以展示每个级别的功能及其对用户、开发人员、汇总和 MEV 搜索者的影响。

    示例:

    1. 相同代币转移
      → 发送给自己:在两个 Rollup 之间将 Eth 兑换为 Eth,或将 ERC-20 兑换为 ERC-20

    2. 代币购买
      → 跨 Rollup 限价订单:使用 Rollup A 中的 Eth/ERC-20,从 Rollup B 上的 DEX 购买不同的 ERC-20,并(可选)发送回 Rollup A

    含义:

    我们还将回答以下问题,以进一步了解对任何汇总生态系统中关键股东的影响。

    1. 用户体验
      通过实现这种程度的互操作性,用户体验会发生怎样的变化?

    2. 开发人员体验
      通过实现这种级别的互操作性,开发人员体验会发生怎样的变化?

    3. MEV 潜力
      如果我们实现了这种程度的互操作性,是否有可能出现新的 MEV 机会?

    4. Rollup 的影响
      Rollup 是否必须选择加入任何新的基础设施才能实现这一点?Rollup 的费用结构有哪些变化?Rollup 参与该基础设施可能带来哪些潜在好处?

    高级概述

    OGkLoaNSvsoTRNmi9BWI6REaSlRYqp2Q0i4bdv94.png

    迈向无信任互操作性的六个阶段

    1. L1 异步

    所需基础设施:

    不适用

    根据定义,这指的是当前默认的无信任互操作模式。所有 rollup 都是这样定义的,因为它们是作为结算层建立在 L1 上的,并且只能通过桥接合约访问该 L1,它们会定期发布状态更新以保护网络。

    在这种情况下,执行任何无需信任的跨 Rollup 活动的唯一规范方法是通过规范桥从源 Rollup 中提取资产,并在 L1 上可用后手动将其存入目标 Rollup 中。

    对于 Optimistic Rollup,考虑到防错窗口,提现延迟约为 7 天。在 ZK Rollup 中,提现延迟不太确定,但可能在 15 分钟到一整天之间,ZkSync 就是这种情况。

    此外,使用智能合约进行点对点原子交换也是可能的,但这是一个较小的用例,并且无法有效扩展。

    值得注意的是目前存在的第三方解决方案:

    1. 流动性桥梁

    2. 意图框架

    我们的两个示例都需要第三方解决方案来协助。

    发送给自己:

    1. 规范做法:
      → 从 Rollup A 中提取资产
      →手动存入 Rollup B

    2. 第三方:
      → 流动性桥梁 / 求解器网络

    跨滚动限价订单

    1. 规范:
      → 从 Rollup A 中提取资产
      →手动存入 Rollup B
      →执行限价订单
      →要发回,必须对目标 ERC-20 进行外部包装

    2. 第三方
      → 跨汇总限价订单的新兴解决方案空间
      → 有开放的设计围绕使用意图来促进这一点

    由于这是默认情况,因此无需讨论 UX、DevEx、MEV 和汇总的变化。

    2. 原子包含

    所需的基础设施

    共享序列器 *

    原子包含仅保证跨汇总捆绑包将包含在下一个块中。

    这需要一个共享的排序器,但理论上,如果两个给定 rollup 上的排序器未达到最大吞吐量,则可以手动实现(只需向每个 rollup 分别提交两个交易即可)。这就是我们在所需基础设施上添加了星号的原因。

    但是,我们并不假设共享排序器运行每个连接的 rollup 的完整节点,因此无法保证一组交易的成功执行。在这种情况下,共享排序器只能保证交易格式正确且将包含在下一个区块中,但不一定能成功执行。

    由于没有执行保证,因此不可能以任何有意义的方式以编程方式利用原子包含,而不会招致其中一项交易被撤销的风险。因此,我们本质上处于与 L1 Async 互操作性完全相同的情况。

    考虑启动一个仅具有原子包含保证的简单交叉汇总交换:

    1. 跨 Rollup 交换捆绑
      → Tx 1:在源 Rollup 上锁定 / 销毁代币
      → Tx 2:将代币铸造到目标 Rollup 上的用户地址

    我们可能有原子包含保证,即两个交易实际上都包含在每个汇总的下一个块中,但如果第一个交易回滚而第二个交易没有回滚,则用户将在目标链上错误地分配资金,而无需在源链上锁定或烧毁它们,我们就会遇到双重支付问题。

    任何互操作性解决方案,无论是流动性桥、意图框架还是 xERC-20 交换,都容易受到这种风险的影响,而且不可能缓解这种风险。由于存在这种风险,当前的解决方案要求发起交易必须已成功执行并包含在源链上的区块中,然后才能使用中继器传递发出的消息并在目标链上执行第二笔交易。

    重要提示:原子包含不会对互操作性潜力产生重大影响

    3. 共享结算

    所需基础设施:

    证明聚合层//共享桥合约

    这就是事情开始变得更加有趣的地方。由于共享桥合约的存在,从 L1 存入 rollup 生态系统的所有流动性都可以在所有连接的 rollup 之间自由移动。在此之前,我们无法在不经过规范渠道、外部包装资产或使用第三方解决方案的情况下在 rollup 之间进行交换。

    为什么要建立共享桥合约?要理解为什么共享桥合约可以让我们以无需信任的方式跨 Rollup 转移资产,首先考虑一下,如果可以在 Rollup A 中拥有 Eth,将其销毁,然后在 Rollup B 上原生铸造,而无需在 Layer1 上建立共享桥合约,会发生什么情况。

    JHnmVgKofsVFmGVAn6qUyGFHXbLAQpgE2deeDFB1.png

    我们看到,每个 rollup 都会与主网上的桥接合约不同步。rollup B 桥接合约仍有 50 个 Eth,因此用户无法将其 1 个 Eth 提取到 L1。

    为了解决这个问题,我们建立了外部资产包装协议,在汇总中发行外部包装版本的代币,这些代币象征着网络中其他地方的原生版本。

    有了共享结算层,情况就不同了。由于每个连接的 rollup 的所有流动性都锁定在同一个桥梁合约中,因此人们可以在 rollup 之间自由移动,因为桥梁合约中的总价值保持不变,并且始终可以提取。

    确实需要在 L1 合约层面进行更新,以了解流动性在哪里,以允许用户从任何地方提款,但这很简单,因为所有连接的汇总都可以读取/写入共享合约。

    使用共享结算层,对于简单的发送给自己的情况下,流程可能看起来像下面这样。

    发送给自己:

    1. 用户创建初始交易:
      →Tx 1:在 rollup A 上提取Eth(并在 rollup B 上铸造)
      →交易被分批并提交给 L1 合约
      →它被聚合到交易根中,该交易根将所有共享结算 rollup 分组

    2. Rollup B导入此交易根

    3. 中继器将交易提交给铸币厂,并将 Merkle 证明提交给 rollup B

    4. Rollup B使用 Merkle Proof 和交易根来验证销毁交易

    5. 用户在 Rollup B 上铸造了Eth

    6. Rollup B向 L1提交证明

    我们可以将此流程扩展到在共享结算生态系统中所有汇总中都有合约的任何 ERC-20。

    我们可以将共享桥合约视为所有连接汇总之间的协议内消息传递层,因此理论上这种流程实际上可以扩展到任何任意消息传递标准。

    这让我们更接近可组合性,但由于只有在 L1 上反映状态变化后才需要聚合证明和传递消息,因此延迟较高(尽管明显低于 L1 异步情况)。此外,任何复杂的跨 Rollup 活动(例如在 Rollup B 上使用 DEX 从 Rollup A 上的资产开始进行跨 Rollup 限价订单)对于用户来说仍然是一个繁琐的过程,因为他们仍然必须向自己发送并在目标 Rollup 上手动交换资产。在这种情况下,无法创建原子跨 Rollup 捆绑包。

    共享结算的另一个重要好处是,对于在多个环境中执行订单的流动性提供者或解决者来说,摩擦更小。由于他们跨所有连接的 Rollup 的流动性都反映在同一个过桥合约中,因此他们不必等待完整的提款窗口来管理跨 Rollup 流动性。

    对利益相关者的影响:

    1. 用户:
      现在可以以原生形式转移资产,无需 L1 提款期

    2. 开发人员:
      变更仅限于代币发行者,他们现在可以使用协议内消息传递在所有连接的 Rollup 上发行 ERC-20 的原生版本

    3. MEV 搜索者:
      由于这种情况发生在每个 rollup 的多个区块上,因此不存在新的 MEV 潜力

    4. Rollups:
      Rollups 必须选择使用共享桥合约,并可能添加预编译来处理跨 Rollup 消息

    重要提示:共享结算允许在共享桥接合约和证明聚合层的所有汇总中进行非外部包装的资产转移和任意消息传递,但仍然会有不可忽略的延迟(尽管比 L1 Async 短得多)并且无法创建跨汇总原子束。

    4.原子执行

    所需基础设施:

    共享排序器 // 超级建造者

    原子执行使我们能够保证跨卷捆绑包的成功执行,但正如我们将看到的,没有依赖事务的跨卷捆绑包的用例数量比最初预期的要少。

    如果一组依赖交易中的任何单笔交易被撤销,那么所有其他交易都将变得无效,并且也必须被撤销,就像跨 rollup 销毁和铸造代币的情况一样。在目标 rollup 上铸造代币取决于它们是否已在源 rollup 上被销毁或锁定,因此我们可以说一组销毁和铸造交易是一组依赖交易。

    如果没有能够创建目标交易的中间方(例如超级建造者),就不可能创建此捆绑包。

    考虑一下,在没有用户以外的其他方参与的情况下,跨 Rollup 交换捆绑包的构建必须满足哪些条件。必须创建一个捆绑包来锁定/刻录源 Rollup 上的资产,并在目标 Rollup 上铸造资产,但我们遇到了问题:

    1. 源 rollup 上的合约只能在锁定 / 销毁原始源资产时发出消息,它们无法在目标 rollup 上调用和创建交易。
      →这就是消息协议和中继网络存在的原因。
      → 消息可用于构造目标上的调用应该是什么,但它实际上不能创建交易本身。

    2. 在目标 rollup 上创建第二笔交易以进行铸造:
      → 用户自己无法创建此 tx,因为他们没有 rollup B 上代币的铸造权
      →即)目标链需要证明代币已在源链上被烧毁/锁定,但此证明直到初始交易执行后才可用,这会破坏我们对原子性的要求。 → 理论上,任何其他能够
      创建具有铸造权的第二笔交易的一方都可以在任何时候在目标链上创建“铸造”交易,而无需首先在源链上创建“烧毁”或锁定,这是一个巨大的漏洞。

    我们可以看到,即使我们可以保证跨汇总捆绑包的执行,但我们在如何首先构建它们以转移有价值的资产方面遇到了困难。

    但是,仍然有一些不需要依赖 cross-rollup bundles 的原子执行用例。其中之一就是 cross-rollup 套利:

    VXyWjzT128LwU5kpjfTSCelPJzs4YIn1QyyBmn3w.png

    由于这些交易之间没有严格的依赖关系,任何人都可以创建这个原子包并将其提交给可保证原子执行的共享序列器。

    然而,为了首先获得原子执行保证,rollup 必须选择共享排序器和超级构建器,以运行所有连接的 rollup 的完整节点,因此从原子执行到区块级可组合性的一步非常小,所有共享排序解决方案都会做到这一点。唯一需要的改变是,区块构建器或其他第三方必须能够代表用户创建交易,以完成依赖的跨 rollup 捆绑包。

    不太可能构建只允许原子执行而不进一步实现可组合性的基础设施。考虑到基础设施已经具备原子执行功能,实现完全块级可组合性的相对收益远远超过实现这一目标的难度。

    对利益相关者的影响:

    1. 用户:
      可能不会有变化,尽管第三方可能会提供像意图这样的解决方案,但具体如何实现还不清楚

    2. 开发商:
      可能不会改变

    3. MEV 搜索者:
      考虑到原子执行,跨 rollup 套利更加安全

    4. Rollup:
      Rollup 必须选择使用共享排序器/超级构建器,提交包含来自希望互操作的每个 Rollup 的交易的区块,这可能会改变 Rollup 的收入结构。目前尚不清楚它将如何改变。-
      排序市场可能会通过允许成熟的构建者购买 ToB 空间来增加 Rollup 的收入

    重要提示:虽然跨 rollup 捆绑包保证原子执行,但如果没有创建捆绑包部分的超级构建器,则不清楚这些捆绑包将如何构建,因此原子执行本身不太可能影响互操作性。默认情况下,共享序列器/超级构建器应构建块级可组合性。

    5. 块级可组合性

    所需基础设施:

    共享排序器 // 超级构建器 // 证明聚合层* // 共享桥合约*

    (* = 可选)

    在有关共享序列器和共享结算层的大部分讨论中,通常用来描述这种级别互操作性的术语是“同步可组合性”。

    我们稍微修改了这个术语,使其更具描述性。将术语更新为“区块级可组合性”意味着可以在两个 rollup 之间组合跨 rollup 交易包,这些交易包将在下一个区块中包含并成功执行。同步可组合性可能会与交易级可组合性混淆,我们将在下一节中探讨这一点。重要的是,这需要一个中间方(共享排序基础设施),它可以成为依赖交易包的执行者和创建者。

    在这个层面上,我们开始看到 Rollup 之间的真正可组合性,而不仅仅是简单地发送给自己以参与另一个 Rollup 上的 dapp。

    通过添加可以创建交易的共享序列器,我们现在可以制作跨汇总包,开发人员可以通过编程方式利用它。

    有两种情况需要考虑:

    1. 块级可组合性

    2. 区块级可组合性+共享结算层

    在这两种情况下,我们都可以为更复杂的活动创建跨汇总捆绑包,但在第二种情况下,通过共享结算,我们可以使用原生资产,例如,这可能会对跨汇总 DEX 活动产生更好的价格影响。

    借助块级可组合性,我们既拥有原子执行的优势,又拥有创建依赖事务包的额外能力。让我们来看看我们的两个说明性示例。

    通过 xERC-20 进行相同代币转移(无共享结算):

    1. 用户拥有 ERC-20

    2. 用户通过 dapp 创建 tx:
      →将ERC-20 存入 xERC-20 锁箱以接收 xERC-20 包装版本
      →销毁xERC-20
      →向共享排序基础设施发送一条消息,表示已启动跨 rollup 传输,并附上相关数据以促进交换

    3. Superbuilder 拾取交易并创建跨 Rollup 捆绑
      → Tx 1:上述包装和销毁交易
      → Tx 2:在 Rollup B 上铸造 xERC-20

    4. Superbuilder 将此交叉 rollup 提交给共享排序器
      → 由于 Superbuilder 正在运行两个相连 rollup 的完整节点,因此它们会模拟交易以确保捆绑包成功执行。如果任何一笔交易回滚,整个捆绑包都会回滚。

    5. 共享排序器将包含两笔交易的区块提交给 DA 层以及执行状态更改的节点

    6. xERC-20在 Rollup B 上铸造给用户

    有了共享结算层,流程进一步简化,因为不需要先将 ERC-20 包装为 xERC-20 进行交换。

    现在让我们来看一下跨 Rollup 限价订单,即在 Rollup B 上用 Rollup A 中的初始(不同)ERC-20 购买 ERC-20,并将生成的 ERC-20 发送回 Rollup A。在这种情况下,我们不假设我们有一个共享结算层,尽管在有共享结算层的情况下存在类似的流程。唯一的区别是不需要额外对资产进行外部包装。

    以下是此案例中所需的交易:

    1. 在 A 上包装并销毁ERC-20

    2. B 上的Mint xERC-20

    3. 在 B 上将初始 xERC-20 与目标 ERC-20进行交换

    4. 在 B 上包装并销毁目标 ERC-20

    5. A 上的Mint xERC-20

    以下是其可能的工作流程:

    JYca2Irpteudt2twl2Kc1AoXIOQy7Q41gYCVelD8.png

    myAXnO2XiUzGPb4vaZ0unPFvCukNTdzrCHj84Er9.png

    流动:

    1. 用户发起第一笔交易:
      →包装并销毁xERC-20,并发送消息来指定交换参数(目标链、DEX 地址、要交换的 ERC-20、限价订单价格、是否发回的布尔值)

    2. 超级建造者看到交易并创建捆绑包:
      → Tx 1:用户创建上述交易
      → Tx 2:在目的地铸造 xERC-20(超级建造者必须拥有铸造权限)
      → Tx 3:使用来自 tx 1 的数据进行限价订单
      → Tx 4:在 B 上包装并销毁 ERC-20,假设限价订单已完全履行,并在源链上发送消息进行铸造
      → Tx 5:从源链上的交换输出铸造目标 xERC-20

    由于超级构建器会创建区块并排序交易,因此它可以模拟每笔交易,并在任何交易撤销时省略捆绑包。例如,如果发现用户无法完全履行其限价订单,则在执行区块之前会省略捆绑包。

    在没有共享结算层的共享排序基础设施的情况下,需要使用外部包装版本的 Eth 和 xERC-20,这可能会导致 DEX 的市场状况恶化,因为包装资产的流动性池会变薄。在这种情况下,用户可能不得不使用更宽松的限制,滑点容忍度更高,并且可能会收到次优价格。如果涉及 USDC,则有一个例外。没有共享结算的共享排序器可能会与 Circle 合作,获得跨 rollup 的 USDC 合约的独家权利,以促进跨 rollup 的原生 USDC 转移和交换。

    有了共享结算层,这种外部包装就没有必要了,而且由于原生资产交换的流动性池更深,可能会提供更好的价格,但流程基本相同。

    乐观地信任测序仪

    Rollup 需要乐观地信任共享的排序器/超级构建器来创建有效的跨 Rollup 捆绑包。这主要是因为这个跨 Rollup 捆绑包包含依赖交易,各个 Rollup 无法验证这些交易,直到将区块添加到每个 Rollup 的链上并聚合到 L1 上的结算层之后。一个例子是从源到目的地的 Eth 的初始销毁和铸造。至关重要的是,Eth 必须在源链上实际销毁,然后再在目标链上铸造,否则可能会出现双重支付。

    但是,要在一个区块中执行这个完整的捆绑包,所有交易都必须存在于该区块中,即使交易代表在区块本身之前无效的状态(例如,如果用户在区块之前没有任何 Eth,则在交换的目标链上有 Eth)。因此,我们必须相信排序器确实在跨汇总捆绑包中包含了有效的依赖关系。事后可以提交证明来证明每笔交易的有效性。

    然而,当使用包装资产时,这一点就不那么重要了,因为它们对存储在 L1 中的本机流动性没有影响,但仍然必须有回退机制来抵消恶意排序器或代码中的错误的风险,这些错误允许交易捆绑包与被还原的依赖交易一起执行。

    对利益相关者的影响:

    1. 用户
      对用户体验进行了大规模升级,允许在单个区块中进行跨汇总限价订单

    2. 开发人员
      需要对跨 Rollup 活动有跨 Rollup 意识,可能要利用自定义预编译。开发人员必须从 Bundle 的角度来思考,而不仅仅是交易,但超级构建器和自定义 Rollup 基础设施可能会消除大多数开发人员的复杂性。

    3. MEV 搜索者
      MEV 搜索者在跨汇总捆绑包上使用 L1 策略的机会基本相同,但这取决于 PBS(提议者-构建者分离)的实施方式。
      → 跨汇总捆绑包本质上被视为单个交易,因此可以通过抢先交易或夹持这些捆绑包来找到 MEV,只要它们不会使价格超出可容忍的滑点金额(因为这样整个捆绑包就会恢复,MEV 尝试就会失败)

    4. Rollups
      需要选择加入共享排序基础设施(包括超级建造者),并在共享结算层的情况下允许访问共享排序器中的 Eth 销毁/铸造。
      → 可以通过向建造者出售区块空间来内部化 MEV

    6. 交易级别的可组合性

    所需基础设施:

    VM 级别变更 // 共享结算 // 超级建造者

    交易级可组合性是指一个 EVM 链上的智能合约所共享的相同级别的功能。在这种情况下,单个交易可以同时更新多个 rollup 的状态,并确保如果调用未成功返回,则可以还原任何调用之前的任何状态更改。实际上,区块级可组合环境中的原子交易包可以在单个跨 rollup 和跨 VM 交易中完成。除了共享结算层和超级构建器之外,这还需要对所有连接的 rollup 进行 VM 级更改。

    我们在此从高层次描述了一种可能的机制。(据我们所知,此构造归功于 Espresso 团队)。首先,用户向所有状态被交易改变的 rollup 或可以在所有相关 rollup 上构建区块的超级构建者提交跨 rollup 交易。超级构建者模拟交易并形成输入输出对列表,每个相关 rollup 一个,该列表指定交易中必要和预期的跨 rollup 消息。(请注意,超级构建者只有在一段时间内对所有相关 rollup 拥有安全排序权时才能这样做)。然后,超级构建者将模拟的区块连同每个跨 rollup 交易的预期输入输出对列表一起发送给每个 rollup 的提议者。在执行期间,每个 rollup 都会正常执行自己的状态转换函数,假设来自跨 rollup 交易列表的输入是正确的。在结算期间,输入输出列表可以在共享结算层的证明聚合阶段进行交叉比较并证明是安全的。具体来说,如果跨 Rollup 交易的任何预期输入与另一个 Rollup 指定的输出不匹配,则结算过程将拒绝整个跨 Rollup 交易。

    尽管除了闪电贷之外,交易级可组合性所能解锁的新功能有限,但开发人员创建跨 Rollup 应用程序的体验可以得到极大改善。能够创建与所有连接链交互的 dapp,而无需考虑跨 Rollup 捆绑包,这将使在多 Rollup 环境中进行创新变得容易得多。此外,还可能出现新的用例和行为。

    交易级可组合性方面有许多未解决的设计问题。首先,需要仔细考虑开发人员如何选择加入或退出其智能合约的跨 Rollup 调用。允许任意可组合性而不受限制意味着我们回归到单一的 Rollup。我们认为这里的答案是让开发人员明确指出其合约中哪些地方需要跨 Rollup 可组合性,例如通过 Solidity 修饰符(如“可组合”)将合约的某些入口点标记为可调用的跨 Rollup。

    对利益相关者的影响

    1. 用户:
      与区块级可组合性含义相同,并具有诸如闪电贷之类的其他高级功能
      → UX 与选择加入的 dapp 使用一条链几乎相同

    2. 开发人员:由于 dapp 开发人员可以本地调用合约交叉汇总并使用这些调用的输出(如单汇总调用),因此
      开发人员体验得到极大
      改善→ Superbuilder/Sequencer infra 仍然必须将交易放置在受交叉汇总调用影响的汇总的块中,但不必像块级可组合性那样构建相同的捆绑包。

    3. MEV 搜索者:
      跨 rollup 捆绑包现在基本上相当于一条链上的单笔交易,因此 MEV 潜力很高

    4. Rollups:
      需要虚拟机级别的更改,以及选择共享排序器和共享结算层
      →在能够通过证明验证状态之前,必须信任其他 rollups 的输入和输出,这涉及额外的信任假设,但削减机制可以减轻信任负担

    摘要和生态系统图

    在了解了这里定义的每个互操作性级别的技术细节之后,我们可以总结一下:

    1. 共享结算允许跨 rollup 交换而无需外部包装资产,并在所有连接的 rollup 之间创建协议内消息传递路径

    2. 共享排序/ Superbuilders允许在跨 rollup 捆绑包上提供下一个区块执行保证

    3. 区块级可组合性允许创建复杂、快速、相互依赖的跨 Rollup 捆绑包,从而实现近乎智能合约到智能合约级别的可组合生态系统。
      → 通过添加共享结算,无需使用外部包装资产即可创建这些跨 Rollup 捆绑包

    4. 交易级可组合性是可能的,虽然新开辟的用例可能针对更复杂的用户,但它有可能极大地升级跨汇总开发体验。

    目前,有许多项目正在涌现,旨在创建这些原生可互操作的生态系统。以下是该领域的高层次概述:

    生态系统地图

    生态系统地图

    生态系统地图

    结束语

    关于本文所列出的框架中的技术细节,仍然存在一些悬而未决的问题。例如,在区块级可组合生态系统中为跨汇总限价订单构建捆绑包可能需要更详细的设计来处理部分履行和市场订单的滑点容忍度的情况。我们在这里提供了一种潜在的解决方案,如果订单未完全完成,则可以恢复跨汇总限价订单捆绑包,但设计空间是开放的。

    此外,值得一提的是,这与目前应用链领域日益增长的思想共享有关。应用链是长尾 L2,要么是通用的,要么是经过许可的,目的是将特定的相关协议孤立在一个 L2 上。当我们达到块级可组合性时,我们很可能也会开始看到应用链环境因所有连接网络之间具有本机可组合性而获得显著的吸引力。

    目前,为这些应用链引入流动性仍然很困难,但一旦更大的链作为可互操作环境的入口连接起来,我们很可能会看到围绕共享基础设施的围墙花园生态系统。

    另一个重要的悬而未决的问题是超级建造者周围的设计空间将如何解决。这方面的发展仍处于起步阶段,目前尚不清楚如何以最有效的方式创建一个可以创建跨汇总包的复杂建造者网络。这些跨汇总包将以最佳方式包含在区块中,以及对汇总收入的影响是一个悬而未决的问题,许多团队正在探索不同的策略。

    最终,未来可能会涉及协议内和协议外桥接解决方案的组合,它们将协同工作,为每个人提供更好的互操作性流程。我们相信,本文中定义的进展可以作为开发人员和构建者的指南,他们专注于为最终用户提供更无缝的跨 Rollup 互操作性。

    jinse.cn 0
    好文章,需要你的鼓励
    jinse.cn 0
    好文章,需要你的鼓励
    参与评论
    0/140
    提交评论
    文章作者: / 责任编辑:

    声明:本文由入驻金色财经的作者撰写,观点仅代表作者本人,绝不代表金色财经赞同其观点或证实其描述。

    提示:投资有风险,入市须谨慎。本资讯不作为投资理财建议。

    金色财经 > 金色精选 > Rollups 之间的无信任互操作性:概况、构建和挑战
    • 寻求报道
    • 金色财经中国版App下载
      金色财经APP
      iOS & Android
    • 加入社群
      Telegram
    • 意见反馈
    • 返回顶部
    • 返回底部