1. 首页 > 产业新闻 > 人工智能

万字全解 Rollup 排序器的去中心化道路

 

让我们考虑 ZK 证明者市场的两个简单模型:

 

富有竞争的市场

一个无需许可的市场中,证明者都争先恐后地为 Rollup 排序器 / 共识产生的区块创建证明。第一个创建证明的人可以获得为证明者指定的任何奖励。该模型可以高效地找到最适合该工作的证明者。

这看起来非常类似于 PoW 挖掘。然而,这里有一个独特的区别:证明是确定性计算。结果是,与其他证明者相比具有小但一致优势的证明者几乎总能获胜。那么这个市场就很容易出现中心化。  

在 PoW 挖矿中,随机性方面有更好的结果——如果我有 1% 的挖矿算力,我应该得到 1% 的奖励。 

这种竞争性证明模型在计算冗余方面也是次优的——许多证明者将竞争并花费资源来创建证明,但只有一个人会获胜(类似于 PoW 挖矿)。

 

基于回合制的证明

证明者之间可以采取轮换的方式创建证明(例如,根据质押的代币或声誉)。这种方式可能更加去中心化,但在证明延迟方面效率较低(在一个证明者能够更快更有效地创建证明的情况下,另一个「慢」证明者也有机会创建证明)。但是,它可以防止在只有一个证明者能够创建证明时浪费计算资源。 

此外,如果证明人的回合内未能提供证明(无论是恶意的还是无意的),网络就会遇到问题。如果这些回合很长(例如,给定的证明者获得几个小时的垄断权)并且证明者宕机,协议将很难恢复。如果转换证明者的时间很短,其他证明者则可以介入。 

也可以允许任何人发布证明,但只有指定的证明者才能在给定时间内获得奖励。因此,如果当前证明者失败了,另一个证明者可以发布证明,但他们无法获得奖励。这是一种无私行为,花费资源进行计算而没有任何回报。

Scroll 正在探索更多基于回合制的方法,将执行分配给随机选择的「rollers」(证明者):

 

Scroll 工作流程

 

还有很多有趣的问题,比如在排序时用户层面的证明应该如何收费。可以在此处找到关于这些主题的更多讨论:

 

  • Scroll 的 Ye Zhang 在《去中心化 ZK Rollup》一文中讨论了这种基于抵押 + 排序 MEVA 的回合制网络的可能性 
  • 《Scroll 架构概述》提供了 roller 模型的更多详细信息
  • Starknet Decentralized Protocol IV - Proofs in the Protocol
  • Starknet Decentralized Protocol VI - The Buffer Problem


共享排序

大多数早期的解决方案都假定每个 Rollup 都需要自己弄清楚如何去中心化他们的排序器。正如我们在 L1 排序方案中看到的那样,但事实并非如此。许多 Rollup 可以选择一个共享排序器 (SS)。这样做的好处是:

 

  • 省力:无需再担心序器的去中心化问题,无需招募和管理验证者。这是一种非常「模块化」的方法——将交易排序剥离。SS 从字面上看是一家 SaaS 公司(排序器即服务)。
  • 结合安全和去中心化:让一个排序层建立强大的经济安全(更强的预确认)和实时 CR,而不是为每个单独的 Rollup 创建多个小型委员会。
  • 快速交易:其他单个 Rollup 排序器也可以做到这一点,但请注意,你仍然可以在这里获得那些超快的预确认。  
  • 跨链原子性——在链 A 和链 B 上同时执行交易。(这个很复杂,所以我稍后会更深入讲解)。 

 

如前所述,简单地使用原生 L1 作为 L2 的排序器从根本上有几个缺点: 

  • 仍然受限于 L1 的数据和交易排序吞吐量
  • 失去为 L2 用户提供低于 L1 区块时间的快速交易的能力

 

L1 排序可以做的最好的事情是消除 L1 的计算瓶颈(如果交易执行是吞吐量的瓶颈)并实现通信复杂性的改进。

那么,我们能否设计专门且更高效的 SS,而不是让 L1 来做……

 

Metro - Astria 的共享排序器

Metro 是 SS 层的一个方案。你可以参考 Evan Forbes 的研究帖子、Modular Insights talk 和 Shared Security Summit talk 了解更多详情。由 Josh Bowen 领导的 Astria 团队正在致力于实现 Metro 方案。

 

执行与排序分离

当前的 Rollup 节点实际上处理三件事:

 

 

这里的关键是执行和排序的分离。而共享排序可以做到:

  • 为许多选择将其作为排序层的链排序交易
  • 不执行(或证明)这些交易和生成结果状态

 

排序是无状态的。SS 节点不再需要存储所有不同 Rollup 的完整状态,他们删除了执行计算,传统排序器面临的巨大瓶颈在这里消失了。 

当从共识中剥离执行时,效率会变得非常高。如果节点所要做的只是生成有序的交易块并就该块达成一致而不执行所有事情,那么它们的效率会非常高。执行和证明可以在事后由不同的各方完成。

 

 

 

兼具排序器安全和去中心化

SS 节点可以保持相对轻量级,甚至可以水平扩展(通过选择共识节点的随机子集来对不同的交易子集进行排序)。排序层比传统排序器更加去中心化,传统的排序器需要掌握链的复杂状态并负责执行。 

此外,通过跨多个链汇集资源,无需在多个 Rollup 中分割 PoS 共识,而是将它们全部聚合在一个地方。与许多实现自己的排序器集的 Rollup 相比,这种方案可能会产生更去中心化的排序器集,且不需要大量的质押资产。这很重要,因为: 

 

  • 排序:为 Rollup 用户提供实时抗审查(CR)和活性的第一道线。 
  • 执行和证明:可以在没有强烈的去中心化需求的情况下在事后完成。

 

一旦同意交易排序,执行(和证明)可以在事后推迟到一个完全不同的链:

  1. 软共识和排序:共享排序器为用户提供快速预确认
  2. 共识 & 数据可用性:交易数据已在 DA 层最终确定,供所有人查看
  3. 惰性执行和证明:任何人都可以在事后执行和证明交易

 

后续的执行层不需要去中心化,因为这不是 CR 的来源。单排序器不是 CR 的理想选择,但这并不是因为它们作为执行者的角色,而是因为他们排序并包括交易。在这里,SS 已经提供了有序的交易输入,因此也就是 CR。之后对状态承诺的计算和比较就不需要去中心化了。 

软执行

用户喜欢快速的软执行: 

 

 

这需要某种形式的共识(或中心化排序器)来提供出色的用户体验:

如果你只是依赖像 Celestia 这样的基础层的共识,就不能提供这些围绕排序和包容性的软性承诺。如果 SS 有一个具质押了高价值资产的去中心化委员会,它可以在快速区块(低于 L1 区块时间)上提供相当强大的承诺。   

因此,只要 SS 创建一个区块,用户就可以得到软确认。这种确认的强度取决于 SS 的构建(权力下放、经济安全、分叉选择规则等)。一旦数据实际发布到基础层,你就可以将这些交易视为真正的最终交易。然后可以生成并提交状态根和相关证明的最终计算。 

 

Lazy Rollup

「Lazy Rollup」非常简单。他们等到交易全部被排序并发布到 DA 层,然后他们下载这些交易,可选地应用分叉选择规则来选择交易的子集,执行交易处理,并确定交易状态。然后可以生成区块头。 

 

 

请注意,由于 SS 无法以需要访问完整状态的方式生成区块,因此它们不会检查无效的状态转换。因此,使用 SS 的「Lazy Rollup」状态机必须能够处理无效交易。当节点执行有序交易以计算结果状态时,节点可以简单地删除无效 / 恢复交易。立即执行的传统 Rollup 没有此限制。 

在将交易包含在链上之前需要状态访问才能处理交易的 Rollup 在这里行不通。例如,如果 Rollup 有一个区块有效性规则,区块包含的所有交易都是不会失败的有效交易。如果 Rollup 需要交易锻而不是状态访问,那么可以专门为这种类型的 Rollup 创建一个特殊的 SS(例如,类似于 Fuel v2 或带有私有内存池的 Rollup)。

 

支付 Gas

为了让 SS 运行,必须有某种机制让用户为他们的交易付费。你可以简单地使用大多数 Rollup 交易类型中已经包含的现有签名和地址来支付 SS 层上的 Gas。或者,付款可能涉及 SS 上的一些包装交易,任何人都可以为包含的任意数据付费。这是一个开放的设计空间。 

 

分叉选择规则

Rollup 能够继承他们正在使用的 SS 的分叉选择规则。然后,Rollup 的全节点实际上是 SS 的轻客户端,检查一些提交以指示哪个 Rollup 区块在指定高度是正确的。  

但是,继承 SS 的分叉选择规则是可选的——你可以简单地要求 Rollup 处理(不一定执行)它发布到基础层的所有事务数据。它会有效地继承基础层的 CR 和活性,但是你会牺牲很多用户喜欢的 SS 特性。


MEV

假设一个 Rollup 想要继承其 SS 的分叉选择规则并获得快速的软执行,SS 自然会在 MEV 方面处于非常核心的位置。它决定 Rollup 的交易包含和排序。

然而,Rollup 不一定必须执行 SS 提供的交易,或者按照提供的顺序执行交易。你可以在技术上允许自己的 Rollup 进行第二轮处理,以在执行后重新排序 SS 发布的交易。但是,如上所述,这会失去使用 SS 的大部分优点。 

即使在这种情况下,SS 层也可能仍然存在 MEV,因为它有权包含交易。如果你真的想要,你甚至可以允许你的 Rollup 在第二轮处理中排除某些交易,但这会变得混乱,减少 CR,并且失去大部分 SS 的好处。 

 

换出共享排序器

区块链中难以分叉的是任何形式的有价值的共享状态。看看 ETH 与 ETC 或类似的 ETH 与 ETH POW ,社会共识决定了「真正的以太坊」是什么。我们都同意的「真实」状态是有价值的。

然而,SS 实际上只是一个服务提供者——它们没有与之关联的有价值的状态。使用给定 SS 的 Rollup 保留了分叉它的能力,以支持一些其他排序机制,只需要一个小的硬分叉(例如,如果 SS 提取了太多价值)。

更具挑战性的是网络效应。如果许多 Rollups 都开始使用 SS 并且它们获得了巨大的网络效应,那么分离可能会很痛苦,除非其他 Rollups 也愿意迁移。

Espresso 排序器 (ESQ):由 EigenLayer 保障

EigenLayer 白皮书提到去中心化 SS 是重新质押的潜在用例之一。这个 SS 可以由 ETH 重新质押保护,它将处理许多不同 L2 的交易排序。 

 

Well Espresso 刚刚在他们的共享排序器计划中公布了这一点。它可以利用 EigenLayer 重新质押来确保其共识。为了提供一个漂亮的可视化效果,今天 Rollup 是这个样子的:

 

 

这就是他们使用 Espresso 等 SS 时的样子:

 

 

Espresso 排序器 (ESQ) 总体上与 Metro 的思路非常相似。它们按照相同的核心原则工作——将交易执行从排序中剥离出来。除此之外,ESQ 还将为交易提供数据可用性。

HotShot 共识和 Espresso DA(数据可用性)

作为背景,以太坊目前使用 Gasper 达成共识(Casper FFG 作为最终工具 + LMD GHOST 作为其分叉选择规则)。这里相关的 TLDR 是 Gasper 即使在大多数节点可能掉线的条件下也能保持活跃(动态可用性)。它有效地运行两个协议(Casper FFG 和 LMD Ghost),共同维护一个带有最终前缀的动态可用链。Gasper 在快速确定性上进行权衡。

总体而言,ESQ 包括:

 

  • HotShot:ESQ 建立在 HotShot 共识协议之上,与 Gasper 不同,该协议将快速最终性优先于动态可用性。它还可以扩展以支持更多验证器,就像以太坊所做的那样。 
  • Espresso DA:ESQ 还将为选择加入的链提供 DA。该机制还用于扩大他们的普遍共识。
  • 排序器合约:作为轻客户端验证 HotShot 共识并记录检查点的智能合约。此外,它还管理 ESQ 的 HotShot PoS 共识的质押者。
  • 网络层:在参与 HotShot 的节点和 Espresso DA 之间实现交易和共识消息的通信
  • Rollup REST API - L2 Rollup 用于与 Espresso 排序器集成的 API。

 

再仔细看看 DA。在乐观情况下,高带宽节点将使数据对所有其他节点可用,并且每个单独区块的可用性也由随机选出的小型委员会提供支持。鉴于小型委员会面临 DDoS 和贿赂攻击的风险,只要有足够比例的节点不妥协,可验证信息传播 ( VID) 就可以提供可靠(但较慢)的备份路径来保证 DA。

这个系统是为扩展性而构建的,因此 ESQ 希望为 L2 提供更便宜的 DA。他们仍然会将他们的证明和状态更新结算到 L1 以太坊,但请注意,这将使默认情况下使用 ESQ 的链不再是完整的「Rollups」(以太坊 L1 不保证他们的 DA )。它比数据可用性委员会 (DAC) 的简单实现更强大,但它的保证比真正的 Rollup 更弱。 

交易流程

 

  • 排序器合约 :HotShot 直接与其 L1 排序器合约交互。它验证了 HotShot 共识,并为其他参与者提供了一个界面来查看已排序的区块。该合约存储了区块提交的附加日志,不是完整的区块,任何人都可以根据提交的信息验证区块。
     3/5   首页 上一页 1 2 3 4 5 下一页 尾页

    本文采摘于网络,不代表本站立场,转载联系作者并注明出处:http://www.longfuchaju.com//chanye/rgzn/6599.html

联系我们

在线咨询:点击这里给我发消息

微信号:wx123456