现在的 Rollups 不是真正的 Rollup~

本文深入探讨了 ZK Rollup 的去中心化和安全性,阐述了当前排序器面临的挑战,介绍了多种提升 Rollup 安全性的机制和技术架构。文章提供了对智能合约 Rollup 和主权 Rollup 功能的详细分析,同时讨论了共识机制、交易强制包含机制以及共享排序器的潜在优势,使读者对 Rollup 的未来发展有了清晰的认识。

简介

Kelvin 认为 ZK Rollups 不是真正的,但我认为目前任何“Rollup”都不算真正的,至少暂时还不是真。那么,我们如何才能让它们成为真正的Rollup呢?

今天的Rollup大多是受信的和许可的:

来源:L2 Beat

我将概述以下内容:

  • 强制交易包含机制 - 即使Rollup操作员正在审查用户,他们也应能够强制包含他们的交易,以维持审查抵抗性。

  • L2 排序器去中心化和(可选)共识 - 单个排序器、PoA、PoS 领导选择、PoS 共识、MEV 拍卖、基于的Rollup、高效证明等。

  • 共享排序器与 X-链原子性 - 这是真正有趣且全新的东西。

  • MEV-aware 设计 - 我将简单介绍一些 FCFS 的变种。有关加密内存池的信息,可以参考我最近的文章 这里

许多其他提高Rollup安全性要求将在本帖的上下文之外(减少升级密钥的权力、实施稳健和无权限的证明等)。

Rollup的工作原理

智能合约Rollup (SCRs)

首先,简要介绍一下SCRs 是如何工作的。这些是我们今天在以太坊上所熟悉的Rollup。从很高的层面看,SCR 基本上只是:

  1. 一组有序的输入(在 L1 上,因此交易数据必须发布在数据可用层上)

  2. 在其中运行的代码(Rollup节点软件)

  3. 运行该函数的确定性输出(Rollup区块链)

来源:How Rollups actually work - Kelvin Fichter

更具体来说,传统的排序器通过将状态根和 calldata(最终数据块)发布到其关联的 L1 智能合约来提交Rollup区块。新块扩展Rollup的顶端。链上合约运行Rollup的轻客户端,将其区块头哈希存储在存储中。收到有效性证明后,合约会确认结算,或者在欺诈证明窗口结束后。如果一个未最终确定的 ORU 块无效,则可以通过提交欺诈证明来孤立它(以及所有后续块),该证明会回滚链的顶端。证明有助于保护桥:

批量提交应要求某种类型的保证金/存款,以挫败恶意行为。如果提交欺诈批(例如无效状态根),则存款会被烧毁并按照一定比例交给欺诈挑战者。

SCRs 具有“ 合并共识” - 一种可在链上验证的共识协议。Rollup共识可以完全在 L1 智能合约中运行。它不会影响或需要主链共识规则的任何支持。

去中心化共识协议通常由四个主要特征组成请注意,这是一种过于简单化的方式,不能完全涵盖许多共识协议类型的复杂性,例如无领导者的协议):

  1. 区块有效性函数 - 状态转移函数。区块有效性在链下执行,并通过有效性证明或缺乏欺诈证明来证明。

  2. 选择分叉规则 - 如何在两个有效链之间进行选择。Rollup的设计本意上是无分叉的,因此不严格要求非平凡的选择分叉规则。

  3. 领导选择算法 - 谁被允许通过用新块扩展链的顶端来推进链。

  4. Sybil 抵抗机制 - PoW、PoS 等。

对于去中心化排序器的最低要求,则是某种形式的 Sybil 抵抗 + 领导选举。Fuel Labs 在此方面持有观点,认为 PoS:

  • 不应在Rollup内部使用完整的共识协议(即Rollup验证者/排序器对区块进行投票)

  • 应仅在Rollup内部用于领导选择

也有不错的论据说明为什么你应该有一个 L2 本地共识。稍后将讨论更多内容。

主权Rollup (SRs)

SRs 仍然将交易数据发布到 L1 以进行数据可用性和共识,但他们在Rollup内客户端处理“ 结算” (我已经显得傻了,所以没关系)。数据可用性层告诉你数据存在,但它们并不定义Rollup的规范链:

  • SCR - “规范”Rollup链由 L1 智能合约决定。

  • SR - 没有 L1 智能合约决定“规范”Rollup链。规范Rollup链可以由Rollup节点本身决定(检查 L1 数据可用性,然后在本地验证选择分叉规则)。

来源:Celestia

相关说明:有一种有趣的观点认为不存在全球规范链(只有桥决定哪个链被视为规范好的反论点,以及关于所有Rollup在主权和(自动)组合性之间的权衡的其他精彩推特线程。我鼓励你去查看这些评论,以及关于比特币主权Rollup的最近讨论

无论如何,上述“规范”框架易于理解,它不是本文的核心,因此我将采用它。有关一般Rollup架构的更多背景内容,可以参考这里

去中心化排序器

用户发起的强制交易包含

智能合约Rollup

如上所述,排序器通常负责对交易进行批量处理并将其发布到 L1 智能合约。然而,用户也可以直接将某些交易插入合约中:

当然,这种方法效率低下且成本高昂,因此排序器会在正常情况下批量处理交易并一起提交。这会将固定成本摊薄到许多交易上,并允许更好的压缩:

排序器承诺最终将这些交易发布到 L1,并且我们可以在此期间计算输出以获得较软的预确认:

当排序器将这些交易发布到 L1 时,这就巩固了输出:

通常情况下,当用户从 L1 进入来桥接资金到 L2 时,他们会直接包含交易。这作为输入添加到 L1 合约,告诉 L2 它可以根据在 L1 上锁定的资产铸造资金。

如果我想把我的钱取回 L1,我可以在 L2 上销毁它,并告诉 L1 给我把钱还回去。L1 并不知道 L2 发生了什么(它没有执行它的交易),因此在请求解锁我的资金时需要提交证明。

因为我来自 L2,所以排序器可以发起此提取请求并提交给 L1。然而,你对 L2 排序器的审查抵抗(CR)又产生了信任。你不再在 L1 所获得的相同保障下操作。他们可能不喜欢你,或者排序器可能关闭,因此你现在被困在 L2 上。

Rollup可以通过各种措施在本地提高自己的 CR。这可能包括拥有高价值抵押的 L2 共识集、一些变体的包含列表、添加阈值加密等,以最小化 L2 用户遭受审查的可能性。这些都是很好的,但理想情况下,我们还希望 L2 用户拥有与 L1 相同的 CR 保障。

如果用户遭到审查,他们需要某种方式来强制从Rollup中提取资金或强制将他们的交易包含到 L2。这就是为什么 L2 用户应该保留直接将他们的 L2 交易强制包含到 L1 合同中的能力。例如,遭到审查的用户可以自己直接将单操作批提交到 L1。

来源:Starknet Escape Hatch Research

然而,如果 L2 用户唯一的选择是强制将交易直接发送到 L1,那就不太理想。这对于许多低价值用户来说可能不可行,特别是在与 L1 交互的成本越来越高时。更先进的设计可能会设法解决这一限制,强制Rollup之间进行原子交易。Kalman Lajkó 在这方面正在进行一项很有趣的设计,我强烈推荐阅读。它似乎可以在共享提供者和数据可用性层的系统中启用跨Rollup强制交易。

主权Rollup

强制包含对 SR 的工作方式不同,因为如前所述,它们以不同于 SCR 的方式强制实施选择分叉规则(Sovereign Labs 在这方面的出色文章)。

在 SCR 中,L1 智能合约执行Rollup的选择分叉规则。除了验证 ZK 证明外,它还检查证明是否建立在上一个证明之上(而不是某个其他分叉上),以及检验其处理所有相关的在 L1 发送的强制交易。

SR 可以将其 ZK 证明作为 calldata/数据块发布到 L1 数据可用层,以供所有人查看(尽管 L1 并未对此进行验证)。然后,只需添加一条规则,规定新证明仅在其建立在先前有效证明上时才有效。这条规则可以在客户端侧强制执行,但那样就需要用户扫描从创世区块或某个检查点开始的链的历史。

相反,可以将 calldata 关联回 L1 块头,并可以添加一个声明,说明“我已检查数据层的证明(从块 X 开始到块 Y 结束),并且该证明建立在最新的有效证明之上。”这将直接在证明中证明选择分叉规则,而不是在客户端强制执行。

由于你已经在搜寻证明,因此你还可以证明你已经扫描所有强制交易。任何人都可以在想要时将强制交易直接发布到 L1 数据可用层。

交易最终性的层次结构与 ZK 以实现快速最终性

以太坊上的链上证明验证通常非常昂贵,因此目前的 ZKR(如 StarkEx)往往每隔几小时才向以太坊发布一次 STARK。相对与交易数量,证明往往缓慢增长,因此这种批量处理在成本上有实际节省。然而,这种长最终性时间并不理想。

如果Rollup仅在链上发布状态差异(而不是完整交易数据),那么即使是完整节点在没有证明的情况下也无法保证最终性。如果Rollup的完整交易数据发布到链上,任何完整节点至少可以与 L1 一起进行最终确认。

通常情况下,轻节点只会依赖集中排序器的软确认。然而,ZKR 可以在 P2P 层迅速生成和分发 ZK 证明,供所有轻客户端实时查看,从而提供与 L1 同时的最终性。稍后,这些证明可以递归批量处理并发布到 L1。

这是 Sovereign Labs 计划执行的内容,类似地,Scroll 计划在链上发布中间 ZK 证明(但不验证它们),以便轻客户端可以快速同步。借助这两个构造,Rollup可以开始以 L1 的速度进行最终确认,而不是等待以节省Gas成本。请注意,在这两种情况下,你只是在将硬最终性时间降至绝对最小(L1 速度)。

不同的排序器设计永远不会比 L1 区块时间提供最强的最终性保障。不同排序器设计所能做的最好的是以不同的确-certitude(例如,来自具有高价值抵押的去中心化共识集合的 L2 的预确认可能比单个受信排序器的预确认更可信)更快地给你预确认。

Patrick McCorry 最近也对 Rollup交易最终性的层次进行了很好的概述。你现在可能能大致了解:

  • 根据谁给你承诺(以及Rollup构造是什么),交易的“最终性”存在不同的层次。

  • 不同的参与者在不同的时间点可能对“真相”有不同的认知(例如,L2 轻客户端、完整节点和 L1 智能合约会在不同的时间实现同一“真相”)。

单排序器

今天,大多数Rollup都有一个被允许提交批次的排序器。这种模式效率极高,但在实时活跃性和审查抵抗性方面提供了较弱的保障。如果有适当的保护措施,这对许多用例来说可能是可以接受的:

  • 审查抵抗性 - 用户强制交易包含的机制,如上所述。

  • 活跃性 - 一种类似的热备份选项,如果主要排序器发生故障(同样针对 ZKR 提供者的备份,以及 ORU 欺诈提供者也应是无权限的)。如果备用排序器也发生故障,任何人都应能够介入。

例如,替代排序器可以由Rollup的治理选举产生。在这种设置下,用户获得安全性、审查抵抗性和活跃性。这时,单一活动排序器甚至可能是可行的选择。

Base 可能是趋势的开始。公司现在可以管理和优化他们的产品,就像他们之前对企业区块链的炒作那样,但如今它实际上可以是一个无权限、安全和可互操作的链。

Base 意在最终去中心化他们的排序器集。但关键是他们并不严格需要这样,其他人也可能不会这样做(或者他们可能只在非常有限的范围内去中心化,例如小型排序器集)。明确要说明的是,这要求Rollup实施必要步骤,以确保实际安全并维持审查抵抗性(去除任意即时升级、实施强健证明、强制交易包含、MEV 拍卖等)。今天并不安全。

这将比集中/托管产品有大幅改进,而不是最大程度去中心化产品的替代品。Rollup只是扩展了设计空间。这也是为什么大多数Rollup团队并未优先考虑排序器去中心化的主要原因——为了确保用户安全、审查抵抗性,以及减少对Rollup操作员的信任,其他事项的优先级要高得多。

然而,如果用户/其他参与者需要介入以维持活跃性和“实时审查抵抗性”(而不是“最终审查抵抗性”,例如通过 L1 强制交易),这仍然并不理想。根据强制交易包含机制的不同,低价值用户介入可能会导致费用高昂或不切实际。对实时审查抵抗性和活跃性有最大保证的Rollup会寻求去中心化。此外,单个受限排序器的操作可能还存在监管上的考量。

权威证明 (PoA)

对一个单一排序器的简单改进将是许可一些地理分布较广的排序器(或许其他信誉良好的公司)。排序器可以以轮换轮方式平等轮换。让他们提供保证金将有助于激励诚实行为。

这个总体的概念对大家应该不陌生——多重签名桥通常由少数可信的公司管理,或者就像 Arbitrum 的 AnyTrust 数据可用性 的委员会一样。然而,重要的是,它们在这里拥有的权力要小得多(你并不依赖Rollup排序器来提供安全性,而多重签名桥的运营者却可以撤回锁定资金)。整体而言,与单个排序器相比,这对审查抵抗性和活跃性来说都是更好的选择,但仍然不完美。

排序器拍卖,也就是 MEV 拍卖 (MEVA)

Rollup还可以通过智能合约直接运行 MEV 拍卖 (MEVA),而不是根据抵押分配排序器权利。任何人都可以出价获得交易排序的权利,拍卖合约将将排序权授予出价最高者。这可以按区块进行,或者在一段时间内进行(例如,争夺第二天成为排序器的权利)。获胜的排序器仍应发布一些保证金,以便在他们出现错误或恶意行为时能施加惩罚。

来源:去中心化 ZK Rollup

在实践中,如果拍卖没有直接嵌入协议中,协议外 MEVA 自然会出现。如果排序权限根据抵押权重确定,某种形式的 MEV-Boost/PBS 拍卖系统将会出现,类似于我们今天在 L1 以太坊上所看到的情况。在这种情况下,费用/MEV 可能将流向抵押者。如果拍卖嵌入到协议中,则费用/MEV 可能将流入某种形式的Rollup DAO 金库(尽管这种情况下也可以选择分配或销毁等)。

无权限的 PoS 进行领导选择

作为排序器加入是无权限的,但你必须抵押(可能是 L2 的原生代币)。抵押机制可以通过智能合约或直接在Rollup内建立。你可以使用此 PoS + 某种形式的链上随机性来进行领导选择,方式与任何 L1 十分相似。你获得的序列化区块的概率 = 你总抵押的比例。可以通过未获得奖励、失效泄露和削减对错误/恶意排序器施加惩罚。

请注意,这 要求排序器达成共识,原因如上所述。Rollup使用 L1 进行共识,因此不需要本地共识。抵押决定能够提议区块的排序器的轮换,但它们不需要对其他排序器提议的区块进行投票。

这可以授予任意长度的排序权利。你可能有权对连续 100 个Rollup块进行排序,或者 1000 个等。更长的周期可能会更高效,并且在给定时刻仅需要一个排序器。然而,授予扩展独占可能会产生其他外部性。或者,排序器可以像普通 L1 一样每个块交替。

Dymension

Dymension 是一个在这方面做工作的项目。Dymension Hub 将是 Cosmos 中典型的诚信大多数 PoS L1。它的 L2(“RollApps”)将利用它进行结算和共识,同时依赖 Celestia 进行数据可用性(所以这些 L2 实际上是“乐观链”而不是“Rollup”)。

根据他们的 简易白皮书,去中心化的 RollApp 排序需要在 Dymension Hub 上抵押 DYM(Dymension 的本地资产)。然后,领导选择将由相对抵押的 DYM 决定。这些排序器将从各自的Rollup中获得收入(费用和其他 MEV),然后支付与 Dymension Hub 和 Celestia 相关的基础成本。

由于此机制的存在,几乎所有价值捕获都会直接归属于 DYM 代币。 使用自己原生代币进行排序的Rollup(例如 StarkNet 计划使用 STRK,后面将描述)会让价值归属于他们自己的代币。这种setup就类似于以太坊Rollup只能使用 ETH 进行其排序器选举。

在我看来,这显著减少了在这一结算层部署 L2 的动力。大多数 L2 团队自然希望他们自己的代币获得有意义的价值(而不仅仅是成为一种费用代币,正如在这里可能的情况)。毕竟,他们是为了经营一项商业。

无权限的 PoS 进行领导选择与 L2 共识

如果需要,还可以使用 L2 抵押来进行排序器选举在 L1 确认之前的本地共识。这正是 StarkNet 计划如何使用其 STRK 代币:

  • PoS 排序器领导选择 - 如上所述,这需要某种形式的领导选择。

  • PoS 共识 - 激励 L2 验证者在达到 L1 最终性之前达成暂时的 L2 共识,从而提供更强的预确认。正如上述所述,这不是严格要求的,但这是一个有吸引力的选择。

此外,STRK 可能会以某种形式用于:

  • PoS 数据可用性共识 - 激励提供备用数据可用性(volition),这需要单独的共识。

  • 证明 - 激励证明者生成 STARK。

交易流程如下:

  1. 排序 - 排序器对交易进行排序并提出一个区块。
  2. L2 共识 - StarkNet 共识协议对提议的区块进行签署。
  3. 证明生成 - 证明者为共识已达成的区块生成证明。
  4. L1 状态更新 - 向 L1 提交证明以进行状态更新。

有关 StarkNet 计划的更多详细信息,可以参考 这一系列论坛帖子,从这篇开始

L2 共识,还是仅 L1 共识?

正如我们所看到的,L2 可能会实现本地共识,也可能不会(即,L2 验证者在将其区块发送到 L1 进行最终共识之前先对其进行签名)。例如,L1 智能合约可以根据其规则得知:

  • 领导选择与共识的 PoS - “我只能接受已被 L2 共识签名的区块。”

  • 领导选择的 PoS - “这是被选中的排序器,允许在此时提交区块。”

要在没有本地共识的情况下拥有一个Rollup,你只需要做的是

  1. 使Rollup区块提议无许可。
  2. 创建一些标准来选择为给定高度构建的最佳区块。
  3. 让节点或结算合约强制实施选择分叉规则。
  4. 从 L1 继承共识与最终性。

请注意,在任一情况下,来自 L2 的价值可以归属于Rollup代币。即使 L2 代币仅用于某种形式的领导选择(而非共识投票),来自排序权的价值仍然归属于 L2 代币。

L2 共识的缺点(仅领导选择)

现在让我们讨论在 L1 之前拥有/不拥有本地共识的权衡。Fuel Labs 队伍有一个论点,即这可能会降低审查抵抗性。“ 这使得大多数验证者可以审查新区块,意味着用户的资金可能被冻结。没有必要使用 PoS 来保护Rollup,因为Rollup是由以太坊保证的。” 这在某种程度上是一片灰色地带。如前所述,即使有审查的排序器,你仍然可以提供审查抵抗(例如,通过将交易直接强制推入到 L1,或通过 更复杂的设计,如 Kalman Lajkó 正在做的)。

另外还有一个观点认为,完整共识是“ 低效的”。例如,似乎更容易只是让:

  • 一个主排序器在一个盒子上运行所有内容,vs.
  • 一个主排序器在一个盒子上运行所有内容,然后所有其他节点需要对此提案进行投票和达成一致。

当然,这会依赖于所选择的确切排序器设计和共识机制。

此外,请注意,有人对在排序器去中心化中使用 PoS 提出了担忧,如在这里这里所述。L1 与 L2 的复杂性可能使之在应对某些类型的攻击时更加困难。

增加 L2 共识的优点(除了领导选择)

可能排序器的最大目标是为用户在全L1保险和安全性之前提供更快的软确认。 查看StarkNet 的机制要求

“强大且快速的 L2 最终性 - 只有在批量证明提交到 L1 之后,状态才被视为最终(这可能需要长达几小时)。因此,L2 去中心化协议应该在下一个批次证明之前做出有关计划执行顺序的实质性承诺。”

添加某种形式的共识,由许多排序器的经济安全支持,有助于提供更强的保证,以确保你的预确认是可行的:

“StarkNet 的共识必须在安全性和活跃性违规方面严密负责,以至于任何参与者(包括恶意多数抵押)都可能遭受削减处罚。”

Rollup也具有在共识机制选项的权衡点上尝试不同的灵活性的能力,因为它们最终总能依靠以太坊 L1 的安全性和动态可用性作为后备。

L1 排序的Rollup

上述所有构造都以某种方式优先排序器创建Rollup区块。例如,PoS 是无准入的,但对于特定插槽所选的 L2 排序器是当时唯一能够提交区块的一方。或者,有一些相关提案并不优先考虑任何 L2 排序器。这些设计依赖于 L1 自身进行交易排序。

完全无序

Vitalik 在 2021 年提出了这个“完全无序”的构想。允许任何人在任何时间提交批。第一个扩展Rollup的交易将被接受。它满足了上述去中心化排序器的两个最低要求:

  • Sybil 抵抗性 - Sybil 抵抗性由 L1 提供(即,交易费用和区块大小/Gas限制)。

  • 领导选择 - 领导选择是隐含的和事后确定的。

这是充足的,因为 L1 已经提供了安全性。如果 L2 块已发布到 L1,只有在它们无效或建立在无效块之上时才能被孤立(将被回滚)。如果它们有效且已对 L1 发布,则它们具有与 L1 相同的安全保证。

Vitalik 注意到的一个大问题 - 效率非常低。多个参与者可能会并行提交批次,而只有一项可以成功包含。这会浪费大量的生成证明的努力和/或在将批次发布到链上时浪费的Gas。你也很难快速知道你的交易是否会被迅速进入,而且这并不具成本效益。

基于Rollup

然而,PBS 现在可能使这种无序设计在可行。它允许更多的序列化,在每个 L1 块最多有一个Rollup块并没有浪费Gas。(虽然你可能有计算浪费). L1 建设者只需包括最高价值的Rollup块,并根据搜索者的输入出价构建此块,类似于 L1 块的方式。也可能合理地使 ZK 证明权限 默认为权限(同时保持无权限后备)以避免计算浪费。

这是 Justin Drake 最近提出的“基于Rollup”的核心理念。他用这个词来形容那些其排序由 L1(“基础”层)驱动的Rollup。L1 提议者只是确保在自己的 L1 块中包括Rollup块(大概通过建设者)。这是一种简单的方法,立即提供了 L1 的活跃性和去中心化。它能够绕过诸如在 L2 排序器被审查的情况下,解决强制交易包含的棘手问题。此外,由于不需要验证排序器签名,它们消除了某些Gas开销。

提出的一个有趣问题是这些 L2 交易去哪儿处理。 L2 客户端需要将这些交易发送到某个地方,以便 L1 搜索者/建设者能够捕捉并创建他们的块和数据块。它们可能被发送到:

  • L1 内存池 - 可以带上某些特殊元数据,供“知情的”搜索者/建设者进行解释。不过,这可能会显著增加 L1 内存池的负担。

  • 每个 L2 的新 P2P 内存池 - 这样的事情似乎更可行。搜索者/建设者只需开始检查并解释这些内容,外加他们通常使用的渠道。

显然,一个明确的缺点是基于Rollup限制了排序器的灵活性。例如:

  • MEV 缓解 - Rollup可以创造性地使用 FCFS、加密内存池等变体。

  • 预确认 - L2 用户喜欢快速交易的“确认”。基于Rollup的时间可能会回落到 L1 区块时间(12 秒),或可能需要更长的时间才能发布完整的批次。Justin注意到,重新质押在这里可能会有所帮助。

Twitter头像 @jon_charb\ \ Jon Charbonneau @jon_charb\ \ 哇 \ \ 图片 [上午6:58 ∙ 2023年3月15日\ \

这两个领域的研究与EigenLayer相关,至少在他们的白皮书中提到过这里。不过,不清楚这是否是一个可行的解决方案来实际解决问题。为了使重新质押能够在这些不足上有所改善,你可能希望所有质押者选择参与运行它。通过仅让愿意这样做的部分质押者选择进入一个共享的排序层来模拟这个想法似乎更合理(稍后会详细介绍)。

效率证明(PoE)

去年,Polygon Hermez提出了一个称为PoE的提案。这是L1排序的另一种变体,特别用于ZKRs。这里的排序者是一个完全开放的角色,任何人都可以提交一个批次(即,总是无序的),因此它有相同的限制。PoE包含一个由两个各方组成的两步流程:

排序者

排序者收集L2用户交易,并通过发送L1交易(包括所有选定L2交易的数据)来创建一个批次。排序者将根据获得的经济价值或满足用户服务水平(例如,在每个L1区块中发布一个批次,即使这使得L2交易更昂贵,因为用户希望更快的交易)来提交区块。

排序者将支付L1的Gas费以发布一个批次,并且协议定义了必须存入的额外费用(以MATIC计算)。一旦发布,胜出的批次立即定义了链的新顶端,允许任何节点确定性地计算当前状态。然后需要一个有效性证明来最终确定轻客户端对此的视图(包括L1智能合约)。

聚合器

聚合器在这里是ZK提供者。再次强调,这是一种无权限的角色,任何人都可以竞争。很简单:

  • 根据它们在L1中出现的位置,对带有交易数据的已排序批次进行排序。

  • PoE智能合约接受第一个有效性证明,该证明更新到包括一个或多个尚未证明的建议批次的新有效状态。

聚合器可以自由地进行自己的成本效益分析,以确定发布证明的正确频率。如果他们赢得比赛,他们将获得部分费用,但若等待更长时间发布新证明,则会将他们的固定验证成本分摊到更多交易上。如果聚合器晚发布证明(它并不证明新状态),则合约将仅执行反转。证明者浪费了计算,但他们将节省大部分Gas费。

费用可以按以下方式分配:

  • 从L2交易中获得的费用将由创建有效性证明的聚合器处理和分配。

  • 所有交易费用将发送给每个批次的相应排序者。

  • 排序者为了创建批次而存入的费用将发送给将该批次包含到有效性证明中的聚合器。

纯分叉选择规则

Rollkit SR具有非常相似的“纯分叉选择规则”概念,如这里所述,指的是没有特权排序者的任何滚动。节点推迟至数据可用性层进行排序,并适用“先到先得”的分叉选择规则。

L1排序的经济学

这些L1排序设计具有重要的经济后果,在于L2交易的MEV将在L1区块生产者级别被捕获。在“传统”的L2排序模型中,L2交易的MEV由L2排序者/共识参与者/拍卖机制捕获。在这种情况下,不清楚会有多少MEV泄露到基础层中

对这是否是一件好事或坏事有不同的看法:

这在某种程度上作为滚动的较容易的启动方法是有意义的,但我们很难看出大多数滚动会放弃如此多的MEV,而将其捕获。滚动的一个巨大好处的确是经济上 - 一旦数据可用性开始扩展并且这些成本下降,它们将很少需要向L1支付。块时间较慢和对MEV的天真处理似乎对于用户来说也是不最佳的选择。

激励ZK证明

简言之,请注意,上面提到的PoE中的竞争性赛车市场可能会倾向于围绕最快的聚合器集中过去。ZK证明者市场通常有两个经济问题需要解决:

  • 如何激励证明者创建此证明

  • 如何使证明提交成为无权限的,以便形成一个竞争性和强健的市场(例如,如果主要证明者离线的话)

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

竞争市场

在一个极端情况下,你可以有一个开放的竞争模型。一个无权限的提供者市场,所有人竞相首先为滚动排序者/共识产生的区块创建证明。第一个创建证明的可以获得青睐的奖励。这个模型在找到适合这项工作的最佳证明者时非常高效。

这看起来与工作量证明矿业非常相似。然而,这里有一个独特的区别 - 证明是确定性计算。因此,一个在其他证明者上有小但持续优势的证明者几乎总是可以获胜。因此,这个市场非常容易中心化。

在工作量证明挖矿中,随机性方面有更好的特性 - 如果我拥有1%的挖矿哈希权,我应该获得1%的奖励。

这种竞争证明模型的另一个不足之处在于计算冗余 - 许多证明者会竞争并花费资源来创建证明,但只会有一个获胜(类似于工作量证明挖矿)。

轮换制(例如,按股重)

另一种选择是,你可以在证明者之间轮换,给他们一个轮次(例如,根据存入的某种股权或声誉)。这可能更去中心化,但在证明延迟方面可能效率更低(“慢速”证明者将有机会在另一个 proof 往往能更快且更高效地创建证明时发挥作用)。但是,这可以防止许多证明者竞相创建证明时浪费计算资源。

此外,如果轮到的人未能生成证明(无论是恶意还是偶然),你将面临一个问题。如果这些轮次很长(例如,某个证明者在几小时内拥有垄断地位)并且证明者出现故障,协议将很难恢复。如果轮次很短,其他证明者可以介入并在主要证明者未能实现的地方赶上。

你还可以允许任何人发布证明,但只有指定的证明者可以在某一时间捕获奖励。因此,如果他们离线,另一名证明者可以发布证明,但他们将无法获得奖励。这将变得慈善,只是为了计算而无报酬。

Scroll正致力于更接近于轮换制的方法,将执行跟踪分配给随机选择的“滚动器”(证明者):

针对如何在排序时在用户层面收费的问题还有许多有趣的讨论。关于这些主题更多的讨论可以在这里找到:

共享排序

大多数早期解决方案假设每个滚动需要自行考虑如何去中心化它们的排序者。正如我们在L1排序选项中所看到的,情况并非如此。许多滚动可以选择一个共享排序者(SS)。这有一些很大的好处:

  • 懒惰 - 不必再乡心地去去中心化你的排序者,这很难!只需接入这个选项。无需招聘和管理一个验证者集合。尽管会冒着得到更多“模块化”描述的风险,这确实是一种非常“模块化”的方法 - 将事务排序剥离成自己的层。SS实际上是一个SaaS公司(排序者作为服务)。

  • 集体安全与去中心化 - 让一个排序层构建强有力的经济安全(更强的预确认)和实时CR,而不是为每个单独的滚动实施许多小型委员会。

  • 快速交易 - 其他单个滚动排序者也可以做到这一点,但需要注意的是,你仍然可以在这里获得超快的子L1区块时间预确认。

  • 跨链原子性 - 在链A和链B上同时执行交易。(这个比较复杂,我将稍后更深入解释。)

简单地将本地L1用作多个L2的排序者在根本上有几个缺点,正如之前提到的:

  • 仍然受到L1的数据和交易排序吞吐量的限制。

  • 失去为L2用户提供低于L1区块时间的快速交易的能力(尽管在最终L1共识之前的保证较弱)。

L1排序能做的最好事情便是消除L1的计算瓶颈(即,如果事务执行是吞吐量的瓶颈),并在通信复杂度上实现小幅度的改进。

那么,我们是否可以设计出更专业、更高效的SS,而不仅仅是让L1来做…

Metro - Astria的共享排序者

Metro是共享排序层的一个提议。你可以参考Evan Forbes研究文章模块化见解演讲,以及共享安全峰会演讲以获取更多细节。Astria团队由Josh Bowen领导,正在实际实施Metro的设计。

执行与排序的分离

如今,滚动节点确实处理三件事:

这里的关键特征是执行和排序的分离。这个SS:

  • 为许多选择它作为排序层的链排序 交易。

  • 不执行(或证明) 这些交易并生成结果状态。

排序是无状态的 - SS节点不再需要为所有不同的滚动保存全状态。他们消除了执行计算。传统排序器当前处理的巨大瓶颈不复存在。

当你剥离出共识中的执行时,它的速度会飞速。你现在仅限于传播层(快速)。如果所有节点所需做的只是生成已排序的交易块,并就区块达成一致,而不执行所有操作,那么它们可以变得极其高效。执行和证明可以在事后由不同方完成。

集中排序者的安全性与去中心化

SS节点可以保持相对轻巧,甚至是水平可扩展的(通过选择一组随机的共识节点来排序不同的交易子集)。最终结果 - 你可能使这个排序层比必须手动持有链的重状态并进行完整执行的传统排序器更去中心化。

此外,我们在多个链之间集中资源 - 不需要在许多滚动之间分散PoS共识。将一切聚合在一个地方。这种效应可能会产出一个更加去中心化的排序者集(CR),与许多自己实施集合的滚动相比,具有更高的可斩值质押(重组抗性)。这是重要的,因为:

  • 排序 - 为滚动用户提供实时CR和活跃性的第一道防线。

  • 执行与证明 - 可以在事后完成,而无需强去中心化的要求。我们只需要一个诚实的方

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

  1. 软共识与排序 - 共享排序者给用户快速的预确认。

  2. 实质共识与数据可用性 - 交易数据已在所有人可见的DA层上完成。

  3. 懒惰执行与证明 - 任何人都可以在事后执行和证明那些交易。

这一后期执行层不需要那么去中心化,因为这不是CR的来源。单个排序者不理想地担负CR,但这_并不_源于它们作为执行者的角色,它来自于他们_排序和包含交易_的事实。在这里,SS已经提供了已排序的交易输入,从而提供了CR。因而,稍后对状态承诺的计算与比较不必如此去中心化。

软执行

用户们喜欢的,便是第1步的快速软执行:

这需要某种形式的共识(或中心化的排序者)以提供良好的UX:

如果仅依赖于基础层的共识,如Celestia,则无法提供围绕排序和包含的良好保证。这SS可以提供相当强的快速区块承诺(低于L1区块时间)如果它有一个sg去中心化的委员会,并有高价值的质押。

因此,一旦SS创建一个区块,用户就可以获得软确认。任何人都可以下载已达成一致的交易,并提前将其应用于状态。该确认的强度依赖于SS的构造(去中心化,经济安全,分叉选择规则等)。一旦数据实际被发布到基础层,就可以将这些交易视为真正的最终。然后,对状态根及相关证明的最终计算可以生成并提交。

懒惰的滚动

“懒惰的滚动”非常简单。它们会等到它们的交易都被排序并发布到DA层,然后下载这些交易,选择性地应用分叉选择规则以选择一个交易子集,执行交易处理,并将这些交易应用于状态。然后可以生成标题并进行传播。

请注意,由于SS无法以需要访问全状态的方式生成区块,它们并没有检查无效状态转换。因此,使用SS的“懒惰滚动”的状态机必须能够处理无效的交易。节点在执行已排序交易计算结果状态时可以简单地丢弃无效/反转交易。立即执行的传统滚动没有这样的限制。

要求状态访问以在链上包含存取前的交易的滚动在这里将不可用。例如,如果一个滚动有一个区块有效性规则,其中区块中包含的所有交易均为有效且不失败的交易。如果滚动要求交易篡改但不要求状态访问,则可以为此类滚动特别创建一个专用SS(例如,类似Fuel v2或具有私有内存池的滚动)。

支付Gas费

为了使这个SS正常工作,必须有某种机制使用户能够为其交易的包含支付Gas费。你可以简单地使用已包含在大多数滚动交易类型中的现有签名和地址,也为SS层支付Gas费。这将是唯一需要SS根据实现具有一些最小状态意识的地方(例如,解析签名、nonce、从账户中减去Gas)。或者,付款可能涉及SS上的某个包装交易,其中任何人都可以支付任意数据以纳入。这是一个开放的设计空间。

分叉选择规则

滚动可以继承其使用的SS的分叉选择规则。滚动的全节点实际上是SS的轻客户端,检查某个承诺以指示给定区块高度的哪个滚动区块是正确的。

不过,继承SS的分叉选择规则是可选的 - 你可以简单要求滚动处理(不一定执行)所有已发布到基础层的交易数据。它将有效地继承基础层的CR和活跃性,但你会牺牲许多用户喜欢的SS优点。

MEV

假设一个滚动希望继承其SS的分叉选择规则并获取快速软执行,SS自然将在MEV方面处于非常中心的位置。它决定了滚动将遵循的交易的包含和排序。

然而,滚动并不一定必须执行由SS提供的交易,或以提供的顺序进行技术性安排。你可以技术上允许你自己的滚动操作员在执行之后进行第二轮处理,以重新排序SS发布的交易。然而,如上所述,你就会失去使用SS的几乎所有良好属性,因此这似乎不太可能。

即便如此,在SS层仍可能会有MEV,因为它对交易的包含具有支配权。如果你真的希望,还可以允许你的滚动在第二轮处理过程中排除某些交易(例如,设置某些有效性条件以排除某些交易类型),但这当然会变得繁琐,降低CR,再次基本上失去SS的优势。

更换共享排序者

在区块链中,任何珍贵的共享状态锁定都是很难进行分叉的。看看像ETH与ETC之类的东西,或者ETH与ETH POW,相比之下,社会共识决定了什么是“真实的以太坊”。什么是我们都一致认为有价值的“真正”状态。

然而,SS实际上只是一个服务提供者 - 它们没有与之关联的有价值状态。使用特定SS的滚动保持了轻松将其叉出去以取而代之的其他排序机制的能力,只有一个微小的硬分叉(例如,如果SS提取了过多的价值)。这应该期望让SS保持竞争。

使这更具挑战性的事情是网络效应。 如果许多滚动都开始使用SS,并获得良好的网络效应(例如,如果它们从许多链的跨链原子性中获得重要价值),那么隔离开来,可能会很痛苦,除非其他滚动也乐意过渡。

Espresso排序者(ESQ) - 由EigenLayer保护

你可能已经看到,EigenLayer白皮书提到去中心化SS作为重新质押的潜在消费者之一。这个SS可以由ETH重新质押者保护,并将处理许多不同L2的交易排序。

好吧,Espresso刚刚公开宣布其共享排序者的计划。它可以利用EigenLayer重新质押者来确保其共识。为了给出一个良好的视觉效果,今天的滚动看起来像这样:

如果有SS如Espresso,他们将看起来像这样:

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的节点之间交易和共识消息的通信。

  • 滚动REST API - L2滚动使用的API,以集成Espresso排序者。

让我们 closer 看一下DA。在乐观的情况下,高带宽节点将数据提供给所有其他节点,并且每个单个区块的可用性也由小型随机选举的委员会备份。考虑到小型委员会面临DDoS和贿赂攻击的风险,可验证信息分散(VID)将用于提供一个可靠(但较慢的)备用路径,以保证DA,只要所有节点(以质押的方式)中有足够高的份额没有被损害。

该系统是为规模而构建的,因此,ESQ希望为选择其作为SS的L2提供更便宜的DA。它们仍将将其证明和状态更新提交给L1以太坊,但请注意,这将使使用ESQ的链默认成为“validiums”或“乐观链”,而不是完全的“滚动”(即,DA不保证以太坊L1)。它比数据可用性委员会(DAC)的简单实现更强,但比真正的滚动保证较弱。

交易流

  • 排序者合约 - HotShot直接与其L1排序者合约互动。它验证HotShot共识并为其他参与者提供其已排序的区块的视图。该合约存储一个追加式的区块承诺日志,而不是完整的区块。然而,任何人都可以根据该承诺验证任何区块。

  • L2合约 - 每个使用ESQ的L2仍然拥有自己的以太坊L1滚动合约。为了验证发送至各个滚动的状态更新(通过有效性/欺诈证明),每个滚动合约必须访问导致申请状态更新的经认证的区块序列。它们通过排序者合约进行查询。

转发到SS的交易将首先排序,然后发送回滚动的执行者和证明者,然后在L1上完成。SS还会向其L1排序者合约发送对区块的承诺,以及用于认证该区块的法定人数证书。这允许L1滚动合约将滚动状态更新证明与认可为共识输出的区块承诺进行比较。

交易流的完整视图:

跨链原子性

如Espresso文章所述,SS可以在跨链原子性方面提供一些令人兴奋的用例:

“跨多个滚动的共享排序层承诺使跨链消息传递和桥接更便宜、更快和更安全。不需要为另一个链的排序者构建轻客户端是一种无需成本的额外好处,实现了潜在的前期节省。通过消除独立随时更新其他滚动共识的需求,跨滚动桥接的持续节约也是可能的。共享排序者也为桥接提供安全优势:共享排序者可以保证如果且仅当(甚至同时),某个交易在一个滚动中最终确认时,它才在另一个点下最终确认。

_“此外,共享排序者能增强用户在不同滚动之间表达原子性依赖关系的能力。通常,Alice签署并独立发布其滚动A的交易t,而不需要Bob的滚动B的交易t’。在这种情况下,艾莉斯的交易可能比Bob的交易被排序得更早,留下Bob有很长的选择权来中止(例如,一笔交易)。与共享排序者相比,这种选择不平衡得到了缓解,在这种情况下,亚莉斯和鮑勃可以一块提交两笔交易,作为一个签署的包之(即,排序者必须将这两个交易视作一个)。”

这一点对随着链上活动的增长(我希望如此)产生了跨域MEV的影响。经典案例是“原子套利”。相同资产以不同价格在两个不同的链上进行交易。寻找者希望以相同风险执行两个交易,以填补这一差距。例如:

  • 交易1(T1) - 在滚动1(R1)上低价买入ETH。

  • 交易2(T2) - 在滚动2(R2)上高价卖出ETH。

对于套利交易来说,它是原子的 = 要么两个交易均成交,要么均未成交。如果两个滚动都选择同一SS,则可以为寻找者兑现原子套利。此处SS可以保证:

  • T1仅在以下情况下包含在指令流中发送给R1:

  • T2同时包括在指令流中发送给R2。

假设滚动虚拟机在其各自的流中依次执行所有交易(即,根本不存在无效指令,只是一些指令可以抛出错误,而不会影响状态),那么我们也可以确保:

  • T1在R1上被_执行_的时间是T2在R2上_执行_的时间。

然而,这仍然_不是_在共享狀態機上进行交易的那种保证(例如,在全以太坊L1上)。如前所述,SS不持有这些滚动的状态,它们也_没有_执行交易。你不能完全确保其中一笔交易(在R1或R2上)不会在执行时反转。

在此之上构建更复杂的原语将是值得怀疑的。例如,如果你尝试构建一种在该SS上即时烧气实例成为跨链的桥接功能,以下操作必须在同一块高度同时进行:

  • 在R1上减少一个输入。

  • 在R2上发行一个输出。

你可能会遇到这样的情况:

  • R1上的减少可能由于执行时被另一个交易否决,导致意外错误,但

  • 在R2上的铸造不会由于任何干扰而无效,因此它完整执行。

你可以看到这将是一个大问题。

可能在某些情况下,只要两笔交易都包含在输入流中并因此能够执行,你便可以确信这两笔交易的预期结果,但通常情况并非如此。如何强大地提供的两项交易:

  • 保证 - T1和T2将被包含在各自的流中,且(潜在地)都将执行。

  • 没有保证 - 两个交易的成功执行以及所期望的状态的结果。

这些“保证”可能足以用于像原子套利这样的交易,其中寻找者已经拥有在每条链上执行这些交易所需的资产,但显然并没有共享状态机的同步可组合性。这是一个复杂的例子,类似于跨链闪电贷不足以靠第一个保证。

然而,在结合其他跨链消息协议的情况下,这仍可能在其他场景中有用。让我们看看如何在与跨滚动消息协议结合使用时,促进跨链的原子NFT交换:

  • T1将ETH从U1(用户1)转换到R1的SC1(智能合约1)

  • T2将NFT从U2(用户2)转换到R2的SC2(智能合约2)

  • SC1仅在收到先前来自SC2的确认消息后,允许U2赎回ETH。

  • SC2仅在收到来自SC1的确认消息时,允许U1赎回NFT。

  • 两个智能合约实现一个时间锁,这样如果其中一个失败,相应方可以恢复他们的资产。

此SS使两个用户能够在第1步中以原子方式承诺。然后,你可以使用某种形式的跨链消息传递,允许滚动相互验证彼此的状态并解锁资产以执行交换。

没有SS进行原子性处理,两方可能达成价格一致。但随后,U1可以提交他们的交易,然后U2可以待在原地,决定是否要终止交易。有了SS,他们就无法撤出交易。

这几乎是共享排序者与跨链原子性的交界线。总结一下:

  • 这里提供的保证的准确强度和有用性尚未得到证明。

  • 对于跨链的原子套利极有可能非常有用,同时在跨链交换与NFT交易等应用中可能也会有帮助(可能连同其他消息传递协议)。

  • 它可能对提供额外的加密经济保证(例如, 作为抵押担保提供保证金)有助于支持某些类型的跨链交易。

  • 不过,你在交易结果上永远不会有无条件的保障(原子地一起执行的交易才会在共享状态机中得到保障)。

关于跨链原子性的其他有趣话题,我建议查看:

共享排序者摘要

总结一下,共享排序者的基本思想是,它将尝试做到这一点:

显然,这幅图并不是科学的,每件事都高度主观,并且非常依赖于具体的构建结构。但Tldr比较可能是这样的:

  • 集中顺序器 - 如果你完全控制系统,通常实现所需特性的难度最低。然而,在预确认的强度上你会得到次优的保证,强制退出可能不良可取,活跃度也可能次优等等。

  • 去中心化 L2 顺序器 - 有意义的利益相关者的分布式集合应该增强聚合的强度,相比于单一的顺序器。然而,根据实现方式,你可能会在延迟等方面做出妥协(例如,如果许多 L2 节点在确认聚合区块之前需要投票)。

  • L1 顺序 - 最大的去中心化、CR(共识规则)、活跃度等。然而,它缺乏特性(例如,快速预确认、数据吞吐量限制)。

  • 共享顺序器 - 你可以获得去中心化顺序器的功能,分享给其他人的好处(某种程度上的原子性),你不需要自己启动一个顺序器集合等等。然而,与 L1 顺序相比,在完全 L1 最终性的过渡期间,你的保障会比较弱。此外,一个共享层能够在一个地方聚合来自许多聚合区块的委员会、经济安全等(可能比每个聚合都有自己委员会的方式要强得多)。

最终,所有的聚合区块在 L1 完成时都会找到通往 100% L1 安全的途径。大多数顺序器设计只是试图在获得 L1 结算的完整安全性和保障之前,给你提供非常不错的特性。它们都做出了不同的权衡。

SUAVE(单一统一价值表达竞拍)

去中心化的构建者 vs. 共享顺序器

在谈论这些共享层如何处理许多其他链的交易时,差异可能会令人困惑。尤其是当 SUAVE 通常被称为“排序层”以及被称为“去中心化的块构建者用于聚合区块”时。为了澄清 - SUAVE 与上述的共享顺序器设计非常不同

让我们考虑 SUAVE 如何与以太坊交互。SUAVE 不会以任何方式被纳入以太坊协议。用户只需将他们的交易发送到其加密的内存池。SUAVE 执行者的网络随后可以输出一个区块(或部分区块)到以太坊(或类似的任何其他链)。这些区块将与传统中心化以太坊构建者的区块竞争。以太坊提案者可以同时监听两者,并选择他们希望提议的内容。

同样,SUAVE 不会替代聚合如何选择其区块的机制。例如,聚合可以实施一种可能与以太坊 L1 类似运作的 PoS 共识集。这些顺序器/验证者随后可以选择由 SUAVE 生成的对他们的区块。

这与上述共享顺序器的设计非常不同,在那里,聚合可以完全消除去中心化其顺序器的必要性。它们仅通过选择加入像 Metro 或 ESQ 的方式来外包这个功能,并且可以选择继承其分叉选择规则。以太坊、Arbitrum、Optimism 等不会更改其分叉选择规则以选择 SUAVE 进行所有交易排序。

SUAVE 并不关心你链的分叉选择规则是什么,或者你的区块是如何选择的。它旨在为任何领域提供最盈利的排序。注意,与早期描述的共享顺序器节点不同,SUAVE 执行者通常是完全状态化的(尽管它们也可以满足某些不需要状态的偏好)。它们需要模拟不同交易的结果以创建最佳排序。

为了看清区别,让我们考虑一个用户希望进行原子跨链套利的例子。如果他们将这个偏好提交给 SUAVE,与提交给共享顺序器相比,他们能得到的保证是:

SUAVE + 共享顺序器

那么,SUAVE 如何与去中心化的聚合顺序器甚至可能的共享顺序器互动呢?Espresso 似乎确实相信 SUAVE 与 ESQ 兼容,如他们的帖子所述。ESQ 旨在与像 SUAVE 这样的私有内存池服务兼容,SUAVE 可以充当构建者。这看起来类似于我们在以太坊上惯用的 PBS,除了现在:

  • 共享提议者 = 共享顺序器

  • 共享构建者 = SUAVE

与 PBS 一样,构建者可以从提议者(此处的顺序器)获得对给定区块的盲承诺。提议者仅在不知内容的情况下,知道它将从提议区块中获得的总效用(构建者的竞标)。

将事情整合在一起,让我们再次看看希望进行跨链套利的寻求者。SUAVE 本身可以构建并发送到两个不同的聚合:

  • 区块 1(B1)其中包括交易 1(T1) - 在聚合 1(R1)上以低价购买 ETH

  • 区块 2(B2)其中包括交易 2(T2) - 在聚合 2(R2)上以高价卖出 ETH

但 B1 赢得其相应的竞拍而 B2 失败(或相反)的可能性是完全存在的。然而,让我们考虑如果这两个聚合选择加入同一个共享顺序器会发生什么。

共享顺序器节点基本上是完全愚蠢的。

它们对交易实际执行的情况没有任何理解,因此它们需要像 SUAVE 或其他 MEV 关注的构建者来为它们构建一个完整的区块,如果它们想提高效率。那么,SUAVE 执行者可以将两个区块 B1 和 B2 提交给共享顺序器,条件是这两个区块都为“填充或放弃”(原子执行或两个都丢弃)。

现在你可以在整个过程中获得非常好的经济保证:

  • SUAVE = 共享构建者 = 可以确保如果同时包含并原子执行 B1 和 B2 结果是什么状态。

  • SS = 共享提议者 = 可以确保 B1 和 B2 同时包含并原子执行。

重质押聚合

我最近在 Flashbots 论坛上发布了一篇关于 SUAVE 潜在经济安全模型的帖子。TLDR 我论证了为什么聚合可能在长期内比重质押更具优势。

Hasu 也有一些非常深思熟虑的回应 关于重质押和聚合之间的权衡,我鼓励你去读。这里是 TLDR 响应:

  • 聚合通过 L1 保证安全性/CR/活跃性,但 SUAVE 在这方面的利益不如大多数链,因为 SUAVE 链并不针对普通用户。实际上,Flashbots 正在研究主动限制用户向 SUAVE 转账资金的方式。理想情况下,一个链几乎只需要寻求者/构建者保持足够的运营资金。而这可能远低于传统聚合为母基金准备的大量资金。此外,在此链的上下文中,强制通过 L1 进行状态转换对寻求者/构建者的价值可能较低。

  • DA 成本高,至少今天是如此。我们将看看这在 EIP-4844 的实施之后如何发展,以及对 DA 需求的可能增加。相反,我要指出的是,重质押对代币持有者来说可能更“昂贵”(即,如果费用收入低,而 ETH 重质押者的通货膨胀需要来激励足够的经济安全)。一个对用户来说更昂贵,而另一个对代币持有者来说更昂贵。这很大程度上取决于任何潜在链的时机以及以太坊那时 DA 的成熟度。

  • SUAVE 需要将来自其他领域的状态转换报告回主链(以便条件支付给执行者可以解锁)。聚合在读取以太坊 L1 和其他聚合状态方面具有良好的信任最小化特性。

但是,这是个新主意 - 何不同时进行两者呢!重质押聚合。

这未能解决 Hasu 提到的所有担忧,但无论如何这仍然是一个非常有趣的新选项,尤其是在长期来看。

与其仅由 EigenLayer 重质押者保证安全性(更像是其自身的 L1 借贷安全),聚合可以使用这些 EigenLayer 重质押者作为其本地共识,但是该链随后将向以太坊汇总(即,将其数据和证明发布给包含它)。

如前所述,聚合可以决定实施其本地共识,以针对真正的 L1 最终性之前提供更强的关于短期预确认以及重组抵抗力的保证。那么,为什么我们不将该聚合共识集指定为以太坊重质押者集合呢?现在你得到了两者:

  • L1 最终性之前 - 高价值、去中心化的重质押共识提供强大的短期重组抵抗力。

  • L1 最终性之后 - 仍然是一个聚合!它将其数据发布给以太坊,并且可以发布 ZK / 欺诈证明。

这与任何聚合在 L1 完成后最终具有的安全性是相同的。这只是实施其自身共识的聚合的一种变体。只是在先前描述的其原生代币安全的聚合上拥有其自身的验证者集,它选择拥有以太坊重质押者执行业务流程。

同样,如果 Celestia 能够确立某种形式的重质押,那将会很有趣(目前,计划是 Celestia 的 L1 将非常简约,没有智能合约功能)。我以前写过,列入清单的聚合将会是 Celestia 的一个有趣方向,而本地重质押将是另一个迷人的工具,允许自由市场决定它们想要附加的特性。重质押还可以帮助 Celestia 的安全预算,因为可替代 DA 层的价值累积模型仍未得到验证。

其他 MEV 考虑

这里最简单的想法(聚合目前普遍采用)是运行一个具有天真的 FCFS(先到先服务)的单一顺序器。顺序器只需按照接收到的顺序提交交易。你可以合理信任一个单一的顺序器遵循 FCFS 排序,但这仍然会激励延迟竞赛和相关的负外部性以及其他问题(TLDR:不要实现 PoW 来尝试修复它)。因此即使是中心化的顺序器也需要更有效地应对 MEV。

上述一些解决方案隐含地处理了这一问题(例如,举办完整自由的公共拍卖),但显然没有任何一个聚合希望宣称它们的用户被夹击。因此,我们可能需要创新。结合拍卖的好处 + 利用可编程隐私的地方,其中的趣味性就出现了。

这就是为什么中心化顺序器今天也喜欢拥有私人内存池 - 试图确保用户没有被抢跑等。但这些并不容易去中心化。如果你向许多顺序器开放,你只是信任它们运行自己的私人内存池吗?即使你信任,如果每个顺序器都有自己独立的内存池,并且你需要开始轮换活跃的领导者,那也可能是个问题。

加密内存池是解决许多这些问题的一个迷人研究领域。我将简单引用我刚刚发的帖子以获取相关信息:

Twitter avatar for @jon_charb\ \ Jon Charbonneau @jon_charb\ \ 加密内存池作为 MEV 和审查工具\ \ 这篇帖子主要建立在 @drakefjustin 的精彩演示之上(帖子中有链接)\ \ 它们看起来相当复杂(至少对我而言),因此我尝试把它们简单化,然后稍微扩展一下 \ joncharbonneau.substack.comEncrypted MempoolsMEV & Censorship [凌晨 2:57 ∙ 2023 年 3 月 15 日\ \

在这篇帖子中,我将简要概述一些 FCFS 提议的变体。

时间提升

意识到简单 FCFS 的局限性和负外部性,Arbitrum 开始探索其的新变体。最近,他们提出了他们的 时间提升 机制。基本内容如下:

  • 可信的中心化顺序器继续为用户事务操作一个私有内存池

  • 顺序器在接收每笔交易时进行时间戳记录

  • 默认情况下,交易将在接收后 500 毫秒后执行

  • 用户可以选择为其交易支付额外的优先费用,给予其一个“时间提升”,将时间戳减少至最多 500 毫秒

提升是通过以下公式计算的:

其中:

  • F = 交易的优先费用

  • g = 可用的最大时间提升(500 毫秒)

  • c = 待确定的常数

如今,寻求者只能通过尝试尽量减少与 Arbitrum 顺序器的延迟来表达他们对快速包含的偏好(打开许多连接,尽量物理接近,基础设施投资等)。相较而言,时间提升则将减少对上述延迟优势投资的激励,因为寻求者现在可以通过其优先费用出价来表达对快速包含的偏好。

这无疑是对天真的 FCFS 的明确改进,但在我看来仍然存在一些缺点:

  • 这一机制减少了延迟竞赛的激励,但并没有消除它。最小化延迟将始终允许寻求者在这里投标比竞争对手更少,并且图表的曲度使得这种延迟优势在高价值 MEV 机会中尤其有价值。

  • 不清楚在超过单一顺序器的情况下,如何高效地去中心化内存池的隐私和时间戳记录。

  • 寻求者的出价缺乏表达性。寻求者只能竞标更快的包含,但无法表达更复杂的偏好,就像今天的以太坊 L1 中更灵活的明确拍卖情况一样(例如以太坊 L1 今天)。

  • 与此相关的是,如果在这个层次实现,将没有能力撤销失败的出价

FBA-FCFS

另一种提议(FBA-FCFS)是去年的 Xin 提出的,来自 Flashbots。这实施了一种频繁批次拍卖样式的变体,类似于 Themis。在这个提议中:

  • 节点向领导者报告部分排序,领导者然后将这些聚合成一个无序批次。在设定的批处理时间内,假定所有交易都在同一时间发生“公平粒度”(例如,也可以是 500 毫秒)。

  • 然后,领导者通过 某种形式的拍卖 来解决批次内弱排序。

与时间提升提议类似,XY的 Contributions 前面还有一些尝试保证相对快速的包含(<500 ms 提议,但可以更改)并通过可信节点防止抢跑。同样,它通过允许寻求者通过费用显现出其偏好减少了延迟竞赛的驱动(尽管并未完全消除所有优势)。

在给定批次的结束,对于“快寻求者”,可以存在较难匹敌的延迟优势:

来源:区块空间市场中的延迟军备竞赛关注

这是一种 广为人知的这些类型拍卖的方面。更长的批处理时间可能还会使这种延迟优势 相关性的减少百分比降低,虽然又可能是更高的批处理值。较长的块时间可能对 MEV 产生进一步影响(例如更新时间滞后)。

总结一下这个延迟优势:

  • 时间提升 - 较低的延迟是始终有利的(较低延迟 = 平均来说可以始终出更低竞标)。

  • FBA-FCFS - 较低的延迟是有时有利的(当“慢寻求者”和“快寻求者”之间的小差异揭示相关信息时)。

关于时间延迟:

  • 时间提升 - 所有用户交易在收到后,默认为延迟 500 毫秒。

  • FBA-FCFS - 批量时间为 500 毫秒,因此在此窗口内收到的用户交易可以在其中被包含,平局在平均上更接近中点<500 毫秒。

FBA-FCFS 的变动性更高(例如,根据接受时间,交易可能滑向下一个批次),但是没有支付优先费用的普通用户交易的包含时间应该在平均上较低。时间在时间提升模型中是连续处理的(没有块的概念),而在 FBA-FCFS 模型中时间是离散的。总体上:

延迟与去中心化

这篇帖子已经超级长了,我累了,所以请阅读 Phil 的这篇帖子。谢谢。

结论

希望你对实现顺序器去中心化的路径和相关障碍有一个相当不错的概述。这是聚合在未来几年成熟过程中需要面对的众多挑战之一。

一些其他有趣的探索方向包括:

  • 不同层次的交互 - 随着顺序器的去中心化,它们如何与交易供应链的不同部分互动?什么样的拍卖(例如,SUAVE)应该接入去中心化顺序器集合(例如,共享顺序器)?

  • 交易费用机制 - 多维资源定价 vs. 状态定价

  • L2 费用市场 - 收取“L2 原生”费用(例如,L2 拥挤)和“L1 原生”费用(例如,为 L1 DA 付费)

  • ZK 证明市场 - 如何正确激励去中心化和无权限的 ZK 证明市场。这是 L2 费用的重要子集,在其他上下文中也很相关。

  • 聚合商业模型 - 聚合代币及其构建团队如何累积价值并实现可持续性。

  • 可升级性和治理 - 去中心化这些并减少信任假设,同时保持灵活性。

  • 欺诈与 ZK 证明 - 构建更强健的机制,例如 多证明者

    • *

感谢 Ben Fisch, Josh Bowen, [Cem Özer](https://twitter.com/cemozer?s=21&t=8E8g87UAAkvOwetwzgwMw), Kelvin Fichter, Zaki Manian, Hasu, Robert Miller, Tarun Chitra, Sreeram Kannan 和许多其他人对此议题的贡献和良好讨论。


免责声明:本文中表达的观点仅代表作者个人,并非 DBA Crypto, LLC 或其附属公司的观点(连同其附属公司统称为“DBA”)。本文作者在 ETH 上有实质性的个人立场;Layr Labs, Inc.; Celestia; 和 Sovereign Labs Inc.

本内容仅供信息目的,不应被视为投资决策的依据,并且不是,而且不应被假设为完整。本文内容不应被解释为法律、商业或税务建议。对此任何证券或数字资产的提及仅供说明 purposes, and do not constitute investment recommendations or offers to provide investment advisory services. 本文不构成投资建议或出售合伙利益的邀请或虚假宣传。

某些信息来源于第三方。尽管来自被认为可靠的来源,DBA 对信息的准确性不作任何声明。



  • 原文链接: joncharbonneau.substack....
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
joncharbonneau
joncharbonneau
江湖只有他的大名,没有他的介绍。