Sequencer=聚合器+Header生成者

进阶2/28/2024, 10:02:45 AM
本文出于让Rollup模型更容易理解、更方便剖析的目的,Celestia研究员NashQ将Rollup的定序器(Sequencer)分成了两个逻辑实体——聚合器和Header生成者。同时,他将交易排序过程分为了三个逻辑步骤:包含、排序和执行(inclusion, ordering, and execution)。 在这种分析思路引导下,主权Rollup的6大重要变体更加清晰易懂。NashQ细致讨论了不同Rollup变体的抗审查性和活性,还探讨了每种Rollup变体的节点在信任最小化状态下的最低配置(就是指要达到Trustless状态,Rollup用户至少要运行哪些类型的节点)。
  • 转发原文标题:Celestia研究员分析6种Rollup变体:Sequencer=聚合器+Header生成者

译者注:出于让Rollup模型更容易理解、更方便剖析的目的,Celestia研究员NashQ将Rollup的定序器(Sequencer)分成了两个逻辑实体——聚合器和Header生成者。同时,他将交易排序过程分为了三个逻辑步骤:包含、排序和执行(inclusion, ordering, and execution)。

在这种分析思路引导下,主权Rollup的6大重要变体更加清晰易懂。NashQ细致讨论了不同Rollup变体的抗审查性和活性,还探讨了每种Rollup变体的节点在信任最小化状态下的最低配置(就是指要达到Trustless状态,Rollup用户至少要运行哪些类型的节点)。

虽然本文是站在Celestia的视角解析Rollup,与以太坊社区分析Rollup模型的方式有所不同,但考虑到以太坊Rollup与Celestia主权Rollup的诸多互通之处,以及后者日益增强的影响力,对于以太坊爱好者而言,此文也极其值得一读。

什么是Rollup?

Rollup是将其“交易数据”发布到另一个区块链并继承其共识和数据可用性的区块链。

为什么我特意使用“交易数据”这个词而不是“区块”呢?这涉及到rollup区块和rollup数据之间的区别,最简洁的rollup只需要像下文中第一种变体那样的rollup数据。

Rollup区块是一种数据结构,它表示某个区块高度下的区块链账本。Rollup区块由rollup数据和rollup header组成。其中,Rollup数据可以是一批交易,或一批交易间的状态变化。

变体1:悲观Rollup / Based Rollup

构建Rollup的最简单方法是让用户将交易发布到另一个区块链上,我们将后者称为共识和数据可用性层(DA-Layer),在下面我会简称为DA层(译者注:近似于以太坊社区常说的Layer1)。

在我要介绍的第一种Rollup变体中,Rollup网络的节点必须重新执行DA层包含的Rollup交易,以检查账本的最终状态。这便是悲观Rollup!

悲观Rollup是一种只支持全节点的Rollup,这些全节点需要重新执行Rollup账本包含的所有交易以检查其有效性。

但在这种情况下,谁充当了Rollup的定序器Sequencer?实际上除了Rollup的全节点以外,没有任何实体执行过Rollup账本包含的交易。一般来讲,定序器会聚合交易数据,并生成一个Rollup header。但上文所说的悲观Rollup没有Rollup header!

为了方便讨论,我们可以将定序器拆分为两个逻辑实体:聚合器Aggregator和Header生成者。要生成Rollup Header,必须先执行交易,完成状态转换再计算得到对应的Header。但对于聚合器,它不需要完成状态转换,就可以进行聚合步骤。

排序Sequencing就是“聚合 + 创建Rollup Header ”的过程 。

聚合(Aggregation) 是将交易数据批量打包为一个批次Batch的步骤。一个批次一般包含很多笔交易(译者注:Batch就是Rollup区块中除Header以外的那部分数据)。

Header生成步骤则是创建Rollup Header的过程。

Rollup Header是关于Rollup区块的元数据,至少包含了对该区块中交易数据的commitment(译者注:这里说的commitment是指对交易处理结果正确性的承诺)。

通过上述视角,就可以看出Rollup的各部分组件都由谁来充当。首先来看聚合器Aggregator这部分。前面提及的悲观Rollup没有Header生成过程,用户将交易直接发布到DA层上,这意味着DA层网络实质就充当了聚合器。

所以,悲观Rollup就是将聚合步骤委托给DA层的Rollup变体,它没有定序器Sequencer。有时候这类Rollup被称为“based rollup”。

Based Rollup具备和DA层相同的抗审查性及活性(活性衡量系统对用户请求的反馈速度)。此类Rollup的用户如果要达到信任最小化(最接近Trustless)的状态,至少要运行一个DA层网络的轻节点,及Rollup网络的全节点。

变体2:使用共享聚合器的悲观汇总

让我们讨论一下使用共享聚合器的悲观汇总。这个构思由Evan Forbes在其关于共享定序器设计的论坛帖子中提出。其关键假设是,共享定序器是为交易排序的唯一正规途径。Evan如此解释共享定序器的好处:

“为了达到与Web2等效的用户体验,共享定序器可提供快速生成的Soft Commitment(不是很可靠的保障)。这些Soft Commitment提供了关于最终的交易次序的一些保障(就是承诺交易次序不会改变),并且可让Rollup账本状态更新的步骤提前进行(但此时还没完成最终确定Finalize)。

一旦Rollup区块数据确认发布到了基础层Base Layer(此处应指DA层),Rollup账本的状态更新就完成了最终敲定Finalize。”

上述Rollup变体仍然隶属于悲观Rollup范畴,因为这类Rollup系统中只有全节点,没有轻节点。每个Rollup节点都要执行所有的交易,来保证账本状态更新的有效性。因为这类Rollup没有轻节点,就不需要Rollup Header,也就不需要Header生成者。(译者注:一般而言,一条区块链的轻节点不需要同步完整的区块,只接收区块头即可)

由于没有Rollup Header生成这个步骤,上述Rollup的共享定序器可以不必执行交易进行状态更新(生成Header的先决条件),而只包含聚合交易数据的过程。所以我更倾向将其称为共享聚合器shared aggregator。

在这种变体中,Rollup用户在信任最小化状态下,至少需要运行

DA层轻节点+ 共享聚合器网络的轻节点 + Rollup全节点。

此时,需要通过共享聚合器网络的轻节点来验证发布的aggregator header(这里指的不是Rollup Header)。上面提到,共享聚合器承担了交易排序的工作,它在发布的aggregator header中,包含了一个密码学commitment,对应着DA层上它发布的Batch。

这样一来,Rollup节点运行者可以确认,自己从DA层收到的批次Batch,是由共享聚合器创建的,而非其他人。

(因为上文包含的内容比较晦涩,可再看一遍示意图)

包含Inclusion是将交易包含到区块链中的过程。

排序Ordering是指将交易按照特定顺序在区块链中排列的过程。

执行Execution是指处理区块链中的交易,完成状态更新的过程。

由于共享聚合器承担了包含和排序的工作,Rollup的抗审查性就取决于它。

如果假设L_ss是共享聚合器的活性,L_da是DA-Layer的活性,那么该Rollup模型的活性就是L = L_da && L_ss。换句话说,如果两个部分中任意一个存在活性故障,则Rollup也存在活性故障。

为简单起见,我将活性作为一个bool值来考察。如果共享聚合器故障了,Rollup就无法继续运转。如果DA层网络故障了,共享聚合器可以继续为Rollup区块提供Soft Commitment。但此时,Rollup的各项属性将完全取决于共享聚合器网络,而后者的各项属性往往远不及原本的DA层。

让我们来继续探讨上述Rollup方案的抗审查性:

在该方案中,DA层不能对某些笔特定的交易进行审查(译者注:交易审查往往可以拒绝让某些交易上链),它只能针对共享聚合器提交的整个交易批次Batch展开交易审查(拒绝让某个Batch包含进DA层)。

但按照Rollup的工作流程,共享聚合器在向DA层提交交易批次Batch时,早已完成了交易排序,不同批次间的顺序也定完了。所以,DA层的这种交易审查,除了延迟Rollup的账本最终性确认外,没有其他作用。

综上,我认为抗审查性的重点,是确保没有任何一个实体可以控制或操纵系统内的信息流通,而活性则涉及维护系统的功能和可用性,即使存在网络中断和对抗行为。虽然这与当前主流的学术定义冲突,但我仍然会使用我所阐述的概念定义。

变体 3:基于Based Rollup和共享聚合器的悲观Rollup

尽管共享聚合器为用户和社区带来了好处,但我们仍应避免过度依赖它,并且要允许用户从共享聚合器撤出至DA层。我们可以将前面介绍的两种Rollup变体组合,在使用共享聚合器的同时,允许用户直接向DA层提交交易。

我们假设,最终的Rollup交易序列取决于共享聚合器提交的交易序列,以及用户在DA层区块中直接提交的Rollup交易。我们将这称作Rollup的分叉选择规则。

聚合在这里分成了两步。首先,共享聚合器发挥作用,聚合一些交易。然后,DA层可以将共享聚合器提交的批次Batch和用户直接提交的交易进行聚合。

此时的抗审查性分析要更复杂些。DA层网络节点可能在下一个 DA层区块出块前,对共享聚合器提交的Batch进行审查,在知晓了Batch内的交易数据后,DA层节点可以提取MEV价值,先用自己在Rollup网络上的账户发起抢跑交易,并将其抢先包含至DA层区块,之后才包含Rollup共享聚合器提交的Batch。

显然,第三类Rollup变体的soft commitment保障的交易次序最终确定性,要比前面提到的第二类Rollup变体更脆弱。在这种情况下,共享聚合器将MEV价值拱手送给了DA层节点。对此,我建议读者观看关于利用有利可图的审查 MEV 的研究讲座。

目前已经有一些设计方案出现,以降低DA层网络节点执行此类MEV交易的能力,例如“重组窗口期”功能,这会使得Rollup网络用户直接向DA层提交的交易被延迟执行。Sovereign Labs 在其名为 Based Sequencing with Soft Confirmations 的设计提案中详细描述了这一点,其中提出了“首选定序器”的概念。

由于MEV问题取决于Rollup选择的聚合器方案,以及 rollup分叉选择规则,某些方案将不泄漏MEV给DA层,而一些方案将泄漏部分或全部MEV给DA层,但这是另一个话题。

至于活性,这种rollup 方案比仅允许共享聚合器向DA层提交交易的方案更具优势。如果共享聚合器出现活性故障,用户仍然可以向 DA层提交交易。

最后,让我们谈谈信任最小化下的Rollup用户最低配置:

至少要运行 DA层轻节点 + 共享聚合器轻节点 + Rollup 全节点。

此时,仍然需要验证共享聚合器发布的aggregator header,使得rollup 全节点能够根据分叉选择规则区分交易批次。

变体4:Optimistic Based Rollup和中心化的Header生成者

让我们讨论一种被称为Based Optimistic Rollup 的变体及中心化的Header生成器。这种方案使用 DA层聚合Rollup交易,但引入了一个中心化的Header生成器来生成Rollup Header,以启用 Rollup 轻节点。

Rollup 轻节点可以通过单轮欺诈证明,间接检查 Rollup交易的有效性。轻节点会对Rollup Header的生成者持乐观态度,并在欺诈证明窗口期结束后进行最终确认。另一种可能是,它从诚实的全节点那里接收到欺诈证明,得知Header生成者提交了有错误的数据。

我不打算在此文详细介绍单轮欺诈证明的工作原理,因为这超出了本文涉及的范围。单轮欺诈证明的好处是可以将欺诈证明窗口期从7天缩短到一定程度,具体的数值有待确定,但数量级比传统的乐观rollup更小。轻节点可以通过Rollup全节点组成的P2P网络获取欺诈证明,而不需要等待后续的争议过程,因为所有的判据都在单个欺诈证明中完整的提供了。

上述Rollup模型使用 DA层作为聚合器,并继承了它的审查抗性。此时的DA层负责包含和排序交易。中心化的Header生成者将从DA层中读取Rollup交易序列,并据此构建对应的Rollup Header。Header生成者将把Header和Stateroot发布到 DA层。这些state root是创建欺诈证明时所必需的。简而言之,聚合器负责包含和排序交易,Header生成器会执行交易更新状态得到state root。

假设DA层(此时它也充当了Rollup的聚合器)是足够去中心化的,并具有良好的抗审查性。此外,Header生成器不能更改聚合器发布的Rollup交易序列。现在,如果将Header生成器去中心化,带来的唯一好处是更好的活性,但Rollup的其他属性与第一种变体Based Rollup相同。

如果Header生成器发生活性故障,Rollup 也会发生活性故障。轻节点将无法跟进Rollup账本的进度,但全节点可以。此时,变体4所描述的Rollup退化成了变体1描述的Based Rollup。显然,变体4描述的信任最小化最低配置是:

DA层轻节点+Rollup轻节点。

变体5:Based ZK-Rollup和去中心化的Prover Market

我们已经讨论了悲观Rollup(Based Rollup)和乐观Rollup,现在是时候考虑ZK-Rollup了。最近Toghrul做了一个关于聚合器(Sequencer)和Header生成器(Prover)分离的演讲(Sequencer-Prover Separation in Zero-Knowledge Rollups)。在这种模型中,将交易作为Rollup数据而非State Diff进行发布要更容易处理,所以我会着重于讨论前者。变体5是一个基于zk-rollup的去中心化Prover Market。

到目前为止,你应该对Rollup的工作原理比较熟悉了。变体5将聚合器角色委托给了DA层节点,由后者进行包含和排序交易的工作。我会引用 Sovereign-Labs 的文档,它对变体5中一笔交易的生命周期进行了很好的解释:

用户发布一个新的数据块到L1链(DA层)上。一旦这些数据块在L1链上被最终确定,它就在逻辑上具备最终性(不可更改)。L1链的区块进入最终确定阶段(就是不可回滚)后,Rollup的全节点会扫描这些区块,按照次序处理所有与Rollup有关的数据块,生成最新的Rollup状态根Stateroot。此时,从Rollup全节点的角度来看,这些数据块已经完成了最终确定。

在这个模型中,Header生成者由去中心化的Prover Market充当。

Prover证明者节点(在ZKVM内运行的全节点)的工作过程与普通的Rollup全节点有类似的地方——扫描DA层区块链并按次序处理所有Rollup交易批次——生成对应的零知识证明并将其发布到DA层链上。(如果Rollup系统想激励Prover证明者,要让后者将生成的ZK证明发到DA层链上,否则就无法确定哪个Prover率先提交了ZK证明)。一旦某个交易批次对应的ZK证明被发布到链上,该交易批次在全体Rolup节点(包括轻节点)眼中就完成了最终确定。

(因为涉及的概念比较多,可以再看一遍示意图)

变体5具备和DA层一样的抗审查性。去中心化的Prover Market不能对Rollup交易展开审查,因为DA层上已经确定了规范的交易次序,只是为了获得更好的活性及创建激励市场,所以才将Header生成器(这里指Prover)去中心化。

这里的活性是 L = L_da && L_pm(Prover的活性)。如果Prover Market的激励不一致,或者出现活性故障,Rollup轻节点将无法同步区块链进度,但Rollup的全节点可以,对于全节点而言,这只不过又回退到了变体1所说的Based Rollup/悲观Rollup。这里的信任最小化最低配置与乐观Rollup情况下相同,即

DA层轻节点+Rollup轻节点。

变体6:混合型Based Rollup+中心化的乐观Header生成者+去中心化Prover

我们仍然让DA层节点充当Rollup的聚合器,并委托其进行包含和排序交易的工作。

正如你从下图中看到的,ZK Rollup 和乐观Rollup都采用DA层上相同的有序交易批次,作为Rollup账本来源。这是我们可以同时使用两个证明系统的原因:DA层上的有序交易批次本身并不受证明系统的影响。


先谈一下最终性。从 Rollup 全节点的角度来看,当 DA层自身的区块完成最终敲定时,其包含的Rollup交易批次也是最终确定不可更改的了。但是我们更关心轻节点视角下的最终性。假设中心化的Header生成者抵押了一些资产,并在生成的Rollup Header上签名,连带将计算出的Stateroot提交到 DA层。

与前面的变体4一样,轻节点将乐观地信任Header生成者,相信它发布的Header没错,并等待来自全节点网络的欺诈证明。如果欺诈证明的窗口期结束了,全节点网络还没发布欺诈证明,从 Rollup 轻节点的角度来看,Rollup 区块就完成了最终确定。

关键之处在于,如果我们可以获得一个 ZK证明,就不必再等待欺诈证明窗口期结束。除了单轮欺诈证明,我们可以用ZK证明取代欺诈证明,并丢掉恶意的Header生成器生成的错误Header!

当轻节点接收到对应某个Rollup交易批次的ZK证明时,这个批次就会完成最终确定。

现在我们有了快速的Soft Commitment和快速的最终性Finality。

变体6仍然具有与 DA层等同的抗审查性,因为它是基于 DA层的。对于活性,我们将有 L = L_da && (L_op || L_pm),这意味着我们增加了活性保证。如果中心化的Header生成器或去中心化的Prover Market二者之一有活性故障,我们可以退化到二者中的另一种方案。

此种变体中,用户信任最小化的最低配置是:

一个 DA层轻节点 + 一个 Rollup 轻节点。

摘要:

1.我们将Rollup的关键角色——定序器Sequencer拆分为两个逻辑成分:

聚合器和Header生成器。

2.我们将Sequencer的工作分为三个逻辑过程:包含、排序和执行。

3.悲观rollup和based rollup 是一种东西。

4.根据需求,您可以选择不同的聚合器和Header生成器方案。

5.这篇文章中介绍的每个Rollup变种都遵循了相同的设计模式:

最后,我还有一些想法。请您思考:

  • 经典的Rollup(指以太坊Rollup)如何归类到上述的变体之中?
  • 在所有变体中,我们只让聚合器负责包含+排序,Header生成器来执行交易。如果聚合器仅负责包含交易,Header生成器负责排序和执行交易,该怎么做?考虑到引入链上拍卖步骤,我们可以把这三步工作彻底分开吗?
  • 什么是共享Header生产者/Header Producer Market?
  • 谁捕获了MEV价值?用户能把它拿回来吗?

声明:

  1. 本文转载自[极客 Web3],原文标题《Celestia研究员分析6种Rollup变体:Sequencer=聚合器+Header生成者》,著作权归属原作者[NashQ,Celestia研究员],如对转载有异议,请联系Gate Learn团队,团队会根据相关流程尽速处理。
  2. 免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。
  3. 文章其他语言版本由Gate Learn团队翻译, 在未提及Gate.io的情况下不得复制、传播或抄袭经翻译文章。

Sequencer=聚合器+Header生成者

进阶2/28/2024, 10:02:45 AM
本文出于让Rollup模型更容易理解、更方便剖析的目的,Celestia研究员NashQ将Rollup的定序器(Sequencer)分成了两个逻辑实体——聚合器和Header生成者。同时,他将交易排序过程分为了三个逻辑步骤:包含、排序和执行(inclusion, ordering, and execution)。 在这种分析思路引导下,主权Rollup的6大重要变体更加清晰易懂。NashQ细致讨论了不同Rollup变体的抗审查性和活性,还探讨了每种Rollup变体的节点在信任最小化状态下的最低配置(就是指要达到Trustless状态,Rollup用户至少要运行哪些类型的节点)。
  • 转发原文标题:Celestia研究员分析6种Rollup变体:Sequencer=聚合器+Header生成者

译者注:出于让Rollup模型更容易理解、更方便剖析的目的,Celestia研究员NashQ将Rollup的定序器(Sequencer)分成了两个逻辑实体——聚合器和Header生成者。同时,他将交易排序过程分为了三个逻辑步骤:包含、排序和执行(inclusion, ordering, and execution)。

在这种分析思路引导下,主权Rollup的6大重要变体更加清晰易懂。NashQ细致讨论了不同Rollup变体的抗审查性和活性,还探讨了每种Rollup变体的节点在信任最小化状态下的最低配置(就是指要达到Trustless状态,Rollup用户至少要运行哪些类型的节点)。

虽然本文是站在Celestia的视角解析Rollup,与以太坊社区分析Rollup模型的方式有所不同,但考虑到以太坊Rollup与Celestia主权Rollup的诸多互通之处,以及后者日益增强的影响力,对于以太坊爱好者而言,此文也极其值得一读。

什么是Rollup?

Rollup是将其“交易数据”发布到另一个区块链并继承其共识和数据可用性的区块链。

为什么我特意使用“交易数据”这个词而不是“区块”呢?这涉及到rollup区块和rollup数据之间的区别,最简洁的rollup只需要像下文中第一种变体那样的rollup数据。

Rollup区块是一种数据结构,它表示某个区块高度下的区块链账本。Rollup区块由rollup数据和rollup header组成。其中,Rollup数据可以是一批交易,或一批交易间的状态变化。

变体1:悲观Rollup / Based Rollup

构建Rollup的最简单方法是让用户将交易发布到另一个区块链上,我们将后者称为共识和数据可用性层(DA-Layer),在下面我会简称为DA层(译者注:近似于以太坊社区常说的Layer1)。

在我要介绍的第一种Rollup变体中,Rollup网络的节点必须重新执行DA层包含的Rollup交易,以检查账本的最终状态。这便是悲观Rollup!

悲观Rollup是一种只支持全节点的Rollup,这些全节点需要重新执行Rollup账本包含的所有交易以检查其有效性。

但在这种情况下,谁充当了Rollup的定序器Sequencer?实际上除了Rollup的全节点以外,没有任何实体执行过Rollup账本包含的交易。一般来讲,定序器会聚合交易数据,并生成一个Rollup header。但上文所说的悲观Rollup没有Rollup header!

为了方便讨论,我们可以将定序器拆分为两个逻辑实体:聚合器Aggregator和Header生成者。要生成Rollup Header,必须先执行交易,完成状态转换再计算得到对应的Header。但对于聚合器,它不需要完成状态转换,就可以进行聚合步骤。

排序Sequencing就是“聚合 + 创建Rollup Header ”的过程 。

聚合(Aggregation) 是将交易数据批量打包为一个批次Batch的步骤。一个批次一般包含很多笔交易(译者注:Batch就是Rollup区块中除Header以外的那部分数据)。

Header生成步骤则是创建Rollup Header的过程。

Rollup Header是关于Rollup区块的元数据,至少包含了对该区块中交易数据的commitment(译者注:这里说的commitment是指对交易处理结果正确性的承诺)。

通过上述视角,就可以看出Rollup的各部分组件都由谁来充当。首先来看聚合器Aggregator这部分。前面提及的悲观Rollup没有Header生成过程,用户将交易直接发布到DA层上,这意味着DA层网络实质就充当了聚合器。

所以,悲观Rollup就是将聚合步骤委托给DA层的Rollup变体,它没有定序器Sequencer。有时候这类Rollup被称为“based rollup”。

Based Rollup具备和DA层相同的抗审查性及活性(活性衡量系统对用户请求的反馈速度)。此类Rollup的用户如果要达到信任最小化(最接近Trustless)的状态,至少要运行一个DA层网络的轻节点,及Rollup网络的全节点。

变体2:使用共享聚合器的悲观汇总

让我们讨论一下使用共享聚合器的悲观汇总。这个构思由Evan Forbes在其关于共享定序器设计的论坛帖子中提出。其关键假设是,共享定序器是为交易排序的唯一正规途径。Evan如此解释共享定序器的好处:

“为了达到与Web2等效的用户体验,共享定序器可提供快速生成的Soft Commitment(不是很可靠的保障)。这些Soft Commitment提供了关于最终的交易次序的一些保障(就是承诺交易次序不会改变),并且可让Rollup账本状态更新的步骤提前进行(但此时还没完成最终确定Finalize)。

一旦Rollup区块数据确认发布到了基础层Base Layer(此处应指DA层),Rollup账本的状态更新就完成了最终敲定Finalize。”

上述Rollup变体仍然隶属于悲观Rollup范畴,因为这类Rollup系统中只有全节点,没有轻节点。每个Rollup节点都要执行所有的交易,来保证账本状态更新的有效性。因为这类Rollup没有轻节点,就不需要Rollup Header,也就不需要Header生成者。(译者注:一般而言,一条区块链的轻节点不需要同步完整的区块,只接收区块头即可)

由于没有Rollup Header生成这个步骤,上述Rollup的共享定序器可以不必执行交易进行状态更新(生成Header的先决条件),而只包含聚合交易数据的过程。所以我更倾向将其称为共享聚合器shared aggregator。

在这种变体中,Rollup用户在信任最小化状态下,至少需要运行

DA层轻节点+ 共享聚合器网络的轻节点 + Rollup全节点。

此时,需要通过共享聚合器网络的轻节点来验证发布的aggregator header(这里指的不是Rollup Header)。上面提到,共享聚合器承担了交易排序的工作,它在发布的aggregator header中,包含了一个密码学commitment,对应着DA层上它发布的Batch。

这样一来,Rollup节点运行者可以确认,自己从DA层收到的批次Batch,是由共享聚合器创建的,而非其他人。

(因为上文包含的内容比较晦涩,可再看一遍示意图)

包含Inclusion是将交易包含到区块链中的过程。

排序Ordering是指将交易按照特定顺序在区块链中排列的过程。

执行Execution是指处理区块链中的交易,完成状态更新的过程。

由于共享聚合器承担了包含和排序的工作,Rollup的抗审查性就取决于它。

如果假设L_ss是共享聚合器的活性,L_da是DA-Layer的活性,那么该Rollup模型的活性就是L = L_da && L_ss。换句话说,如果两个部分中任意一个存在活性故障,则Rollup也存在活性故障。

为简单起见,我将活性作为一个bool值来考察。如果共享聚合器故障了,Rollup就无法继续运转。如果DA层网络故障了,共享聚合器可以继续为Rollup区块提供Soft Commitment。但此时,Rollup的各项属性将完全取决于共享聚合器网络,而后者的各项属性往往远不及原本的DA层。

让我们来继续探讨上述Rollup方案的抗审查性:

在该方案中,DA层不能对某些笔特定的交易进行审查(译者注:交易审查往往可以拒绝让某些交易上链),它只能针对共享聚合器提交的整个交易批次Batch展开交易审查(拒绝让某个Batch包含进DA层)。

但按照Rollup的工作流程,共享聚合器在向DA层提交交易批次Batch时,早已完成了交易排序,不同批次间的顺序也定完了。所以,DA层的这种交易审查,除了延迟Rollup的账本最终性确认外,没有其他作用。

综上,我认为抗审查性的重点,是确保没有任何一个实体可以控制或操纵系统内的信息流通,而活性则涉及维护系统的功能和可用性,即使存在网络中断和对抗行为。虽然这与当前主流的学术定义冲突,但我仍然会使用我所阐述的概念定义。

变体 3:基于Based Rollup和共享聚合器的悲观Rollup

尽管共享聚合器为用户和社区带来了好处,但我们仍应避免过度依赖它,并且要允许用户从共享聚合器撤出至DA层。我们可以将前面介绍的两种Rollup变体组合,在使用共享聚合器的同时,允许用户直接向DA层提交交易。

我们假设,最终的Rollup交易序列取决于共享聚合器提交的交易序列,以及用户在DA层区块中直接提交的Rollup交易。我们将这称作Rollup的分叉选择规则。

聚合在这里分成了两步。首先,共享聚合器发挥作用,聚合一些交易。然后,DA层可以将共享聚合器提交的批次Batch和用户直接提交的交易进行聚合。

此时的抗审查性分析要更复杂些。DA层网络节点可能在下一个 DA层区块出块前,对共享聚合器提交的Batch进行审查,在知晓了Batch内的交易数据后,DA层节点可以提取MEV价值,先用自己在Rollup网络上的账户发起抢跑交易,并将其抢先包含至DA层区块,之后才包含Rollup共享聚合器提交的Batch。

显然,第三类Rollup变体的soft commitment保障的交易次序最终确定性,要比前面提到的第二类Rollup变体更脆弱。在这种情况下,共享聚合器将MEV价值拱手送给了DA层节点。对此,我建议读者观看关于利用有利可图的审查 MEV 的研究讲座。

目前已经有一些设计方案出现,以降低DA层网络节点执行此类MEV交易的能力,例如“重组窗口期”功能,这会使得Rollup网络用户直接向DA层提交的交易被延迟执行。Sovereign Labs 在其名为 Based Sequencing with Soft Confirmations 的设计提案中详细描述了这一点,其中提出了“首选定序器”的概念。

由于MEV问题取决于Rollup选择的聚合器方案,以及 rollup分叉选择规则,某些方案将不泄漏MEV给DA层,而一些方案将泄漏部分或全部MEV给DA层,但这是另一个话题。

至于活性,这种rollup 方案比仅允许共享聚合器向DA层提交交易的方案更具优势。如果共享聚合器出现活性故障,用户仍然可以向 DA层提交交易。

最后,让我们谈谈信任最小化下的Rollup用户最低配置:

至少要运行 DA层轻节点 + 共享聚合器轻节点 + Rollup 全节点。

此时,仍然需要验证共享聚合器发布的aggregator header,使得rollup 全节点能够根据分叉选择规则区分交易批次。

变体4:Optimistic Based Rollup和中心化的Header生成者

让我们讨论一种被称为Based Optimistic Rollup 的变体及中心化的Header生成器。这种方案使用 DA层聚合Rollup交易,但引入了一个中心化的Header生成器来生成Rollup Header,以启用 Rollup 轻节点。

Rollup 轻节点可以通过单轮欺诈证明,间接检查 Rollup交易的有效性。轻节点会对Rollup Header的生成者持乐观态度,并在欺诈证明窗口期结束后进行最终确认。另一种可能是,它从诚实的全节点那里接收到欺诈证明,得知Header生成者提交了有错误的数据。

我不打算在此文详细介绍单轮欺诈证明的工作原理,因为这超出了本文涉及的范围。单轮欺诈证明的好处是可以将欺诈证明窗口期从7天缩短到一定程度,具体的数值有待确定,但数量级比传统的乐观rollup更小。轻节点可以通过Rollup全节点组成的P2P网络获取欺诈证明,而不需要等待后续的争议过程,因为所有的判据都在单个欺诈证明中完整的提供了。

上述Rollup模型使用 DA层作为聚合器,并继承了它的审查抗性。此时的DA层负责包含和排序交易。中心化的Header生成者将从DA层中读取Rollup交易序列,并据此构建对应的Rollup Header。Header生成者将把Header和Stateroot发布到 DA层。这些state root是创建欺诈证明时所必需的。简而言之,聚合器负责包含和排序交易,Header生成器会执行交易更新状态得到state root。

假设DA层(此时它也充当了Rollup的聚合器)是足够去中心化的,并具有良好的抗审查性。此外,Header生成器不能更改聚合器发布的Rollup交易序列。现在,如果将Header生成器去中心化,带来的唯一好处是更好的活性,但Rollup的其他属性与第一种变体Based Rollup相同。

如果Header生成器发生活性故障,Rollup 也会发生活性故障。轻节点将无法跟进Rollup账本的进度,但全节点可以。此时,变体4所描述的Rollup退化成了变体1描述的Based Rollup。显然,变体4描述的信任最小化最低配置是:

DA层轻节点+Rollup轻节点。

变体5:Based ZK-Rollup和去中心化的Prover Market

我们已经讨论了悲观Rollup(Based Rollup)和乐观Rollup,现在是时候考虑ZK-Rollup了。最近Toghrul做了一个关于聚合器(Sequencer)和Header生成器(Prover)分离的演讲(Sequencer-Prover Separation in Zero-Knowledge Rollups)。在这种模型中,将交易作为Rollup数据而非State Diff进行发布要更容易处理,所以我会着重于讨论前者。变体5是一个基于zk-rollup的去中心化Prover Market。

到目前为止,你应该对Rollup的工作原理比较熟悉了。变体5将聚合器角色委托给了DA层节点,由后者进行包含和排序交易的工作。我会引用 Sovereign-Labs 的文档,它对变体5中一笔交易的生命周期进行了很好的解释:

用户发布一个新的数据块到L1链(DA层)上。一旦这些数据块在L1链上被最终确定,它就在逻辑上具备最终性(不可更改)。L1链的区块进入最终确定阶段(就是不可回滚)后,Rollup的全节点会扫描这些区块,按照次序处理所有与Rollup有关的数据块,生成最新的Rollup状态根Stateroot。此时,从Rollup全节点的角度来看,这些数据块已经完成了最终确定。

在这个模型中,Header生成者由去中心化的Prover Market充当。

Prover证明者节点(在ZKVM内运行的全节点)的工作过程与普通的Rollup全节点有类似的地方——扫描DA层区块链并按次序处理所有Rollup交易批次——生成对应的零知识证明并将其发布到DA层链上。(如果Rollup系统想激励Prover证明者,要让后者将生成的ZK证明发到DA层链上,否则就无法确定哪个Prover率先提交了ZK证明)。一旦某个交易批次对应的ZK证明被发布到链上,该交易批次在全体Rolup节点(包括轻节点)眼中就完成了最终确定。

(因为涉及的概念比较多,可以再看一遍示意图)

变体5具备和DA层一样的抗审查性。去中心化的Prover Market不能对Rollup交易展开审查,因为DA层上已经确定了规范的交易次序,只是为了获得更好的活性及创建激励市场,所以才将Header生成器(这里指Prover)去中心化。

这里的活性是 L = L_da && L_pm(Prover的活性)。如果Prover Market的激励不一致,或者出现活性故障,Rollup轻节点将无法同步区块链进度,但Rollup的全节点可以,对于全节点而言,这只不过又回退到了变体1所说的Based Rollup/悲观Rollup。这里的信任最小化最低配置与乐观Rollup情况下相同,即

DA层轻节点+Rollup轻节点。

变体6:混合型Based Rollup+中心化的乐观Header生成者+去中心化Prover

我们仍然让DA层节点充当Rollup的聚合器,并委托其进行包含和排序交易的工作。

正如你从下图中看到的,ZK Rollup 和乐观Rollup都采用DA层上相同的有序交易批次,作为Rollup账本来源。这是我们可以同时使用两个证明系统的原因:DA层上的有序交易批次本身并不受证明系统的影响。


先谈一下最终性。从 Rollup 全节点的角度来看,当 DA层自身的区块完成最终敲定时,其包含的Rollup交易批次也是最终确定不可更改的了。但是我们更关心轻节点视角下的最终性。假设中心化的Header生成者抵押了一些资产,并在生成的Rollup Header上签名,连带将计算出的Stateroot提交到 DA层。

与前面的变体4一样,轻节点将乐观地信任Header生成者,相信它发布的Header没错,并等待来自全节点网络的欺诈证明。如果欺诈证明的窗口期结束了,全节点网络还没发布欺诈证明,从 Rollup 轻节点的角度来看,Rollup 区块就完成了最终确定。

关键之处在于,如果我们可以获得一个 ZK证明,就不必再等待欺诈证明窗口期结束。除了单轮欺诈证明,我们可以用ZK证明取代欺诈证明,并丢掉恶意的Header生成器生成的错误Header!

当轻节点接收到对应某个Rollup交易批次的ZK证明时,这个批次就会完成最终确定。

现在我们有了快速的Soft Commitment和快速的最终性Finality。

变体6仍然具有与 DA层等同的抗审查性,因为它是基于 DA层的。对于活性,我们将有 L = L_da && (L_op || L_pm),这意味着我们增加了活性保证。如果中心化的Header生成器或去中心化的Prover Market二者之一有活性故障,我们可以退化到二者中的另一种方案。

此种变体中,用户信任最小化的最低配置是:

一个 DA层轻节点 + 一个 Rollup 轻节点。

摘要:

1.我们将Rollup的关键角色——定序器Sequencer拆分为两个逻辑成分:

聚合器和Header生成器。

2.我们将Sequencer的工作分为三个逻辑过程:包含、排序和执行。

3.悲观rollup和based rollup 是一种东西。

4.根据需求,您可以选择不同的聚合器和Header生成器方案。

5.这篇文章中介绍的每个Rollup变种都遵循了相同的设计模式:

最后,我还有一些想法。请您思考:

  • 经典的Rollup(指以太坊Rollup)如何归类到上述的变体之中?
  • 在所有变体中,我们只让聚合器负责包含+排序,Header生成器来执行交易。如果聚合器仅负责包含交易,Header生成器负责排序和执行交易,该怎么做?考虑到引入链上拍卖步骤,我们可以把这三步工作彻底分开吗?
  • 什么是共享Header生产者/Header Producer Market?
  • 谁捕获了MEV价值?用户能把它拿回来吗?

声明:

  1. 本文转载自[极客 Web3],原文标题《Celestia研究员分析6种Rollup变体:Sequencer=聚合器+Header生成者》,著作权归属原作者[NashQ,Celestia研究员],如对转载有异议,请联系Gate Learn团队,团队会根据相关流程尽速处理。
  2. 免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。
  3. 文章其他语言版本由Gate Learn团队翻译, 在未提及Gate.io的情况下不得复制、传播或抄袭经翻译文章。
Comece agora
Registe-se e ganhe um cupão de
100 USD
!
It seems that you are attempting to access our services from a Restricted Location where Gate.io is unable to provide services. We apologize for any inconvenience this may cause. Currently, the Restricted Locations include but not limited to: the United States of America, Canada, Cambodia, Cuba, Iran, North Korea and so on. For more information regarding the Restricted Locations, please refer to the User Agreement. Should you have any other questions, please contact our Customer Support Team.