BIT:万字详谈Rollup的去中心化路径

原文来源:joncharbonneau.substack.com

原文作者:JonCharbonneau

原文翻译:Franci,ECN

目前的rollup基本上都是需信任且需许可的:

强制交易打包机制?——即便出现rollup运营者审查用户的情况,用户也应该能够强制打包其交易,以实现抗审查。

L2定序器去中心化和(可选)本地共识?——单一型定序器、PoA、PoS领导者选举、PoS共识、MEV拍卖、基于基础层的rollup、PoE,等等。

共享定序器和跨链原子性?——这是真正有趣和完全新的东西。

MEV可捕获设计?——我将简要地介绍FCFS(先到先服务)的一些变化。对于加密的交易池,你可以参考我最近的帖子。

许多其他提高rollup安全性的要求将不在本文的讨论范围内(比如减少升级密钥的权力、实现强健的和无需许可的证明,等等)。

智能合约Rollup(SCR)

首先,简单复习一下SCR的工作原理,这是我们当前在以太坊上常见的rollup。从高层次来说,一个SCR基本上包括:

1.一批有序的输入数组。

2.在它们上面运行的代码。

3.对这些输入运行函数产生的确定性输出。

cr:?HowRollups*actually*work-KelvinFichter

更具体地说,传统的定序器通过向其在L1的智能合约发布rollup区块的状态根和calldata来对rollup区块生成承诺。新的区块不断扩展rollup对区块头。链上合约运行一个rollup的轻客户端,将其区块头的哈希值保存起来。在收到有效性证明后,或在欺诈证明窗口期过后,该智能合约就会敲定结算。如果一个未被敲定的ORU区块无效,它会因为欺诈证明对提交而被回滚,最后成为孤块。证明帮助保护桥接:

交易batch的提交应该需要应用某种类型的保证金/押金规则,以抑制恶意行为的发生。例如,当一个欺诈性的batch被提交了(即无效的状态根),押金将被销毁,并按某种比例分给欺诈挑战者。

SCR具有?“合并的共识”?-即可在链上验证的共识协议。Rollup协议可以完全在L1智能合约中运行。它不影响主链的任意共识规则,也不需要这些规则的支持。

去中心化共识协议通常包括四个主要特征?(注意,以下是一个非常简化的版本,并没有完全列出共识协议的各种类型。比如无领导协议):

1.区块有效性函数?-状态转换函数。区块有效性在链下执行,然后通过有效性证明或者欺诈证明机制来证明其有效性。

2.分叉选择规则?-如何在两条原本有效的链之间选择。Rollup旨在从构造上实现无分叉,所以不严格要求有一个复杂的分叉选择规则。

3.领导者选举算法?-选出一位领导者,ta可以通过添加新区块以扩展链头,从而使区块链不断延伸。

4.抗女巫机制?-PoW、PoS等

可以认为1和2已经实现了,那么对于去中心化一个定序器的最低要求便是某种形式的抗女巫攻击领导者选举。?FuelLabs一直都是这个阵营的支持者,他们认为PoS:

不应该用于rollup中的完全共识协议(即rollup验证者/定序者将对区块进行投票)

应该只用于rollup中的领导者选举

当然,也有其他论据很好地反驳了FuelLabs的观点,认为需要有L2本地共识。稍后会有更多关于这方面的内容。

SCR?-rollup规范链由L1智能合约决定

SR?-没有L1智能合约来决定rollup规范链。Rollup主链可以由rollup节点自己决定(检查L1DA,然后在本地验证分叉选择规则)。

Celestia

相关说明:有人提出一个有趣的观点,即不存在全球规范链(只有决定哪条链为规范链的桥接),对此有人提出有力的反驳。以及其他相关长推,阐述了rollup在主权性和(自动)可组合性之间的权衡。我鼓励大家浏览一下这些观点,还有最近这条关于Bitcoin主权rollup的长推。

在任何情况下,上述所讨论到的“规范链”框架都很容易理解,并且这不是本文的重点,所以我还是会继续使用“规范链”这个术语。有关rollup一般架构的更多背景,请参考此处。

用户发起的强制交易打包

智能合约Rollup

如上所述,定序器通常负责批处理交易并将它们发布到L1智能合约。但是,用户也可以自己直接在合约中插入一些交易:

当然,这是低效且昂贵的,所以定序器将负责批处理交易,并在常规的过程中一起提交这些batch。这将在许多交易中摊销固定成本,从而实现更好的压缩:

定序器承诺最终在L1上发布这些交易,同时我们可以计算输出,以获得更软的预确认(softerpre-confirmation):

当定序器将这些交易发布到L1时,输出被敲定:

通常情况下,用户只会在从L1桥接资产到L2时需要自己提交交易。这被添加为L1合约的输入,它告诉L2可以铸造由相应L1锁定资产支持的资金了。

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

因为我来自L2,所以定序器可以发起这个提款请求并提交给L1。然而,这样做的话就说明需要信任L2定序器的抗审查能力(CR,censorshipresistance),也就是说不再获得L1的同样安全保证。也许这些定序器不喜欢你,或者定序器宕机了,所以你只能永远卡在L2上了。

Rollup可以通过多种措施在本地提高自己的CR。这可能包括具有高价值质押的L2共识集、一些交易打包列表的各种变体,添加阈值加密等等,以最大限度地减少L2用户审查的可能性。这些都很棒,但理想情况下,我们还是希望L2用户拥有与L1相同的抗审查保证。

如果用户正在被审查,他们需要一些方法来强制退出rollup或者强制将他们的交易打包到L2中。这就是为什么L2用户应该保留做一些事情的能力,比如自己可以强制将他们的L2交易直接包含到L1合约中。例如,被审查的用户可能能够直接向L1提交单个操作的batch。

来源:?Starknet逃生舱口研究

但是,如果L2用户的唯一选择是将交易直接强制包含到L1中,这并不理想。这对于许多低价值用户来说可能是不可行的,特别是当L1的交互成本越来越高时。更高级的设计可能能够绕过这个限制,在rollup之间强制进行原子交易。KalmanLajkó?正在研究一个迷人的设计,强烈推荐大家阅读。它希望在具有共享证明和共享DA层的系统中启用跨rollup强制交易打包。

主权Rollup

强制打包在SR中的运作不同,因为如前所述,它们执行的分叉选择规则与SCR不同(SovereignLabs写了一篇关于这方面的帖子)。

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

SR可以将它的ZK证明发布到L1DA层,以calldata/blobs的形式向所有人公开(即使L1没有验证它们)。然后,只需添加一个规则,即新证明只有建立在前一个有效证明的基础上才有效。该规则可以在客户端强制执行,但它随后会要求用户扫描链的历史,直至创世区块或者某个检查点。

而另一种方式是,可以将calldata与L1区块头联系起来,并且可以添加一个声明“我已经扫描了DA层的证明(从区块X开始,到区块Y结束),并且这个证明基于最新的有效证明构建”。这在证明中直接证明了分叉选择规则,而不需要在客户端强制执行。

由于已经扫描了证明,同时还可以证明已经扫描了任何强制打包交易。任何人都可以在愿意的时候直接将强制打包交易发布到L1DA层。

交易敲定的层级&ZK用于快速敲定

以太坊上的链上证明验证通常非常昂贵,因此目前的ZKR(如StarkEx)倾向于每隔几个小时才向以太坊发布一次STARK。相对于交易的数量,证明的增长往往非常缓慢,因此这样对交易生成batch可以有效地节省成本。然而,这么长的敲定时间并不理想。

如果一个rollup只是在链上发布状态差异(而不是完整的交易数据),那么即使是全节点也不能在没有证明的情况下确保这种最终确定性。如果rollup的完整交易数据被发布到链上,那么至少任意全节点都可以与L1一起敲定交易。

通常情况下,轻节点只依赖于中心化的定序器进行软确认。然而,ZKR可以在p2p层快速生成并分发ZK证明,以便所有轻客户端实时查看,并以L1速度为它们提供最终确定性。稍后,这些证明可以递归地批处理并发布到L1。

这就是?SovereignLabs计划要做的,还有其他类似方案,比如?Scroll计划在链上发布中间的ZK证明(但不验证它们),因此轻客户端可以相当快地同步。使用这两种结构,rollup可以以L1的速度开始敲定区块,而不是等待将batch发送上链以节省开销。但是请注意,在这两种情况下只是将“硬敲定时间”降低到绝对最小值(L1速度)。

不同的定序器设计永远不会比L1区块时间更快地敲定。不同的定序器设计所能做的最好的事情就是提供比L1区块时间更快的预确认,不同设计提供的确定性水平不同(例如,你可能会相信具有高价值质押的去中心化共识集的L2的预确认,而不是相信单一型需信任的定序器的预确认)。

PatrickMcCorry?最近也对?rollup交易最终确定性的层级进行了很好的概述。现在你可能已经明白了基本的概念:

交易“最终确定性”具有不同的层级,这取决于谁提供了承诺(以及rollup结构是怎么样的)

不同的参与者在给定的时间会对“真相”有不同的认知水平(例如,L2轻客户端、全节点和L1智能合约将在不同的时间了解相同的“真相”)

CR?—如上所述,用户强制打包交易的机制。

活性?—如果一些主要的定序器宕机了,所具备的一些热备份选项(类似ZKR证明器和ORU欺诈证明的备份应该是无许可的)。如果备用定序器也宕机了,任何人都可以顶上。

例如,备用定序器可以由rollup的治理选出。通过这种设置,用户获得了安全性、抗审查和活性。即使从长远来看,单个活跃型的定序器也可能是一个可行的选择。

Base很可能是一种趋势的开始。公司现在可以管理和优化他们的产品,就像他们对企业区块链的炒作一样,但现在它实际上可以成为一个无需许可的、安全的和可互操作的链。

Base打算最终去中心化他们的定序器集,但关键是他们并不严格地“需要”去中心化,而其他方案并不是(或者只需要非常有限范围内的去中心化,如一个小规模的定序器集)。需要明确的是,这需要rollup来实现必要的步骤,来确保rollup是安全的且维护抗审查性(移除任意的即时升级功能、实现健壮的证明、强制交易打包、MEV拍卖等)。而当前的rollup并不安全。

这将是对中心化/托管产品的巨大改进,而不是最大限度地取代去中心化产品。Rollup只是扩展了设计空间。这在很大程度上也是为什么定序器去中心化并不是大多数rollup团队的首要任务——对于确保用户安全、抗审查性和减少对rollup运营者的信任,其他项要重要得多。

然而,如果用户/其他方需要介入以维持活性和“实时抗审查性”(不同于通过L1进行强制打包交易获取的“最终抗审查性”),这仍然不是理想的。基于强制打包交易机制,低价值用户介入可能成本高昂或不切实际。高度偏好实时抗审查和活性最大保证的rolllup将寻求去中心化。在运营单一许可型定序器时,也可能存在监管方面的考虑。

Arbitrum的AnyTrustDA?的委员会。但重要的是,定序器在这里的权力要小得多(用户不依赖于rollup定序器来确保安全,不像多签桥接运营者可以提取锁定的资金)。总的来说,比起单一型定序器,这种方案具有更好的抗审查性和活性,但仍然不完善。

PBS类型的拍卖系统将会出现,类似于我们今天在L1以太坊上看到的。在这种情况下,费用/MEV可能会流向质押者。如果拍卖被纳入协议,那么费用/MEV可能会进入某种形式的rollupDAO财库(尽管在两种情况下它也可以被分配、销毁等等)。

领导者选举的无需许可PoS

任何人都可以作为定序者无需许可地加入,但前提是必须质押(可能是L2的原生代币)。质押机制可以通过智能合约在基础层建立,也可以直接在rollup中建立。Rollup可以使用这个PoS某种形式的链上随机性,以此实现领导者选择机制(像一些L1做的那样)。

任何人获得区块排序权的概率=ta的质押占总质押的比例。可以通过丢失奖励、怠工惩罚和罚没对错误/恶意定序器施加惩罚。

请注意,由于上述原因,这不要求定序器达成共识。Rollup使用L1作为共识,因此不需要本地共识(localconsensus)。质押权重在轮换机制中起主导作用,决定了哪些定序器可以提议区块,但他们不需要对其他定序器提议的区块进行投票。

这可以给任意长度的epoch授予排序权。某个参与者可能有权为100个连续的rollup区块排序,或者1000个,等等。更长的周期可能效率更高,并且在给定的时间里只需要一个定序器。然而,给扩展的垄断者授权也会带来其他外部效应。或者,领导者可以像普通L1那样交替使用每个区块。

Dymension

Dymension?就是这样一个项目。DymensionHub将是Cosmos中典型的使用诚实大多数PoS机制的L1。它的L2(“RollApp”)将使用它来结算和达成共识,同时依赖Celestia作为数据可用性存储(因此这些L2实际上是“optimisticchain”而不是“rollup”)。

根据他们的?Litepaper,去中心化的RollApp排序将需要质押DYM(Dymension的原生资产)在DymensionHub中。领导者选举由相应的DYM质押数量决定。这些定序器将从各自的rollup中获得收入(费用和其他MEV),然后向DymensionHub和Celestia支付相关的基础成本。

由于这种机制,几乎所有在这个堆栈中捕获的价值都会直接累积到DYM代币中。而如果把自己的原生代币用于排序的rollup(如StarkNet打算使用STRK所做的那样,下文会介绍)会将价值累积到他们自己的代币中。DymensionHub的设置类似于以太坊rollup只能使用ETH进行定序者选举。

在我看来,这极大地降低了在这样的结算层上部署L2的动机。大多数L2团队自然希望他们自己的代币能够积累有意义的价值(而不仅仅是用作费用代币,就像这里可能的那样)。毕竟他们是在经营一个企业。

PoS定序器领导者选举?—如上所述,某种形式的领导者选举是必要的。

PoS共识?—激励L2验证者在交易被L1敲定之前达成临时的L2共识,提供更强的预确认。如上所述,这点不严格要求,但它是一个有吸引力的选择。

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

DA的PoS共识?—?用来激励提供替代性的DA链(alt-DA,比如volition),这需要单独的共识。

证明?—?激励证明者生成STARK。

交易流程如下:

1.定序?—定序器排序交易并提议一个区块

2.L2共识?—StarkNet共识协议对已提议的区块签名

3.证明生成?—证明者为已达成共识的区块生成证明

4.L1状态更新?—向L1提交证明以更新状态

有关StarkNet计划的更多细节,可以参考这个系列文章。

使用领导者选举和本地共识的PoS?—“我只接受L2共识签名过的区块。”

使用领导者选举的PoS?—“目前只有选定的定序器能够提交区块。”

如果rollup没有本地共识,需要做的就是:

使rollup区块提议过程无需许可。

创建一些标准,为给定的区块高度选择最佳的区块

让节点或结算合约强制执行分叉选择规则

继承L1的共识和最终确定性

注意,不管是哪种情况,L2的价值都可以累积到rollup代币中。即使L2代币只是用于某种形式的领导者选举(而不是共识投票),排序权产生的价值仍然会累积到L2代币中。

L2共识的缺点(只有领导者选举)

现在让我们来讨论在L1敲定之前具有/不具有本地共识之间的权衡。

FuelLabs团队提出的一个论点是,L2本地共识会降低抗审查能力。“这使得大多数验证者可以审查新区块,这意味着用户资金可能会被冻结。Rollup不需要PoS来守护,因为rollup是由以太坊保护的。”?这里是一个有点灰色的区域。如前所述,即使定序器出现审查交易的情况,rollup仍然可以提供抗审查方案(例如,直接强制交易打包进入L1,或更复杂的设计,如?KalmanLajkó?正在研究的那个)。

另一种说法是,完全的共识只是"效率低下"。例如:

一次只有单个定序领导者在单个盒子中运行所有东西,

一次只有单个定序领导者在单个盒子中运行所有东西,然后所有其他节点需要对该提议投票以及达成共识,

前者比后者简单得多。

当然,这因所选择的特定的定序器设计和共识机制而有很大不同。

此外,请注意,有些人对在定序器去中心化中使用PoS提出了担忧,如这里和这里。L1与L2的错综复杂的关系可能使处理某些类型的攻击更具挑战性。

添加L2共识的优点(加上领导者选举)

对于定序器来说,最大的目标可能是在L1提供的完全安全保障之前给用户提供更快的软确认。看一下?StarkNet的机制要求:

“强健和快速的L2最终确定性是StarkNet的目标。由于只有在交易batch被L1证明之后,StarkNet的状态才会被敲定(可能需要几个小时)。因此,在下一个batch被证明之前,L2去中心化协议应该就规划好的交易执行顺序做出有意义的承诺。”

添加某种形式的共识(由许多定序者提供的经济安全支持)有助于在这期间提供更强的保证?(rollup区块的预先确认是没问题的):

“Starknet共识必须具有很强的责任感,即违反安全和活性的行为可以通过罚没任何一部分参与者(包括恶意的大多数质押)来执行惩罚。”

Rollup也可以灵活地尝试不同共识机制光谱之间的权衡点,因为它们最终总是可以回到以太坊L1的安全性和动态可用性。

Vitalik早在2021年就提出了这个“完全无政府状态”的想法。允许任何人在任何时间提交交易batch。第一笔扩展rollup的交易会被接受。它满足了上面讨论如何去中心化定序器的两个最低要求:抗女巫?—由L1提供的抗女巫能力(即交易费用和区块大小/gas上限)。

领导者选举?—领导者选举是隐性且延后的。

这就足够了,因为L1已经提供了安全性。如果L2区块已经发布到L1上,那么只有当它们是无效的或构建在无效块之上时(将被回滚),它们才会变成孤块。如果它们是有效的,并且发布到L1,那么它们具有与L1本身相同的安全保证。

Vitalik指出这种方案有一个很大的问题是,它的效率会非常低。多个参与者可能并行提交batch,并且只有一个会被成功打包。这在生成证明时浪费了大量的精力,或者说发布交易batch花费了许多不必要的gas。想要知道你的交易是否会很快被打包,这是非常麻烦的,而且效益很低。

基于基础链的Rollup(BasedRollups)

然而,现在可以通过PBS使这种无政府状态的设计可行。它允许更严格的排序,每个L1区块最多一个rollup区块,因而不会浪费gas。(尽管可能有浪费的计算)。L1构建者可以只打包最高价值的rollup区块,并根据搜索者的输入出价构建该区块,这与任何L1区块类似。为了避免计算的浪费,默认情况下也可以合理地使ZK证明过程需许可?(具有相应的机制允许无需许可地回滚)。

这就是?JustinDrake?最近提出的?“基于基础链的Rollup”?的核心理念。他使用这个术语来指代由L1(“基础”层)主导排序的rollup。L1提议者只需确保在他们自己的L1区块中纳入rollup区块(大概是通过构建者)。这是一个简单的设置,可以立即提供L1活性和去中心化。他们可以避免一些棘手的问题,比如在L2定序器正在审查的情况下解决强制打包交易的问题。此外,由于不需要定序器签名验证,因此可以减少一些gas开销。

一个有趣的问题是关于这些L2交易在哪里被处理。L2客户端需要将这些交易发送到某个地方,以便L1搜索者/构建者接收它们并针对它们创建区块和数据blob。它们可能会被发送到:

L1交易池?—它们可以与一些特殊的元数据一起发送给“知情的”搜索者/构建者来解释它们。但是,这可能会显著地增加L1交易池上的负载

为每个L2提供的新的p2p交易池?—沿着这个思路的一些解决方案似乎更有说服力。除了他们平常的渠道之外,搜索者/构建者将开始检查和解释这些新交易池的交易。

一个明显的缺点是基于基础链的Rollup限制了定序器的灵活性。例如:

MEV缓解?—Rollup可以创造性地使用FCFS、加密交易池等各种变体。

预确认?—L2用户喜欢快速交易“确认”。基于基础链的Rollup最多会回到L1区块时间(?12秒),或者等待更长的时间来发布完整的交易batch。

有趣的是,这正是早期rollup团队正在构建的:

https://twitter.com/DZack?23/status/1635503593070657536??s=?20?

Justin指出,再质押(restaking)可能会有所帮助。

https://twitter.com/jon_charb/status/1635898303106756609??s=?20?

这些都是?EigenLayer?的研究领域,至少在他们的白皮书中提到过。目前还不清楚这是否是一个切实可行的解决方案。为了通过再质押有效地改善这些缺点,可能会寄望于所有的质押者都选择运行它。因此,这个想法这样来实现似乎更合乎逻辑:让想要这样做的质押者子集选择进入一个单独的共享排序层(稍后会详细介绍)。

效率证明(ProofofEfficiency,?PoE)

去年,PolygonHermez提出了一个名为?PoE?的提案。这是另一种专门针对ZKR的L1定序变体。这里的定序器是一个完全开放的角色,任何人都可以提交交易batch(即完全无政府状态/基于基础链的Rollup,因此它具有相同的限制)。PoE机制由两个参与方组成两个步骤:

定序器

定序器收集L2用户交易并通过发送一个L1交易(其中包括所有选定的L2交易的数据)来创建一个交易batch。定序器将根据收到的经济价值来提交区块,或者为用户提供服务级体验(例如,在每个L1区块中发布一个交易batch,即便这会使L2交易更昂贵,因为用户想要交易更快完成)。

定序器将支付L1gas费来发布交易batch,并且协议在MATIC中定义了必须存入的额外费用。一旦发布,获胜的batch立即定义新的链头,允许任何节点确定性地计算出当前状态。然后需要一个有效性证明来敲定轻客户端的见证(包括L1智能合约)。

聚合器

聚合器在这里指的是ZK-证明器。同样,这是一个无需许可的角色,任何人都可以竞争。非常简单:

携带交易数据的已排序的batch按照它们在L1上出现的位置在L1上排序。

PoE智能合约接受更新到了最新有效状态的第一个有效性证明,这个有效状态包括一个或多个尚未被验证的已提议的batch。

聚合器可以自由地运行自己的成本效益分析,以找到发布证明的适当频率。如果他们赢得了比赛,他们会得到一部分费用,但如果等待更长的时间以发布新的证明,他们的固定验证成本将摊销到更多的交易中。如果聚合器晚发布了一个证明(它并没有证明一个新的状态),那么合约将只执行一个复原函数。证明器浪费了计算,但他们会省下大部分gas。

费用的分配方式如下:

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

所有交易费用将发送给每个batch相应的定序器。

定序器为获取创建单个batch的权限而存入的费用将被发送到聚合器,聚合器将该batch包含到有效性证明中。

纯分叉选择规则

Rollkit?SR有一个非常类似的“纯分叉选择规则”概念,如这里所述,指的是没有特权定序器的任意rollup。节点听从DA层的规则进行排序,并应用“先到先得”的分叉选择规则。

L1排序经济学

这些L1排序设计对经济学有很重要的影响,因为?L2交易产生的MEV现在将在L1区块生产者级别被捕获。在“传统的”L2排序模型中,L2交易产生的MEV由L2定序器/共识参与者/拍卖机制捕获。目前还不清楚在这种情况下,有多少MEV会泄漏到基础层。

对于这是好事还是坏事,很难说:

好处?—这有些像“L1经济联盟”(例如,ETH可以捕获更多价值)。

坏处?—有人会担心这种基础层激励?(例如,比特币矿工的中心化风险,但也许为时已晚)。

利用L1排序可能也行得通,特别是能够更容易地启动一个rollup,但让它们放弃如此多的MEV给L1(而它们本身自己就可以捕获这些MEV)是不太可能的。Rollup的最大好处之一确实是经济上的——一旦DA层开始扩展,这些成本就会下降,他们只需要向L1支付很少的费用。更慢的区块时间和原始的MEV方法对用户来说也不太理想。

如何激励证明者创建这个证明

如何使提交证明无需许可,从而使其成为一个有竞争力和具有鲁棒性的市场(例如,主要的证明者宕机了也不会影响网络)

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

竞争市场

在一个极端,你可以有一个开放的竞争模式。在一个无许可的证明者市场中,所有的证明者都争先恐后的为rollup定序器/共识产生的区块创建一个证明。第一个创建证明的人可以获得指定给证明者的任何奖励。在寻找最佳证明者方面,这种模式是非常高效的。

这看起来非常类似于工作量证明挖矿。然而,这里有一个独特的区别——证明是确定性的计算。因此,一个具有较小但始终如一的优势的证明者几乎“总是”会赢。这个市场很容易形成中心化的局面。

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

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

基于轮换的机制(如质押权重)

或者,可以在证明者之间轮换,让他们每个人都有机会(例如,基于一些质押,亦或是基于声誉)。这样可能更加去中心化,但可能会带来证明延迟这样的低效率情况(“慢”的证明者将有机会创建证明,而另一个证明者可能已经有能力更快更有效地创建证明)。然而,它可以防止许多证明者竞相创建一个证明而浪费了计算,毕竟最终只会有一个证明有效。

此外,如果轮到的人不能产生证明(无论是恶意的还是偶然的),就出现问题了。如果轮次的时间很长(例如,当时轮到的证明者可以垄断好几个小时的证明生成),并且证明者宕机了,协议将很难恢复。如果轮次时间很短,其他证明者可以介入并赶上主要证明者未能生成证明的地方。

你也可以允许任何人发布证明,但只有指定的证明者才能在给定的时间内获得奖励。所以如果这些指定的证明者宕机了,另外的证明者可以发布证明,但他们无法获得奖励。这将是无私的,因为花费资源进行计算却没有回报。

Scroll正在探索更多基于轮换的方法,将执行跟踪分配给随机选择的“roller”(证明者):

还有许多有趣的问题,即在排序时应如何在用户层面上收取证明费用。关于这些主题的进一步讨论可以在这里找到:

-Scroll?的?YeZhang?在他的文章《去中心化的zk-Rollup》中讨论了在不需要L2共识的情况下,这种基于质押MEV拍卖来获取排序权的轮换roller网络的可能性

-《Scroll架构的概览》提供了一个关于可能的roller模型的更多细节

-Starknet去中心化协议IV-协议中的证明

-Starknet去中心化协议VI-TheBufferProblem

躺平?—不要再担心如何去中心化你的定序器了,这很难!嵌入这个选项就好了。不需要招募和管理一个额外的验证者子集。虽然总会遇到很多打着“模块化”名号的融资宣讲稿,这确实是一种非常“模块化”的方法——将交易排序剥离到单独的一层。SharedSequencing(共享排序)实际上是一个SaaS(排序即服务)公司。

汇集安全性和去中心化?—让单个排序层建立强大的经济安全性(更强的预确认)和实时抗审查,而不是为每个单独的rollup执行许多小委员会。

快速交易确认?—其他单一型rollup定序器也可以做到这一点,但请注意,共享排序情况下用户还可以获得超快的亚L1区块时间预确认。

跨链原子性?—在链A和链b上同时执行事务(这个很复杂,所以我将在下文更深入地展开)。

简单地使用本地L1作为许多L2的定序器,基本上有几个缺点:

仍然仅限于L1的数据和交易排序吞吐量

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

L1排序所能做的最好的事情是消除L1的计算瓶颈(比如,如果交易执行是吞吐量的瓶颈),并在通信复杂性上实现小的因素改进。

那么,我们能否设计出专门的、更高效的共享排序层,而不是让L1来做这件事……

将执行与排序分离

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

这里的关键属性是“执行和排序分离”。这样情况下共享定序器:

为那些选择将其作为排序层的各种链的交易排序

不执行(或证明)?这些交易但对其生成结果状态

排序是无状态的?——共享定序器节点不再需要为所有不同的rollup存储完整的状态。它们移除了执行计算。传统定序器目前面临的巨大瓶颈已经不复存在。

当把执行从共识中抽离出来时,共识的效率就会变得特别高。这个过程只是被限制在信息广播层(因此变得很快)。如果节点所要做的只是生成已排序的交易区块,并在不执行所有操作的情况下就该区块达成共识,那么节点可以非常高效。执行和证明可以在排序共识达成后由另一方负责。

汇集定序器安全性和去中心化

共享定序器节点可以保持相对轻量级,甚至可以在水平上进行扩展(通过选择一个随机的共识节点子集来排序不同的交易子集)。结果——可能会使这个排序层更加去中心化。而传统的定序器则需要存储着链的大状态并对其实现完整的执行。

此外,我们将许多链上的资源汇集起来——不需要在许多rollup之间分割PoS共识。把它们都集中在一个地方。与许多自己实现定序者子集的rollup相比,这种方式可能会产生一个更加去中心化的定序者子集(抗审查),在这个子集上质押了更多可被罚没的价值(抗重组)。这很重要,因为:

排序?——是为rollup用户提供实时抗审查性和活性的第一道防线。

执行和证明?——可以在排序完成,没有强烈的去中心化要求。我们只需要一个诚实方就够了。

一旦交易排序的共识达成,执行(和证明)可以延迟到一个完全不同的链去进行:

软共识和排序?—共享定序器为用户提供快速的预确认

确认的共识和DA?—交易数据已在DA层上被敲定,供所有人查看

轻松执行和证明?—任何人都可以对确认后的交易状态执行和生成证明

在执行层进行的工作不需要去中心化,因为这不是抗审查的来源。单一型定序器对于抗审查来说并不理想,但这其中不利于抗审查的点与定序器的执行流程无关。它们的审查权来自于它们能够排序并打包交易的权限。而在执行层,共享定序器已经提供了排序好的交易输入,因此也提供了抗审查性。那么之后对状态承诺的计算和比较就不需要那么去中心化了。

软执行

快速软执行的第一步是用户喜欢的:

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

如果你只是依赖于像Celestia这样的基础层的共识,你就不能很好地保证这些关于排序和打包的软承诺。如果共享排序层具有一个质押了大量价值的去中心化委员会,那么它可以在快速出块(亚L1区块时间)上提供相当强的承诺。

因此,一旦共享定序器创建一个区块,用户就可以得到软确认。任何人都可以下载已达成共识的交易,并提前地将它们应用到状态中。这种确认的强度取决于共享定序器的构造(去中心化、经济安全、分叉选择规则等)。一旦数据实际发布到基础层,就可以将这些交易视为最终被敲定。然后可以生成状态根和相关证明的最终计算并提交。

懒人Rollup(LazyRollups)

“懒人Rollup”非常简单。这些rollup等到它们的交易全部被排序并发布到DA层,然后它们就可以下载这些交易,可选地应用一个分叉选择规则来选择一个交易子集,执行交易处理,并将这些交易应用到状态中。然后就可以生成区块链链头并进行广播。

注意,因为共享定序器不能以一种访问完整状态的方式产生区块,所以它们没有检查无效的状态转换的功能。因此,使用共享定序器的“lazyrollup”的状态机必须能够处理无效交易。节点在执行已排序的交易以计算结果状态时,可以简单地删除无效的/回滚的交易。实施即时执行的传统rollup就没有这种限制。

如果rollup要求访问状态来压缩交易,再将它们打包上链,在这里是行不通的。例如,在这里rollup有一个区块有效性规则,其中区块中包含的所有交易都是有效的。如果rollup需要压缩交易,但不需要状态访问,那么可以专门为这种类型的rollup创建一个特殊的共享定序器(例如,类似Fuelv2或具有私人交易池的rollup)。

支付gas

要让这个共享定序器运行,必须有某种机制让用户为他们的交易打包到L1中而付费。可以简单地使用大多数rollup交易类型中已经包含的现有签名和地址来支付共享排序层的gas?费用。这将要求共享定序器了解不同实现所需的最小状态,例如:解析签名、nonce,从帐户中减去气体,等等实现。或者,支付可以涉及共享定序器上的一些封装交易,任何人都可以为打包的任意数据付费。这是一个开放的设计空间。

分叉选择规则

Rollup能够继承它们所使用的共享定序器的分叉选择规则。然后,rollup的完整节点实际上是共享定序器的轻客户端,它们检查某些承诺,以表明对于给定的区块高度,哪个rollup区块是正确的。

然而,继承共享定序器的分叉选择规则是可选的——你可以简单地要求rollup处理(不一定执行)提交到基础层的所有交易数据。它将有效地继承基础层的抗审查性和活性,但这将牺牲许多用户喜爱的共享定序器所拥有的功能。

MEV

假设一个rollup想要继承其共享定序器的分叉选择规则并获得快速的软执行,从MEV方面来说,这个共享定序器自然会处于一个非常中心化的位置。它决定rollup将遵守怎样的交易打包和排序。

然而,并不是说rollup必须执行共享定序器提供的交易,或者按提供的顺序执行。从技术上讲,你可以允许自己的rollup运营节点执行第二轮处理,以便在执行之后对共享定序器发布的交易重新排序。然而,如上所述,你将会失去大部分首先使用共享定序器的良好特性,因此这种情况似乎不太可能发生。

即使在这种情况下,共享排序层仍然可能存在MEV,因为它有权打包交易。如果你真的想,你甚至可以允许你的rollup在第二轮处理中排除某些交易(例如,利用一些有效性条件来排除某些交易类型),但这当然会变得混乱,减少了抗审查性,并再次失去共享定序器的好处。

交换共享定序器

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

然而,共享定序器实际上只是一个服务提供者——它们没有与之相关的有价值的状态。使用给定共享定序器的rollup可以保留分叉的能力,只需要一个较小型的硬分叉就可以转而支持其他排序机制(例如,当出现共享定序器提取了太多价值的情况)。这将有望保持共享定序器的竞争力。

网络效应可能会让这变得更具挑战性。如果许多rollup都开始使用共享定序器,并且它们获得了巨大的网络效应(例如,如果他们从许多链的潜在跨链原子性中获得了有意义的价值),那么除非其他rollup也愿意转移,否则脱离这个网络效应可能是很痛苦的。

好吧,Espresso刚刚公开宣布他们的共享定序器计划。它可以利用EigenLayer再质押者来为其共识提供安全保障。为了更好地可视化,下图为当前rollup的样子:

下图为rollup有了像Espresso这样的共享定序器之后的样子:

EspressoSequencer(ESQ)与Metro的总体思路非常相似。它的工作原理是一样的——将交易执行从排序中剥离出来。除此之外,ESQ还将为交易提供数据可用性。

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

简单说一下背景,以太坊目前使用Gasper作为其共识机制(CasperFFG作为敲定工具LMDGHOST作为分叉选择规则)。与此相关的“太长不读”是:即使在大多数节点可能退出网络(动态可用性)的悲观条件下,Gasper也能维持网络活性。它有效地运行两个协议(CasperFFG和LMDGhost),这两个协议共同维护一个具有敲定前缀的动态可用链。但是维持网络实时活性的同时,Gasper牺牲了交易的快速最终确定性(在网络允许的情况下尽可能快地确认交易的能力)。

总的来说,ESQ包括:

HotShot?—ESQ是建立在HotShot共识协议之上的,它优先考虑快速的最终确定性(乐观的响应能力)而不是动态的可用性,不像Gasper。它还能像以太坊一样,可以将支持的验证者数量扩展到令人难以置信的水平。

EspressoDA?—ESQ还为链提供可选的DA选项。该机制也用于扩大他们的共识。

定序器智能合约?—这个智能合约作为轻客户端验证HotShot共识并记录检查点(对已排序交易日志中的点的承诺)。此外,它还负责管理ESQ的HotShotPoS共识的质押者。

网络层?—使参与HotShot和EspressoDA的节点之间能够进行交易和共识消息的通信。

RollupRESTAPI?—L2rollup用于与Espresso定序器集成的API。

让我们仔细看看DA的情况。在乐观的情况下,高带宽节点将向所有其他节点提供数据,并且每个单独区块的可用性也由随机选出的小型委员会提供支持。考虑到针对小型委员会的DDoS和贿赂攻击的风险,可验证的信息分散(VID)?将用于提供可靠(但速度较慢)的备份路径以保证DA,只要所有节点中足够高的比例(按质押计算)没有受到攻击。

这个系统是为扩容而构建的,因此ESQ希望为选择其作为共享定序器的L2提供更便宜的DA。他们仍然会将他们的证明和状态更新结算给L1以太坊,但请注意,这将使使用ESQ的链默认成为“validium”或“optimistic链”,而不是完整的“rollup”(即他们的DA不受以太坊L1的保证)。它比数据可用性委员会(dataavailabilitycommittees,dac)?的简单实现更强大,但它比真正的rollup提供的安全保证要弱。

交易流程

定序器合约?—HotShot直接与其L1定序器合约进行交互。这个合约验证了HotShot共识,并为其他参与者提供了一个接口来查看它已排序的区块。该合约存储的是一个只能追加的区块承诺日志,而不是完整的区块。然而,任何人都可以根据承诺验证任何区块。

L2合约?—每个使用ESQ的L2仍然有自己的以太坊L1rollup合约。为了验证发送给每个rollup的状态更新(通过有效性/欺诈证明),每个rollup合约必须能够访问已认证的区块序列,这些排序过的区块带来确定的状态更新。Rollup合约与定序器合约连接以查询这些。

转发到共享定序器的交易将被排序,然后在L1上敲定之前发送回rollup的执行器和证明器中。共享定序器还向其L1定序器合约发送对区块的承诺,以及用于验证区块的一个证书。这允许L1rollup合约将rollup状态更新证明与被认证为共识输出的区块承诺进行比较。

交易流程的完整视图:

跨链原子性

正如Espresso文章中提到的,一个共享定序器可以提供一些和跨链原子性相关的令人兴奋的用例:

“跨多个rollup的共享排序层有望使跨链消息传递和桥接更便宜、更快、更安全。无需为另一条链的定序器构建轻客户端是一个免费的好处,没有成本,这为前期创造了潜在的节省空间。通过移除给定rollup独立地同步其他rollup共识的需要,跨rollup桥接也可以实现持续的节省。共享定序器还为桥接提供了安全优势:它可以保证当且仅当(甚至同时)一笔交易在另一个rollup中被敲定时,该交易才会在它所在的rollup中被敲定。

另外,共享定序器增强了用户在不同rollup交易之间表达原子依赖关系的能力。通常来说,Alice会在Bob的rollup-B交易t’之外签署和发布她的rollup-A交易t。在这种情况下,Alice的交易可能会在Bob的交易之前很长时间被排序,让Bob有一个长时间的中止选项(例如,中止交易)。这种可选性失衡可以通过共享定序器来缓解,其中Alice和Bob可以将两个交易作为一个已签名的捆绑包一起提交(即,定序器必须将这两个交易视为一个)。”

随着链上活动最终开始增长(我希望),这对跨域MEV?有影响。典型的例子是“原子套利”。同样的资产在两条不同的链上以两种不同的价格进行交易。搜索者希望通过在没有执行风险的情况下同时执行两笔交易来从中套利。例如:

交易?1(T?1)—在Rollup1(R?1)上低价购买ETH

交易?2(T?2)—在Rollup2(R?2)上高价出售ETH

要实现原子套利=要么两个交易都被填充,要么两个都没有被填充。如果两个rollup都选择到相同的共享定序器中,那么它可以为搜索者实现这种原子套利。在这里共享定序器可以保证:

T?1被包含在到R?1的指令流中,当且仅当:

T?2也包含在到R?2的指令流中

假设rollup虚拟机依次执行各自流中的所有交易(即没有无效指令,只是一些指令可能会抛出错误,但不影响状态),那么我们也可以保证:

T?1在R?1上执行,当且仅当:

T?2也在R?2上执行

然而,这和在共享状态机(例如,完全在以太坊L1上)上进行交易仍然是不一样的保证。如前所述,共享定序器不持有这些rollup的状态,并且它们不执行交易。因此不能完全保证某个交易(在R?1或R?2上)在执行时不会回滚。

直接在此基础上构建更高级的原语是有问题的。例如,如果试图在此共享定序器之上构建一个即时“销毁-铸造”的跨链桥接功能,该功能同时在完全相同的区块高度上执行以下操作:

烧毁R?1的某个输入

在R?2上铸造一个输出

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

R?1上的销毁行为可能会抛出一个意想不到的错误,例如被别的交易执行导致无效,但是

R?2上的铸造行为不会因为任何原因而无效,所以它会完全执行。

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

可能在某些情况下,只要这两个交易都包含在输入流中并因而被执行,就可以确定这两个交易的预期结果,但情况往往不是这样的。这是一个悬而未决的问题,这个过程可以:

保证?—T?1和T?2将包含在各自的流中,并且(可能)两者都会执行。

不保证?—成功执行两个交易和由此产生的预期状态。

这种“保证”对于原子套利(搜索者已经拥有在每条链上执行这些交易所需的资产)来说可能是足够的,但它显然不是共享状态机的同步可组合性。对于像跨链闪电贷这样的东西来说,这种保证本身是不足够的。

但是,当与其他跨链消息传递协议结合使用时,这在其他设置中可能仍然有用。让我们看看在与跨rollup消息传递协议一起使用时,如何促进跨链原子NFT交换:

-T?1将ETH从U?1(用户?1)移动到R?1上的SC?1(智能合约1)

-T?2将NFT从U?2(用户?2)移动到R?2上的SC?2(智能合约2)

-当且仅当SC?1首先收到来自SC?2确认已存入NFT的消息时,它才会允许U?2赎回ETH

-当且仅当SC?2首先收到来自SC?1确认已存入ETH的消息时,它才会允许U?1赎回NFT

-两个智能合约都实施了一个时间锁,这样如果任何一方失败,各方都可以收回他们的资产

这里的共享定序器允许两个用户在步骤1中进行原子提交。然后,使用某种形式的跨rollup消息传递机制来验证彼此的结果状态,并解锁资产以执行交换。

如果没有共享定序器使其以原子的方式进行,双方可以商定一个价格。但是U?1可以提交他们的交易,U?2可以等待并决定他们是否想要中止交易。而有了共享定序器,他们的交易是被锁定的。

共享定序器实现的跨链原子性的内容大概就这么多。总结:

这里所提供的保证的确切强度和有用性仍未得到证实

这可能对跨链原子套利非常有用,同样也可能对其他应用有用,如跨链swap和NFT交易(可能与其他消息传递协议结合使用)

提供额外的加密经济保证?(例如,存入抵押品)来担保某些类型的跨链交易可能会有所帮助

然而,你永远不会对你的交易结果具有无条件的保证(你可以通过在共享状态机上原子地执行交易来获得)

关于跨链原子性的其他有趣的主题,我推荐查看:

Optimism的超级链?——他们也正探索如何跨OP链使用共性定序器。共享定序器可以达成共识,然后尝试实现原子跨链交易。

Anoma——?HeterogeneousPaxos?和?Typhon?是非常不同的方法。

如前所述,Kalman的跨rollup强制打包交易。

显然,这个坐标图不是定律,一切都是高度主观的,它非常依赖于确切的结构。但是总的来说可以这样进行比较:

中心化定序器?——如果你完全控制系统,通常最容易实现你想要的任何功能。但是,在预确认强度方面具有次优的保证、强制退出可能是不可取的、活性也可能是次优的,等等。

去中心化的L2定序器?——与单一型定序器相比,质押了有意义的价值的分布式集合应该增加rollup的鲁棒性。但是,可能会根据它的实现方式,需要以延迟等方式为代价(例如,许多L2节点可能需要在确认rollup区块之前进行投票)。

L1负责排序?——最大化去中心化、抗审查性、活性等等。然而,它缺少一些特性(例如,快速预确认、数据吞吐量限制)。

共享定序器?——可以从中获得去中心化定序器的功能;与其他人共享定序器可以从中获益(得到某种程度的原子性);不需要启动自己的定序器子集,等等。然而,在L1最终敲定之前的过渡时期,与L1排序相比,确实具有更弱的保证。此外,共享排序层可以将多个rollup中的委员会、经济安全等聚合到一个地方(可能比每个rollup都有自己的委员会这种情况要强得多)。

最终,一旦区块在L1敲定,所有rollup都会返回到100%的L1安全性。大多数定序器设计只是试图在获得L1结算的完全安全之前的过渡时期给用户提供非常好的功能,但对状态的保证力度较弱。他们都有不同的权衡。

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

当我们讨论这些试图为许多其他链处理交易的共享层时,这里的差异可能会变得非常令人困惑。特别是?SUAVE?作为“排序层(sequencinglayer)”这一组件经常和其他术语一块出现,比如还有另一个组件是“针对rollup的去中心化区块构建者”。需要明确的是——SUAVE与上面描述的共享定序器设计非常不同。

让我们看看SUAVE如何与以太坊对接。SUAVE不会以任何方式被写入以太坊协议。用户只需将他们的交易发送到加密的交易池中。然后,SUAVE执行器网络可以为以太坊(或类似的任何其他链)生成一个区块(或部分区块)。这些区块将与传统的以太坊中心化构建者的区块竞争。以太坊区块提议者可以同时监听这两种区块,并选择他们想要提议的区块。

同样,SUAVE也不会取代rollup选择其区块的机制。例如,rollup可以实现PoS共识子集,其运作方式可能与以太坊L1的运作方式大致相同。然后,这些定序器/验证者可以选择由SUAVE为他们生成的块。

这与上文描述的共享定序器非常不同。**在共享定序器的设计中,rollup可以完全移除去中心化定序器的需要。他们只是简单地通过添加Metro或ESQ之类的可选项来外包这个排序功能,并且可以选择继承这些共享排序层的分叉选择规则。**以太坊、Arbitrum、Optimism等不会改变其分叉选择规则,以选择SUAVE进行所有的交易排序。

SUAVE并不关心你的链的分叉选择规则是什么,也不关心你的区块是如何被选择的。它旨在为任何域提供最有利可图的排序。请注意,与前面描述的共享定序器节点不同,SUAVE执行器通常是“完全有状态的”(尽管它们也可能满足某些不需要状态的首选项)。他们需要模拟不同交易的结果,以创建最优排序。

为了解两者的差异,在这里举一个用户想要进行跨链原子套利的示例。他们将交易提交给SUAVEvs.提交给共享定序器,获得以下保证:SUAVE共享定序器

那么现在我们讨论SUAVE如何与去中心化的rollup定序器、甚至共享定序器互动?Espresso似乎相信SUAVE与ESQ兼容,正如他们在文章中所描述的。ESQ旨在与私有交易池服务(如?SUAVE)兼容,这些服务可以作为区块构建者。它看起来类似于我们在以太坊上使用的PBS:

共享提议者?=共享定序器

共享构建者?=SUAVE

与PBS一样,构建者可以从提议者(即这里的定序器)那里获得一个盲承诺,来提议一个给定的区块。提议者只知道从提议区块中获得的总效用(构建者的出价),而不知道区块的交易内容。

现在把它们放在一起,让我们再回头看刚刚想要做跨链套利的搜索者那个例子。SUAVE本身可以构建并发送到两个不同的rollup:

包含交易1(T?1)的区块1(B?1)——在Rollup1(R?1)低价购买ETH

包含交易2(T?2)的区块2(B?2)——在Rollup2(R?2)高价出售ETH

但很有可能B?1赢得拍卖,而B?2输掉(或反之)。然后,让我们想一下,如果这两个rollup被选择到相同的共享定序器中会发生什么。

共享定序器节点基本上是愚蠢的。

他们不了解交易到底在做什么,所以他们需要有人(比如?SUAVE,或者其他MEV构建者)为他们构建一个完整的区块,如果他们要提高效率的话。那么,SUAVE执行器可以将B?1和B?2提交给共享定序器,条件是这两个区块都可以被填充或被毙掉(即原子地执行或放弃这两个区块)。

现在你可以在整个过程中得到很好的经济保证:

SUAVE=共享构建者?=可以保证B?1和B?2都被包含并以原子的方式执行时的状态结果。

共享定序器=共享提议者?=可以保证B?1和B?2都被包含并以原子的方式执行了。

Hasu也针对再质押和rollup之间的权衡做了一些非常深思熟虑的回应,我鼓励大家去阅读一下。以下是他的回应的摘要:

Rollup由L1提供安全性/抗审查性/活性保障,但SUAVE不像大多数链那样从中受益,因为?SUAVE链不是为普通用户设计的。事实上,Flashbots正在研究如何积极地限制作为用户桥接资产到SUAVE的需求。理想情况下,一条链主要是要求搜索者/构建者在那里保留足够的运营资金。这可能远低于针对用户的传统rollup所锁定的资产额。此外,与针对普通用户的链相比,强制通过L1进行状态转换对该链中的搜索者/构建者来说可能没有那么有价值。

数据可用性(DA)是昂贵的,至少在今天。我们将看到EIP-4844在这其中如何发挥作用,以及随后对的DA需求可能会增长。相反,我想提醒的是,对于代币持有者来说,再质押可能更“昂贵”(即,如果费用收入低,并且需要增发代币给ETH再质押者以激励形成足够的经济安全模型)。一种对用户来说更昂贵,而另一种对代币持有者来说更昂贵。选择哪一个,在很大程度上取决于任何潜在链的时机,以及当时以太坊DA层的成熟度。

SUAVE需要将从其他域的状态转换报告回主链(因此可以解锁对执行器的条件式支付)。关于从以太坊L1和其他rollup读取状态的能力,rollup具有很好的信任最小化属性。

但我有一个新想法——两者都做怎么样?再质押rollup。

这并没有解决Hasu提到的所有问题,但它仍然是一个非常有趣的新选项,特别是从长远来看。

相比于仅仅由EigenLayer的再质押者(更像是它自己在L1借来的安全)来提供安全保证,rollup可以利用这些EigenLayer的再质押者来维持它的本地共识,但是这个链随后会回到以太坊(即,它向以太坊发布它的数据和证明)。

如前所述,rollup可以决定实现自己的本地共识,以便在真正的L1敲定之前,对短期预确认和抗重组实现更强的保证。那么,为什么我们不把这个rollup共识子集变成一组以太坊再质押者?现在两样都有了:

L1之前的最终确定性——高价值、去中心化的再质押共识,提供强大的短期内抗重组。

L1之后的最终确定性——仍然是一个rollup!它将其数据发布到以太坊,并且可以发布ZK/欺诈证明。

一旦L1敲定了,这与任何rollup的安全性是一样的。这只是实现其自身共识的rollup的一种变体。只是,它没有像前面描述的那样,在其rollup上拥有自己的验证者子集,并由自己的原生代币保护,而是选择让以太坊的再质押者运行共识。

同样,如果Celestia能够在其协议实现某种形式的再质押,那将是一件很有趣的事情(目前的计划是Celestia的L1是非常小的,并且没有智能合约的功能)。我之前曾写过,对于Celestia来说,写进协议的rollup将是一个有趣的方向,而原生再质押将是另一个令人着迷的工具,允许自由市场决定他们想要加入什么功能。再质押对Celestia的经济安全性方面也有帮助,因为可替代DA层的价值累积模型仍未得到证实。

上面提到的一些解决方案已经含蓄地处理了这个问题(例如,举办一个完全免费的公开拍卖),但显然没有一个rollup想让它们的用户被发起三明治攻击。所以,我们可能需要一些创意。将拍卖的好处与可编程隐私结合起来会让它变得更有趣。

这就是为什么中心化定序器现在也喜欢使用私有交易池——试图确保用户不会抢跑交易等等。但是实现去中心化并不容易。如果向许多定序器开放,你会相信它们运行自己的私有交易池?即使你相信,如果每个定序器都有自己的私有交易池,并且你需要开始轮换活跃的定序领导者,那也可能会有问题。

加密交易池是解决这些问题的一个很吸引人的研究领域。下面我简单向大家推荐我刚发的这个帖子的相关信息:

https://twitter.com/jon_charb/status/1635837710605639683??s=?20?

Inthispost,I’lljustgiveabriefoverviewofsomevariationsofFCFSproposals.

在这篇文章中,我将简要概述FCFS提案的一些变体。

需信任的中心化定序器继续为用户的交易运营一个私有交易池

定序器在收到每一个交易时都会为其标记时间戳

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

用户可以选择为他们的交易支付额外的优先打包费用,给这个交易一个“时间加速(timeboost)”,可以最多减少500毫秒

Timeboost的计算公式如下:

其中:

F=交易的优先打包费用

g=可用的最大时间加速(?500毫秒)

c=待确定的常数

目前,搜索者只能通过尽量减少对Arbitrum定序器的延时来表达他们对快速打包到定序器的偏好(打开许多连接、在物理上接近它、在基础设施方面投入资本等)。TimeBoost反而会减少对上述延时优势进行投资的动机,因为搜索者现在可以通过优先打包费用竞价来表达他们对快速打包的偏好。

这是对简单FCFS的明显改进,但在我看来仍有一些缺点:

这减少了对延时竞争的激励,但它并没有消除它。最小化延时总是允许搜索者出价低于竞争对手,并且上面图表的弧线显示,延时优势对于高价值的MEV机会来说特别有意义。

不清楚交易池隐私和时间戳如何有效地去中心化。

搜索者的出价缺乏更多其他表现。搜索者只能为更快的打包而竞价,但他们无法表达更复杂的偏好,这将是更灵活的显式拍卖(例如当前以太坊L1)的情况。

与此相关的是,如果在这个级别实现,将没有能力恢复失败的竞标。

Themis的一个频繁batch拍卖风格的变体。在这个方案中:节点向领导者报告部分排序,然后领导者将这些聚合到一个未排序的batch中。在设定的批次时间"公平粒度"内(例如,也可以是500毫秒),所有交易都假定是在同一时间发生的。

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

与TimeBoost提案类似,有一些尝试保证相对较快的打包时间(建议小于500毫秒,但可以更改),并防止通过可信节点抢跑。同样,它通过允许搜索者来表达他们的偏好(优先打包费用机制),减少了对延时竞争的激励(尽管并没有完全消除所有优势)。

对于“快速搜索者”来说,在给定batch结束时,其他“慢速搜索者”无法与之竞争的延时优势仍然存在:

TimeBoost——较低的延时是总是有利的(较低的延迟=总是可以有较低的平均出价)。

FBA-FCFS——较低的延时有时是有利的(当“慢”和“快”搜索者之间的小差距显示出相关信息时)。

关于时间延时:

TimeBoost——所有用户的交易在收到时默认延迟了500毫秒的速度。

FBA-FCFS——Batch处理时间为500毫秒,因此在窗口期间收到的用户交易可以包含在其中,距离中间点平均<500毫秒

FBA-FCFS带来更多的可变性(例如,交易可能会根据接收时间滑到下一个batch),但不支付优先打包费的常规用户交易的平均打包时间应该更低。在TimeBoost模型中,时间是连续的(没有区块的概念),而在FBA-FCFS模型中,时间是离散的。总的来说:

结论

希望读者现在对定序器去中心化的路径和相关的障碍有了个较为清晰的框架。这是rollup在未来几年走向成熟时需要应对的众多挑战之一。

其他一些有趣的探索领域包括:

不同层的交互——随着定序器去中心化,它们如何与交易供应链的不同部分交互?什么类型的拍卖(例如,SUAVE)应该插入一个去中心化的定序器子集(例如,共享定序器)?

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

L2费用市场——收取“L2原生”费用(例如L2堵塞费用)和“L1原生”费用(例如L1数据可用性费用)

ZK证明者市场——如何正确激励去中心化和无需许可的ZK证明者市场。这是L2费用的一个重要子集,在其他背景下也会有相关的地方。

Rollup的商业模式——Rollup代币和构建它们的团队如何积累价值并实现可持续性。

可升级性和治理——去中心化这些组件和减少信任假设,同时保持系统的灵活性。

欺诈/ZK证明——构建更具有鲁棒性的机制,比如使用多个证明者机制。

感谢BenFisch、JoshBowen、Cem?zer、KelvinFichter、ZakiManian、Hasu、RobertMiller、TarunChitra、SreeramKannan,以及其他许多人围绕这个话题的精彩讨论。

原文链接

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:15ms0-4:270ms