Optimism、Arbitrum与Metis的Layer2方案解析
原文标题:《The Optimistic Layer 2 Wars》
原文来源:编译实验室 TranspilerLab.DAC
原文作者:Alfonso de la Rocha
原文编译:Perry Wang
https://image.theblockbeats.com/upload/2021-06-15/92563ade7555afda395ea314ce2b4da086a924fe.png
今年上半年,加密货币市场的新一轮牛市、NFT 热度的攀升伴随 DeFi 热潮的继续发酵和 DeFi 乐高的不断堆叠,让以太坊价格不断走高的同时,网络使用量也连创新高。不过这也给以太坊生态系统中的 DApp 开发者带来了许多「不太愉快」的后果,不堪重负的网络导致 Gas 成本高企。正因如此,二层(L2)扩容解决方案一夜之间从「可以有」的功能转变为「最紧迫的需求」,以在性能和成本方面保障 DApp 能够持续运行。
幸运的是,我们已经有几个稳定的 L2 平台和协议能帮我们完成这个任务。构建 L2 解决方案的基础结构之一是 Optimistic Rollup。许多项目都是建立在这种技术之上,但是如何选择最能满足我们需求的、基于 Optimistic Rollup 的 L2 解决方案?本文试图回答这个问题,对基于 Optimistic Rollups 的三个有前途的 L2 解决方案进行了比较。我们马上切入正题!
什么是 Optimistic Rollup?
为了能够比较基于 Rollup 的不同 L2 解决方案,我们首先需要简单介绍一下什么是 Optimistic Rollup。Rollup 是将侧链或链外交易捆绑(或「Rollup」)到单个交易中,然后提交到第一层(L1)的解决方案。为了保护所有这些捆绑交易,并使它们可逐一单独验证,捆绑中会生成加密证明。
Rollup 能收到成效的一个要求是拥有某种与以太坊兼容的独立区块链,节点数量减少或具有高性能的附加功能,负责处理签名验证、合约执行等。交易随后被捆绑提交到以太坊主链中,而独立区块链能够验证这些交易的有效性。L2 Rollup 侧链负责验证和合约执行,而 L1 专门存储不可变的交易数据。
在 Optimistic Rollup 解决方案中,参与者对侧链中所正在执行交易的有效性持「乐观态度」。聚合器将侧链交易提交到主链中不需要额外的计算。我们如何确定侧链交易实际上是有效的?Optimistic Rollup 使用欺诈证明来确保所有交易都是合法的。如果有人注意到来自聚合器的欺诈交易,则可以通过发送欺诈证明来运行交易计算并验证其有效性,来挑战这一 Rollup。这意味着,不像在 ZK-Rollup 等其他 Rollup 解决方案中那样对每笔交易执行验证,我们只在怀疑交易是欺诈时才执行证明计算。与 ZK-Rollup 解决方案相比,这显著降低了 Gas 成本,并为在交易吞吐量上实现 10 倍 乃至 100 倍的飞跃打开了大门。欺诈证明被证实后确定无效区块,L2 中的链可以回滚并恢复到上一个不含欺诈的区块。
相关解决方案的对比介绍
在对 Rollup 进行简要介绍之后,我们拥有了对 L2 解决方案进行比较所需的所有基础。为了进行比较,我选择了 L2 解决方案中的三个,在我看来,它们为 DApp 开发者提供了一套更有趣的功能(我个人会考虑部署在自己应用中的功能)。
它们都(或多或少)共享相同的模块:一个兼容以太坊的虚拟机(VM),用于在 L2 中运行用户的 Solidity 合约; 排序器 / 聚合器负责对来自 L2 的交易集合进行批处理,然后在 L1 上提交; 一组 L1 智能合约,用于编排交互并提交来自 L2 的数据;对等交易方可以使用各种不同的欺诈证明,以驳斥聚合器提交的无效或伪造交易;并使用质押来协调 L2 系统的激励和经济活动。
尽管共享相同的模块,但这三种解决方案在实现 Rollup 协议的方式上却大不相同。让我们逐一详细考察,以加快我们的比较速度。
Optimism:
Optimism 利用以太坊生态系统中的所有现有工具,并对其进行修改以实施他们的 Optimistic 协议和 L2 解决方案。
VM: 他们的 L2 VM 是 Optimism VM (OVM),是对以太坊 VM (EVM) 的修改变体,用适合 L2 合约执行的新操作码替换了与情景相关的 EVM 操作码。VM 充当沙盒环境,保证确定性智能合约的执行,以及 L1 和 L2 之间的状态转换。
客户端:Optimism 还修改了广泛使用的以太坊客户端 Geth,因此它可以用作 L2 链的客户端。这一客户端修改消息,以便其他 L2 客户端能理解它们,并且它包括了为构建 Rollup 而对交易进行排序和批处理所需的所有流程。
Rollup 构建:对其 Rollup 构建而言,Optimism 使用 Geth 客户端作为单一排序器。在 Optimism 中,交易数据被压缩,然后发送到 L2 上的 Sequencer Entrypoint 合约。排序器负责「Rollup」这些「批处理」这些交易并将数据发布到以太坊上,提供数据可用性,这种情况下即使排序器消失,也可以启动新的排序器以从中断的地方继续。任何人都可以向 L1 发送新交易,且这些交易被添加到 L1 合约中,L1 合约作为每个 L2 交易「只进行追加操作的日志」。
验证:对于排序器发布的每笔交易,验证者负责下载该交易并将其应用于其本地状态。如果一切都匹配,验证者什么都不做,但如果不匹配,验证者需要在链上提交所有有效的之前交易,并重新执行任何已发布的状态根,以表明已发布的状态根实际上是错误的。如果欺诈验证成功,则从 L1 中消除错误的状态和批处理。
经济模型:每个时间段 epoc 的批次排序器需要被称为债券管理器的智能合约标记为已有抵押。要成为已有抵押的排序器,需要在合约中质押固定数量的 ETH。排序器每次被检测到存在欺诈行为时,其质押资产就会被削减。排序器所质押资产可以在存入 7 天后收回,该排序器的批处理从这一刻起宣告停止,不再可能进行验证工作,因为已不可能对其进行资产削减。如果欺诈被成功证明,提议者一定百分比 (X%) 的保证金将被销毁,剩余的 (1-X)% 将按比例分配给为欺诈证明提供数据的每个用户。这种经济模型可以防止排序器的流氓行为,但没有解决可能出现的下面一种情况:验证者向 L1 链尝试发送大量不同批次的大量欺诈证明(强制带来大量的 L1 计算)。
Arbitrum:
VM 和客户端: Arbitrum 实施了 Arbitrum 虚拟机(AVM)。AVM 负责运行 L2 合约并保存其状态。VM 的状态被组织成一个 Merkle 树,并在此 Merkle 树上生成的状态转换中执行。Arbitrum 还实现了自己定制的 L2 客户端。
Rollup 构建:Arbitrum 使用单个链上合约来编排其 Rollup 协议。在协议中的任何一点,都有一些 VM 完全确认和最终的状态,例如,它的哈希值存储在链上。L2 中的新交易会触发存储链中每个状态的 Merkle 树的状态更新。要验证存储的状态,协议的参与者可以提出在 Arbitrum 中所称的有争议断言 (DA),来证明从某个状态哈希开始,VM 能够执行指定数量的计算步骤,从而产生指定的新哈希状态(及其相应的合约执行、付款和事件发射)。DA 可能最终有效(即计算成功)或无效。如果 DA 有效,系统将进入一个新状态,在树中将会有新的状态哈希,以及在 DA 中指定的相应副作用(付款和日志)。如果 DA 无效,则该分支被拒绝,状态保持不变。每个状态最多可以有一个 DA 跟随它。如果一个 DA 没有跟随状态,那么任何人都可以创建一个跟随它的 DA,创建一个新的分支点。结果将是一棵融汇未来可能性的树。因此我们可以看到,虽然 Optimism 使用多个 L1 智能合约在 L2 提交状态和执行,但 Arbitrum Rollup 的 L1 构建是基于 L1 中状态根历史记录的存储,后者确认了 L2 链的状态。
经济模型:质押在 Arbitrum 的 Rollup 中起着关键作用。任何人都可以对其中一颗状态树投入质押。通过对一个状态质押(图中的方块),您可以断言该状态最终会被协议确认。换句话说,您是在断言从当前状态到你所质押的方块的路径上每个 DA 上都采纳了正确的分支。如果您错了,您的质押将被削减。您可以向右移动您的质押,选择向上或向下的分支,但您不能向左移动,因为这相当于取消您之前做出的质押承诺; 或可以同时对两个平行分支质押。在错误分支上质押的参与者,其质押资产将在被接受分支上质押的参与者之间分配。协议的构建确保最终所有独立的历史(分支)将汇聚到一个最终解决所有争议的 DA。
验证: 一旦 DA 的质押期限已过,且所有及时(在质押截止期限之前投入的)质押都在该 DA 的同一分支上,系统可以确认该 DA 的结果。DA 要么被接受,要么被拒绝,当前状态移动到 DA 右侧的适当方块。如果 DA 被确认为有效,其副作用(例如付款)将在链上实现。这就是 VM 状态向前移动的方式。该协议是完全无需信任的,因为任何参与者都有权通过在认为正确的分支上来验证 VM 的状态。
Metis:
VM 和客户端:Metis 使用与 EVM 兼容的虚拟机 Metis VM (MVM)。MVM 在功能和特性方面与上述项目中的所有 VM 有很大不同。在 MVM 中,L2 的计算和存储是完全脱钩的。Metis 引入了去中心化自治公司 (DAC) 的概念。DAC 是系统中的独立实体,可以代表例如通过平台执行许多日常操作的大型企业。DAC 是 Metis 运营的关键。当系统中实例化一个新的 DAC 时,会专门为 DAC 创建一个新的存储层。因此,考虑到链交互,DAC 拥有自己的存储空间。
Metis 的 L2 计算层(即区块挖矿、共识、跨层通信等),另一方面,由网络中的所有 DAC 共享,但它包含一个有趣的特性:所有计算进程被实现为单独的服务(遵循微服务方法)使得计算层根据整个网络的需求和吞吐量进行扩容和缩容。此外,MVM 引入了供应商的角色,他们可以注册并贡献计算能力,使 L2 构建真正去中心化(这些供应商可以看作是 Optimism 平台的排序器)。提供商将根据产生的区块获得激励。最后,MVM 和 Metis 客户端中包含的一个真正强大的功能是其他 L2 平台所不具备的,它不仅支持合约执行,还支持与智能合约计算相关的去中心化存储。因此,Metis 通过 MVM 中的 IPFS 解析器与 IPFS 网络集成,该解析器允许合约指向存储在 IPFS 中的不可变数据。例如,这可用于指向存储在 IPFS 网络中的机密数据。
Rollup 构建: 在 Metis 中,L2 交易的排序和批处理不是由单个排序器完成,而是由一个排序器池完成。将随机选择一组排序器来 Rollup 状态根并将交易提交到 L1 公链。在 L1,Metis 部署了一组合约来协调 L2 到 L1 的批处理提交。
经济模型:每个排序器需要质押一定数量的 Metis 代币才能获得资格。Metis 生态系统具有强大的真实经济联系,交易价值可能达到数十亿美元,这一事实需要使用动态债券阈值 (DBT),以便将恶意行为的风险和回报与参与交易的 DAC 所管理的真实经济价值联系起来。DBT 是使用分配给排序器的 DAC 的最大经济容量作为基础来计算的。DAC 的经济能力是根据其总余额计算的。因此,如果特定排序器中质押的 Metis 代币 (MT) 数量低于分配给它的 DAC 的 DBT,它将无法为该 DAC 进行批量交易。DAC 的排序会被阻止,直到在排序器池中找到符合条件的排序器。DAC 余额的新存款或取款会触发其 DBT 的自动更新。因此,DAC 余额的新提款将会导致排序器所需的 DBT 减少,反之亦然。这确保了所需的排序器中抵押品始终遵循 DAC 的实际经济价值。
验证:出于验证目的,Metis 平台在其 MVM 中引入了 L2 Rangers 的概念。L2 Rangers 是一个特殊 DAC 的成员,负责对一系列区块进行采样,并根据随机 DAC 定期分配的交易来验证状态根。Rangers 不仅验证其他 DAC 的顺序转换,而且对自己的 DAC 进行验证(他们监视自己)。Ranger 完成的每一次验证都会获得一些 Metis 代币 (MT) 的奖励。对链状态的成功挑战(例如欺诈证明),会让验证者从「恶意」排序器被罚没的 bond 中分得一部分。另一方面,失败的挑战将导致 Ranger 验证器失去自己的 bond,并最终无法访问 MVM_RANGERS。
这种排序器和验证者都需要抵押的验证方法,解决了我们在 Optimism 平台验证过程中所发现的关键问题之一,即验证者如果生成虚假欺诈证明,由于验证者没有质押资产,他们不会受到惩罚。抵押排序器和验证者(例如 L2 Rangers)的良好协调也缩短了验证窗口期以提高网络效率。诸如 Optimism 提出的协议,交易在验证窗口过去之前不能被确立最终性,并且验证者有足够的时间发送所有证明。这是验证者没有抵押的直接后果。尽管检测无效状态更新存在激励,但作为验证者,不当行为并没有受到严重惩罚。因此,为了防止潜在的不当行为,最终性窗口被增加到「让每个人都可以发言」。在 Metis 中这是不需要的,因为验证者是有抵押的,他们一方的不当行为会导致资金损失。验证者和排序器都会感受到「切肤之痛」,这可以缩短最终性确立窗口,这就是 Metis 能够在数小时内验证交易,而不像 Optimism 等其他协议需要 7 天的原因。
https://image.theblockbeats.com/upload/2021-06-15/bc8aad38ab26fc8a6aaa6c30a4ccfe954fad27d9.png
让我们将所有竞争者并排进行比较,有个总体了解:
https://image.theblockbeats.com/upload/2021-06-15/86f003af4708f7ff1cee10597367c78751308b97.png
L2 解决方案比较 (Alfonso de la Rocha 制作)
如表中所示(以及我们上面的解释中所述),这三个平台非常适合将您的 DApp 由以太坊主网作为 L1 支持的高性能 L2 解决方案中。具体决策可能取决于您的 DApp 的性能、扩容性、灵活性和功能要求。在我们所描述的三个平台中中,Metis 是功能最丰富的一个:它默认支持去中心化存储,并包括额外的性能和安全机制。存储的脱钩、DAC 的使用,以及动态 DBT 方案,使其非常适合公司(无论规模大小)。
Optimism 对于以太坊至上主义者来说是一个很好的选择,因为它使用了以太坊生态系统中的所有工具(不需要新概念)。最后,Arbitrum 对状态历史验证的无需许可质押,使其成为一个真正有效和有趣的提议方案,能带来比标准 Rollup 架构更快的验证时间,因此可以防止延迟攻击(尽管由于它使用的扁平架构,仍然比 Metis 慢一点)。
总而言之,没有唯一的正确答案,只有稳定的 Optimistic L2 平台可供具体选择。我希望这篇比较文章可以帮助您对 L2 解决方案做出更明智的决定,以选择是计划部署新的 DApp,还是从 L1 迁移到 L2。
原文链接