本文探讨了 Rollup 从中心化排序器逐步过渡到基于 L1 验证者集的去中心化排序的方法,提出了一个分阶段实施的方案,首先在中心化排序的基础上叠加预确认机制,然后逐步引入更多的网关(Gateways)参与排序,最终实现完全无需许可的排序。该方案旨在提高 Rollup 的性能、弹性和与以太坊 L1 的对齐,同时降低迁移风险。
_由 Lorenzo 和来自 Gattaca 的 Kubi 共同撰写。特别感谢 Justin, Drew, Jason, Ladi, Connor, Liam, Sam B, Matthew, Lin, Brecht, Can, Thanh, Kevin 和 Sam J 提供的反馈和建议。反馈不一定代表认可。_
前提: 本文假设读者熟悉以下概念:Based Rollup、预确认 和 PBS
本文为当前大规模运营中心化排序器的 Rollup 提供了一个逐步过渡到基于 Rollup 的实用路线图。
为了展示如何实现这种过渡,本文首先概述了基于排序的设计,然后解释了如何逐步采用该设计的各个部分来实现过渡。
虽然已经提出了几种利用 L1 提案者进行排序服务的方法,例如完全自由(完全无政府状态)和 vanilla based sequencing,但本文概述的设计建立在 L1 提案者将排序权委托给称为网关的专门第三方的方法之上。这个概念最初在“基于预确认”和“Vanilla Based Sequencing”中讨论过,旨在 避免验证者过载。
概述的设计还整合了围绕基于预确认的持续 标准化工作,并假设存在一个 开源的公共产品“边车”,可以实现选择性委托。它进一步利用现有的低延迟提案者-构建者分离(PBS)基础设施,以实现批量的高效 L1 包含和结算。总之,这些元素使 Rollup 能够立即采用基于排序,而无需 L1 协议级别的更改或硬分叉。
最后,一些机制的灵感来自与 Taiko、Puffer UniFi 、Rise、Spire 等团队的合作努力。
我们首先进行背景讨论,研究 Rollup 的现状以及中心化排序器带来的挑战。接下来,我们重点介绍基于排序的关键优势,概述了 Ethereum L1 提案者集如何在排序 Rollup 时提供更强的弹性、可组合性和经济安全性。
然后,我们定义术语,以确保在讨论我们提出的设计的关键角色和机制时清晰明了。之后,我们提出了使用委托的基于排序的设计,概述了技术细节和核心机制,这些细节和核心机制构成了逐步采用路线图的基础。
最后,在“成为基于”部分中,我们提供了一个三阶段路线图,展示了 Rollup 运营商如何逐步采用所提出设计的各个部分,以从中心化排序器模型过渡到完全无需许可的基于排序。在描述了潜在风险(包括中心化问题和 UX 差异)之后,我们以进一步考虑结束,确定了需要持续研究和改进的领域。
Rollup 的当前状态:
为什么基于排序可以改进 Rollup:
委托的重要性:
我们坚信,通过强大的机制设计,基于排序应成为 Rollup 的默认选择。它利用了 Ethereum 的经济安全性、可靠性和中立性。此外,在采用委托模型并促进专门网关之间竞争市场的基于排序设计中,Rollup 可以实现卓越的性能,使其能够满足用户期望的高吞吐量需求。
中心化排序 | 基于排序 | |
---|---|---|
性能 | ![]() |
![]() |
活跃性 | ![]() |
![]() |
经济安全性 | ![]() |
![]() |
实时审查阻力 | ![]() |
![]() |
可组合性 | ![]() |
![]() |
我们定义了三个确认级别:
注意: 即使在完成后,L1 区块仍可能会受到重组的影响,但是可以通过 链接预确认 来避免重组 L2 区块。
Lookahead(如下表所示)充当排序器的领导者时间表,将 L1 插槽号映射到领导者网关。这些网关充当排序器,具有在分配的插槽期间推进 L2 状态的独家权利。插槽分配由选择成为排序器的 L1 提案者确定,从而在各自的 L1 插槽持续时间内授予他们排序权。如果一个或多个插槽没有 L1 提案者选择加入,则这些插槽的排序权将分配给下一个可用的已选择加入的提案者。
网关 | L1 插槽 |
---|---|
网关 A | 100-102 |
网关 B | 103-105 |
网关 C | 106-108 |
还可以考虑建立网关时间表的替代方法。分配可以考虑诸如每个网关由 L1 提案者委托的比例质押等因素,以确保整个提案者集中公平的代表性。为了进一步促进去中心化并防止垄断,可以对单个网关允许排序的连续插槽数量设置硬性上限。
最后,收件箱合约通过仅接受来自每个插槽的指定网关领导者的事务批次来执行此时间表,如 Lookahead 中所定义。
网关和节点通过快速的、具有领导者意识的点对点 (p2p) Gossip 网络进行通信,该网络受到 Solana Turbine 区块传播的启发。该网络在维护高效可靠的通信方面发挥着关键作用,并且有两个主要目的:
用户可以将事务直接发送到当前网关领导者或任何节点,然后通过入站 Gossip 转发收到的事务。领导者对这些事务进行排序,并通过 p2p 网络通过出站 Gossip 分发生成的 Frags。重要的是要注意,这些 Frags 由网关领导者签名(提交到)。这种简化的区块构建过程允许节点立即开始重建当前区块,而不是像今天的 Ethereum 那样等待整个区块完成。
struct Frag {
// Block in which this frag will be included
// 将包含此 frag 的区块
block_number: u64,
// Index of this frag. Frags need to be applied sequentially by index
// 此 frag 的索引。Frags 需要按索引顺序应用
seq: u64,
// Whether this is the last frag in the sequence
// 这是否是序列中的最后一个 frag
is_last: bool,
// Ordered list of EIP-2718 encoded transactions
// EIP-2718 编码事务的有序列表
txs: Transactions,
}
当对等节点收到批次时,它们会乐观地构建本地 TempBlock
并向用户提供预确认(执行收据)。这是可能的,因为节点根据当前的 Lookahead 和 L1 上发布的最新 L2 区块号来验证批次,从而拒绝任何未由当前领导者签名的批次。
节点还会监控网关领导者的排序性能和响应能力。如果节点错过任何顺序批次,它可以从 p2p 网络中的其他节点请求丢失的数据。
新节点可以无需许可地加入网络,并通过直接从 L1 读取 Lookahead 数据来独立重建网关时间表。这确保了网络保持开放和透明,从而消除了对中心化 RPC 提供商发布预确认的依赖。为了支持钱包、索引器和其他服务等链下组件,节点还公开标准的 JSON-RPC API,从而实现与现有基础设施的无缝集成和兼容性。
frag 的大小和频率可以由 Rollup 运营商进行调整,从而平衡性能、硬件要求和吞吐量之间的权衡。在限制情况下,如果 frag 包含单个事务并连续流式传输,则直接连接到网关领导者的用户可以在短短几毫秒内收到执行预确认。之所以能够实现这种效率,是因为 L2 继承了 L1 的安全保证,从而无需额外的共识开销。
网关领导者定期广播区块封印,将一组 frag 合并到单个 L2 区块中,从而推进链顶。
struct Seal {
// How many frags for this block were in this sequence
// 此序列中此区块有多少 frag
total_frags: u64,
// Header fields
// 标头字段
block_number: u64,
gas_used: u64,
gas_limit: u64,
...
}
为了确保领导者之间的平稳过渡,当前网关还会广播 EndOfSequence
消息,向下一个网关和节点发出信号,表明排序权可以安全地转移。这种方法最大限度地缩短了没有排序器处于活跃状态的“死亡时间”,从而避免了在过渡期间不必要地依赖 L1 结算。
struct EndOfSequence {
// Last block sequenced
// 排序的最后一个区块
block_number: u64,
// Hash of last block
// 最后一个区块的哈希
block_hash: B256,
}
如果当前网关未能广播 EndOfSequence
消息,则下一个网关必须回退到等待 L1 结算,从而防止任何冲突的 L2 事务的风险。
即使链顶乐观地推进,每个网关也负责确保根据 Lookahead 中的时间表在 L1 上结算 L2 区块的批次。网关和提案者必须在注册合约中发布抵押品,并且在某些情况下会被削减,包括:
值得注意的是,如果他们所委托的网关被削减,提案者也可能面临削减处罚。这会在提案者和网关之间建立强大的激励一致性,从而加强提案者监控和仔细选择网关的责任。作为回报,提案者可以获得额外的收益,以补偿与委托相关的风险。
归属和削减的确切条件不在本文档的范围内,但仍然是进一步规范的重要领域。
网关的活性失败会导致临时的“停电”,在此期间用户无法结算事务,并且 Rollup 无法取得进展。单个中心化排序器的失败可能导致长达数小时的中断,但是具有多个排序器的基于 Rollup 可以在几个 L1 插槽内恢复。
在实践中,由故障网关引起的停电通常只会持续很短的时间,例如两个 L1 插槽。可以对有缺陷的网关处以削减其抵押品和减少其在未来 Lookahead 中的排序插槽的惩罚。例如,如果 GatewayA
是根据 Lookahead 在 Slot N
之前的当前领导者,但在插槽过后未能发布批次,则可以削减 GatewayA
并暂时将其排除在排序时间表之外。
此回退机制可确保即使在网关发生故障的情况下,系统仍保持弹性,从而最大限度地减少中断并激励所有网关实现可靠的性能。
注意: 活性失败可能源于网关或提案者,因此我们需要一种强大的方法来检测和惩罚这两种情况。如果提案者有过错,则执行问责制可能需要链下流程,这与真正最小化信任的方法相冲突。设计一种可以可靠地归因于提案者引起的活性失败并对其进行惩罚的机制仍然是一个开放的挑战。
将排序职责委托给第三方的功能允许不复杂的提案者(他们可能缺乏带宽或运行网关所需的技术专长)有效地参与。这种委托机制促进了更公平和包容的市场,同时对网关运营商提供了竞争压力,以提供更高质量的排序服务。
虽然在精神上与提案者-构建者分离 (PBS) 类似,其中验证者将区块构建委托给专门的第三方参与者,但基于排序可确保提案者保留对其委托的控制和监督。这是通过削减网关的安全故障和削减提案者的活性故障来实现的。如果活性故障不是由提案者引起的,则预计提案者将通过链下机制寻求网关的赔偿。
提案者充当“监督机构”,通过跟踪关键指标并激励可靠性和效率来监控网关的性能。这种激励一致性确保委托不会损害系统的安全性或稳健性。
Rollup 运营商保留对排序规则、Gas 费和 MEV 管理的完全控制权。网关必须按照 Rollup 的既定政策运行。最初,这是通过将参与限制在已许可的网关中来执行,直到有更强大的机制可用于完全无需许可的参与。
提案者获得一部分 Gas 费作为对其间接排序服务的补偿,并且反过来,根据其性能和可靠性,将这些 Gas 费的一部分分配给网关。这种安排创造了一个良性循环,激励网关提供高质量的服务,同时确保跨系统公平分配奖励。
提案者、网关和 Rollup 运营商之间的 Gas 费分配由 Rollup 运营商自行决定,从而可以灵活地与 Rollup 的经济和运营目标保持一致。
实现完全无需许可的基于排序是最终目标。但是,我们认识到从中心化排序器开始的 Rollup 可能会采用渐进的 3 阶段去中心化方法。此框架允许逐步过渡到基于排序,同时最大限度地降低风险并确保运营稳定性。
在此阶段,领导者感知的 Gossip 协议已部署并与充当中心化排序器的单个网关集成。无论 L2 区块时间如何,这都使节点能够接收快速预确认。引入注册合约以为排序器集奠定基础,最初仅包括一个实体。
为了增加稳健性,还实施了利用现有 Rollup 堆栈的回退机制。
网关逐步纳入 Lookahead 时间表。在此阶段,网关仍然由 Rollup 运营商和/或预先批准的第三方运营。Gossip 网络已完全运行,从而可以进行事务转发和排序批次的流式传输。虽然网关在与 Rollup 运营商签订的类 SLA 协议下运行,但削减机制尚未启用。
网关现在可以无需许可地加入排序器集,并且提案者能够将排序职责委托给网关。预计提案者会监控其委托的性能和可靠性。在此阶段,将激活削减机制以解决安全和活性故障。
但是,必须解决诸如故障归因和抢先交易预防等几个注意事项,以确保系统在达到此阶段之前的稳健性。
有几个主题需要进一步讨论和详细规范:
对于第 3 阶段(无需许可的网关),仍然存在以下开放性问题:
我们渴望与协议研究人员、开发人员、Rollup 运营商和生态系统中的其他团队合作,共同完善这些开放性问题,并为基于排序塑造安全、高性能的未来。通过合作处理未完成的设计细节并在实际环境中测试解决方案,我们可以共同构建一个更强大、无需许可排序的 Rollup 生态系统。
- 原文链接: ethresear.ch/t/becoming-...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!