本文提供了一个框架,用于分析去中心化rollup过程中的不同设计选择及其下游后果,涉及排序器、证明者、激励措施等,以及领导者选举、全民免费、分叉、同步与异步证明等设计选择,可用于优化交易吞吐量、交易成本和最终时间。系统将迫使竞争的测序商进行竞标,以获得收入,并为系统引入复杂性,以激励排序器和证明者的正确行为。设计者可以选择多种设计决策,以优化超高事务吞吐量。
原文标题:Rollup Decentralisation Analysis Framework
原文作者:George Spasov
原文来源:Ethereum Research
编译:Lynn,火星财经
TLDR:这篇文章为分析新的和现有的 rollup 的去中心化工作提供了一个思想框架。
这篇文章概述了一个框架,用于分析去中心化 rollup 过程中的不同设计选择及其后果。下面概述的任何设计选择都不能孤立地进行,并且任何设计选择都可以有效地禁用一整套其他选择。因此,它的目的并不是要单独设置任何单一设计选项的选择优先级。设计选择是根据 ZK rollup 进行选择的,但类似的推理也可以应用于乐观 rollup 。
该框架可用于对 rollup 架构师提出的去中心化决策进行追溯分析,或用作设计针对某些权衡进行优化的新颖汇总迭代的基础。
本文档的第一部分提供了架构师需要做出决策的设计领域的简短定义。它绝不是汇总设计人员需要考虑的设计领域的详尽列表,而是强调了影响大多数设计领域的一些主要领域,rollup 去中心化设计。
本文档的第二部分为作者提供了设计师可以做出的一系列可能的设计选项。此外,它还提供了对频谱各个端提供的权衡的分析。
本文档的最后部分提供了虚构 rollup 的示例,旨在展示此分析框架的用法和有用性。
关于排序器(一个或多个)如何有资格在 L1(更准确地说 - 数据可用性层)上提议新批次序列的设计选择
关于证明者如何协调证明的生成和提交的设计选择。
是否应该允许测序者选择他们的证明者。
Rollup 必须选择是否可以将某个先前的排序状态X用作产生后序列状态的多个竞争序列的基础X’。
Rollup 必须选择是否应同时证明一个或多个(如果适用)分叉。
如果我们将汇总视为一个序列链,每个序列都基于(有效的)先前序列,则必须做出设计决策,决定序列是同步证明(顺序)还是异步启用(提前证明序列)。
Rollup 的加密经济激励是一个主要的设计组成部分,并且极大地影响 Rollup 使用的权衡。根据排序者和证明者的支付优先级和保证,可以优化交易吞吐量、交易成本和/或最终时间。
在设计排序器和证明者激励时,设计者需要考虑两者之间的组合。定序器端的一组选择会禁用证明器端的一组选择,反之亦然。
测序人员提供高质量服务的动机是什么?
证明者提供高质量服务的动力是什么?
“领导者选举”会选举出一个单独的排序器,并提前知道(最好只有领导者本人知道)。可以使用各种算法 - 例如 PoS + RANDAO、SSLE(fe Whisk:一种实用的基于 shuffle 的以太坊 SSLE 协议 1)等。如果选择单个领导者选举,则需要考虑的设计的主要后续主题与考虑领导者的活跃度有关。
“Free for All”中没有一个领导者被选举出来,所有演员都可以包含序列。如果选择“全民免费”,则主要考虑因素是资本效率——系统成本(以及由此产生的交易成本)以及使参与的测序者有利可图。需要进一步考虑分叉选择规则、并行证明和经济激励。
中间的例子是领导者拥有一个或多个备用领导者和/或如果其他人都失败了,则回退到部分或完全免费。
在较高的层面上,领导者选举会牺牲较低的交易吞吐量和受损的活跃度,以换取资本效率和较低的交易成本。所有人免费,选择低资本效率和可能高成本,但获得高吞吐量和可用性。
与排序器类似,“领导者选举”会选举出一个证明者,并提前知道(最好只有证明者本人知道)来证明某个序列。如果选择单个领导者选举,则需要考虑的设计的主要后续主题必须与领导者的活跃度有关。请记住,证明者的工作量很高,出示证明的时间很长,这极大地加剧了领导者不活跃的问题。然而,这并不一定会阻碍网络,而只是其最终性。最终性停滞的下游后果会影响 L1 和跨 rollup 通信,但 rollup 本身可以保持运行。
在“Free for All”中,没有任何一个领导人被选举出来,所有参与者都可以制作并提交证据。如果选择“Free for All”,主要考虑的是资本效率——作为证明者参与的成本(以及由此产生的交易成本)以及使证明者参与有利可图。从某种意义上说,这种选择类似于工作量证明算法。需要进一步考虑分叉选择规则、并行证明和经济激励。
中间立场是选择一名领导者、一名或多名备用领导者和/或如果其他人都失败了,则退回到部分或完全免费。
注意:如果同时证明单个序列和单个分叉选择,则该选择取决于下面概述的其他设计选择。
在较高的层面上,领导者选举端可能会选择缓慢的最终结果,但会获得资本效率和低成本。所有人免费,选择低资本和资源效率可能导致高交易成本,但具有优越的最终确定时间。
如果设计者没有在“证明者选择”决策中选择完全“免费”,他们可以选择将领导者选举权授予测序者。这有效地耦合了排序器和证明器。
频谱的“无耦合”端使测序仪无法选择其证明者。频谱的“硬耦合”端允许任何提交序列的定序器选择有资格证明它的证明者。一个中间选项是排序器选择多个合格的证明者。
“无耦合”不会对系统的吞吐量、可用性和效率产生进一步的影响。“硬耦合”引入了通过活性问题减慢系统最终确定的可能性,但会带来更高的系统效率。
该系统资本效率的提高有两个因素。首先,由于参与者能够提前进行链下同步。其次,因为 L1 为证明者实现“领导者选举”没有实现开销。
硬耦合在基于无限分叉+多重证明(如下所述)的系统中尤其相关,其中证明者选举开销和证明竞争乘以分叉数量。
注意:此选择与“Sequencer choice”的决定密切相关。如果设计者选择使用单个领先排序器,则不可能有分叉,并且该设计决策不适用。在“排序器选择”范围内的任何其他地方,设计者都需要评估并做出允许分叉的决定。
Free for All 中的“No fork”选择或“Sequencer choice”的其他一些中间设计选择会导致符合资格的排序器竞争成为第一个向 L1 提出序列的排序器。该序列被视为分叉选择,后续合格的排序器需要在其之上构建。请记住,建议的序列可能无效,后续的排序器将需要进一步构建链,而不应用知道该序列无效的状态修改。
无限的分叉选择将合格测序者提交的所有合格序列视为可能的分叉选择。选择无限分叉选择的设计者需要嵌入用于选择规范分叉的规则,后续合格的排序器可以使用这些规则来了解要构建的链。此外,选择无限分叉的设计者需要考虑排序者参与的加密经济激励,即使他们的分叉没有被选择为规范分叉。
中间立场是允许提交多个分叉,但限制一定数量的分叉。在这种情况下,设计者仍然需要嵌入规则来选择要建立的规范分叉选择(例如使用具有最高张贴键的定序器的有效分叉)。
在免费提交序列的情况下,从排序器的角度来看,“无分叉”选择决策会导致资本效率低下,因为多个排序器将竞争单个插槽。PBS 系统将迫使相互竞争的测序商进行竞标战并超出自己的出价,从而导致收入下降。然而,“无叉”选择通过为叉选择提供单一标准来简化设计。
无限的分叉选择会导致另一种资本效率低下的情况,因为多个排序器可能会提出相同或非常相似的分叉。最后需要选择其中一个,但仍可以考虑对其余的排序器进行补偿。然而,无限的分叉选择可以实现高交易吞吐量和汇总可用性。
注意:此选择与“允许分叉”的决定密切相关。如果设计者的选择是只有一个分叉,那么只有一种可能的分叉需要被证明,并且这种选择是不适用的。在“允许分叉”范围内的任何其他地方,设计者都需要选择证明分叉的方法。
出于“允许分叉”的考虑而选择“无限分叉”,或者选择有限版本的多个分叉会导致rollup存在多个可能的分叉。设计者需要选择是仅证明规范分叉选择(根据嵌入式分叉选择规则)还是启用证明多个分叉,即使它们可能不会被使用。
“单分叉证明”仅认为规范分叉有资格进行证明,除非被证明无效。根据“证明者选择”的决定,一个或多个证明者将为规范分叉的有效性/无效性提供证明。随后的分叉可以充当备份分叉,直到找到有效的分叉。
“多分叉证明”将所有分叉视为有资格进行证明。根据“证明者选择”的决定,每个分叉的一个或多个证明者将为规范分叉的有效性/无效性提供证明。
重要的考虑因素是,证明生成工作成本非常高,需要直接或间接激励。这意味着存在一种情况,设计需要考虑激励从未使用过的分叉的证明生成费用。
中间立场的选择可能是,对初始规范分叉使用“单分叉证明”选择,但如果证明它无效,则回退到“多分叉证明”以找到实际的下一个有效分叉。
“单分叉证明”的选择可能会导致汇总的最终确定速度变慢。如果规范分叉无效,网络将需要更多时间和资源才能转移到下一个分叉。在极端情况下,可能会有多个无效的分叉选择,根据分叉选择规则被选为规范(或次要)分叉选择,这将逐渐增加最终确定的时间。然而,这种选择不会导致证明者不必要的资源浪费,并且只会生成和提交必要的证明。
“多重分叉证明”的选择可能会导致资本效率低下和成本增加。证明所有分叉的资源,包括不必要的分叉,将由证明者花费,并对交易价格产生下游影响。然而,这种选择会带来最快的最终结果,因为所有分叉选择都被“并行”证明,并且无效的规范分叉不会减慢最终结果(rollup 可以移动到第一个有效的分叉)。
让我们将 rollup 视为一串槽。在每个槽中都有一个或多个序列,具体取决于设计者对“允许分叉”的决定。槽中的序列构建在所选规范分叉的结果汇总状态(已验证或未验证)之上(阅读如果根据分叉选择规则,有一个有效的序列被选为规范分叉,并且提交了该序列的证明,并且之前的所有槽都已确定,那么我们可以认为该槽已确定。
设计者需要做出的设计选择是,是否仅针对第一个未最终确定的槽启用提交和处理证明,或者使证明者能够在链上进一步提交基于其他尚未最终确定的槽的槽中的序列。
在频谱的“同步证明”端,rollup 仅接受第一个非最终确定槽中的序列的证明。
频谱的“异步证明”端看到 rollup 接受未来任何未最终确定的插槽中的序列证明。
同步证明保证了时隙汇总链中不会出现时间最终间隙。然而,这种选择会使系统最终确定受到 L1 吞吐量的瓶颈。此外,它要求证明者更密切地监控 L1 和内存池,以便正确地安排证明的提交时间。
异步证明允许证明者“触发并忘记”他们生成的任何证明,从而几乎确保每当 L1 中的规范链的最终确定赶上这个时隙时,它将能够立即最终确定并继续前进。然而,它打开了汇总规范链上最终确定间隙的可能性。无论为未来时段提交的所有证明如何,任何间隙都会延迟汇总规范链的最终确定。此外,它使用于最终确定规范汇总链的 L1 链上规则变得复杂,从而引入了系统的复杂性。
最后但并非最不重要的一点是,根据加密货币经济激励决策中的选择(稍后会讨论),差距可以将与分叉/插槽最终确定相关的支付及其证明的提交脱钩。这为 rollup 开辟了各种与智能合约相关的攻击向量(需要围绕遍历未最终确定的区块链来搜索可能的下一个最终确定的区块进行设计)。
简而言之,同步证明更安全、更容易实现,但为延迟最终确定打开了大门。并行证明优化了最终确定的时间,但是,它需要减轻与智能合约相关的攻击向量,并为系统引入了实际开发和加密经济的复杂性。
通常,排序器的速度和服务质量直接与汇总的速度和质量相关。排序器的动作越快,rollup 的推进速度就越快(尽管尚未得到证明)。然而,由于 rollup 的性质,在提交有效性/无效证明之前,排序器最终不会受到检查。
设计者需要做出两个重要的相互交织的决定:1)何时以及如何对排序器的正确行为进行奖励;2)何时以及如何对排序器的不当行为进行惩罚。
排序器支付有两种类型的设计选择:提前支付和延迟支付。
提前付款使测序者在提交序列后立即因其行为而获得奖励。该奖励可以是静态的(每批次固定奖励)或动态的(根据批次的大小)。固定奖励会激励测序人员尽早提交小批量。动态奖励会激励排序器尝试生成尽可能大的序列,以摊销 L1 承诺成本。
一旦序列被证明有效,延迟付款将使测序者获得奖励。一种选择是让排序器成为该序列的 L2 区块的币库,但这一决定需要与“允许分叉”的决定一起考虑。另一种选择是在 L1 中提供外部加密经济奖励。
对于排序器来说,早期支付在某种程度上更安全,资本效率更高——它们不需要大量库存来支付 L1 tx 成本,但在某些设计中,它们可能需要一种将收到的奖励兑换成 ETH 的方法。然而,提前付款会因不当行为而带来系统性风险,需要通过具体的排序器惩罚机制来解决。
延迟付款将排序器的成本和奖励在时间上分开——他们提前支付 L1 成本,但稍后获得奖励。这导致他们需要更大的库存,从而导致系统成本增加。然而,延迟付款对于系统来说更安全,因为排序器只有在行为正确时才会得到付款。
排序器惩罚的范围可以从“无惩罚”到“削减”。
除了所花费的 L1 tx 成本之外,没有任何惩罚可以使排序器的不当行为免受惩罚。
削减是指测序者被要求进行一次或每个序列的质押,并因不当行为而被削减其质押。
没有哪种惩罚更容易实施,但与早期排序器支付设计选择不兼容。此外,它还会根据“排序器选择”和“允许分叉”的选择,使系统遭受女巫攻击。
质押更难实施和平衡,因为需要为排序器提供更多的前期资金。此外,对于需要获得前期资金的排序器来说,它可能会导致汇总成本增加,作为“溢价”。然而,质押增加了系统的安全性和安全性,因为排序器在游戏中拥有有形的皮肤。
一般来说,rollup 状态的最终确定速度与证明者快速采取行动的动机直接相关。然而,证明者的工作通常非常耗费资源和时间。请记住,证明者实际上不会行为不端,因为 ZK 证明技术为我们保证某些内容要么有效,要么无法验证。
设计者需要做出的主要设计决策是如何以及何时向证明者的工作付费。
证明者付款的范围包括获得提交付款或 coinbase 付款。
当证明者提交成功验证的证明时,提交付款将获得固定或动态金额的奖励。
Coinbase 支付中,证明者将从此序列中获得交易费用。
固定提交付款更容易实施,但可能会导致付款不足以让证明者完成工作。
动态提交支付增加了复杂性,主要是确定支付大小的逻辑。
Coinbase 支付最容易实现,但同样可能会导致支付不足的情况。
Rollup 设计领域的一个流行主题是创建 rollup 堆栈——使开发人员能够基于现有技术(例如 OPStack)启动自己的 Rollup。对于这些正在形成的生态系统来说,一个流行的选择是在多个 rollup 之间使用“共享排序器”的概念。
值得注意的是,虽然排序器是共享的,但如果共享排序器是单个实体,则应用与单个 rollup 的集中化向量相同的集中化向量。从这个意义上说,无论是单个 rollup 还是 rollup 的生态系统,上述评估框架都适用于宏观层面。
为了更好地说明所描述的分析框架的有用性,这里是根据上述设计决策进行的虚构 rollup 设计。这种设计是极端的例子,不应被视为处方,并且具有明显的缺点。
设计针对超高事务吞吐量优化的汇总的设计者可以从为“排序器选择”选择完全无需许可的“Free for All”方式开始。这将允许排序器尽早完成 L1 中的序列提交。为了进一步促进这种行为,设计者可以在“排序器奖励”选项中选择“早期固定付款”,并在“排序器惩罚”部分中选择“无惩罚”。
为了在一定程度上减轻对交易成本的影响,设计者可以为“证明者选择”选择“领导者选举” ,并通过“硬耦合”排序器和证明者进一步优化它。
设计者可以选择为“允许选择”决策启用“无限分叉”,从而进一步保证系统将针对吞吐量进行优化。为了在一定程度上抵消增加的成本,设计者可以选择为“Number of Forks Proven”启用“Single Fork Proofs”。然而,这会对最终确定的时间产生负面影响。
为了在一定程度上抵消系统不断增加的交易成本,设计者可以启用槽的同步证明。
最后,设计者可以选择对证明者进行动态支付,以确保 rollup 链的最终确定。
尽管很极端,但该示例进行了所有权衡以确保最高的交易吞吐量,并努力降低交易成本。
Rollup 去中心化的设计空间非常广阔,其中许多领域仍未被探索。该分析框架试图帮助设计者和评估者进行导航并建立各种可用设计选择之间的因果关系。
作者和贡献者:George Spasov ([email protected])、Daniel Ivanov ([email protected])