Celestia 研究员分析 Rollup(二):4 种新的 Rollup 方案

极客 Web3
2023年7月31日 16:05
收藏
本文由 Celestia 研究员 NashQ 关于 Rollup 模型分析的零散发言整合而成,包含 4 种新的 Rollup 变体。

原文作者: NashQ , Celestia

编译:林克,《极客 web3 》

 

导语:本文由 Celestia 研究员 NashQ 关于 Rollup 模型分析的零散发言整合而成,包含 4 种新的 Rollup 变体。此前,在《 Celestia 研究员分析6种 Rollup 变体: Sequencer =聚合器+ Header 生成者》一文中,他列举了6种不同的 Rollup 模型,而本文是他在此基础上新抽象出的 4 类 Rollup 模型。

此前, NashQ 将定序器 Sequencer 分成聚合器+ Header Producer 两大模块,从交易指令的生命周期切入,讲解了 Celestia 主权 Rollup 的运作原理,探讨了不同 Rollup 变体的抗审查性和活性,以及用户在信任最小化前提下的最低配置(就是要达到 Trustless , Rollup 用户至少要运行哪些类型的节点)。

变体7 : Based Rollup +多个 Header Producer +“ highest Protocol MEV ”

在这个 Rollup 变体中, Rollup 网络用户直接把交易数据发布到 DA 层区块上,然后 Header Producer 负责交易排序, MEV 被其提取。显然, Rollup 变体 7 的交易聚合/包含流程,与以前介绍过的 Based Rollup 一样,由 DA 层负责(用户直接把交易发到 DA 层),但交易排序与 Based Rollup 不同, DA 层节点不负责排序,由 HP ( Header Producer )负责。

下面假设有三个 HP ,它们彼此存在竞争关系,并且遵守名为“ highest Protocol MEV ”的 MEV 分配协议。该协议由 Cosmos 生态的 Skip Protocol 提出,不同于以太坊 PBS 方案, Block Builder 需要额外支付一笔付给区块链网络 Validator 的“小费”,付小费最多的 Builder 构建的区块会被 Validator 们采纳。同时, SKIP Protocol 提出了“主权 MEV ”的概念,意图让公链网络的全体 Validator 及社区有对 MEV 分配的自主权,解决以太坊 PBS 中 Builder 因飞轮效应越来越中心化的问题(但这不是本文要探讨的核心)。

在本文介绍的 Rollup 变体中,不同的 Header Producer 需要在自己创建的 Batch Header 中声明小费金额,付小费最多的 HP 发布的 Batch Header 自动被 Rollup 的节点们接纳(通过节点代码中写好的账本分叉选择算法自动完成)。

除此之外, HP 发布的 Batch Header 必须能够对应 DA 层上的完整交易批次 Batch 。

如果 HP 发布的 Header 存在错误,比如交易执行结果 Stateroot 不对,或者没有包含 Batch 中的某笔交易(丢交易),诚实的 Rollup 全节点会向轻节点广播欺诈证明 Fraud proof 。但通常(乐观情况下),轻节点可以接受 HP 发布的 Header 并相信它没有问题。

抗审查性分析:该 Rollup 存在 2 处可进行交易审查的点。第一处存在于 DA 层,它可以审查交易内容,并拒绝包含某些用户的交易。第二处还是存在于 DA 层,它可以审查 HP 提交上去的 Header ,并拒绝包含某个 Header ,这样它就可以和 Header 串谋,通过审查攻击来垄断 MEV 。

同时,交易排序由 HP 负责,由于有欺诈证明的存在(可以针对 HP 丢交易的情况), HP 自己往往不会展开审查攻击,但它可以贿赂 DA 层的节点去做(或者自己跑一些 DA 层的节点)。对此的解决方法是,延长 Rollup 交易序列被最终敲定的窗口期,使得被恶意 DA 层节点拒绝的 Header ,可在窗口期结束前及时被诚实 DA 层节点包含上链,进而增加 DA 层节点审查攻击的难度。

活性: L = L _ da && ( L _ hp1 || L _ hp2 || L _ hp3 ) 

如果 DA 层出现活性故障,则 Rollup 也会出现活性故障。在此基础上,仅当所有 HP 都出现活性故障时, Rollup 才会出现活性故障。

变体8:共享聚合器+去中心化 Prover 的 ZK Rollup

变体 8 使用共享聚合器 Shared Aggregator ( SA )进行交易包含+排序,由 SA 将交易序列 Batch 发布到 DA 层上,交易序列发到 DA 层后,交易次序理论上不再改变。

而在 Batch 发到 DA 层之前,共享聚合器 SA 可以先将 Batch + SA Header 广播给全节点和 Prover 将 SA Header 广播给轻节点,只是此时未上 DA 层的 Batch 还不稳定,随时可能被替换。

需要注意的是,共享聚合器 SA 发布的 Header 与 HP 发布的 Batch Header 不是一样东西。 SA Header 包含了密码学证明,确保 Rollup 节点从 DA 层读取的 Batch 的确由 SA 生成,而不是它人伪造的。

Prover 从 DA 层读取交易批次 Batch (也可以直接向共享聚合器同步),生成一个 ZK Proof + Batch Header ,发布到 DA 层。显然 Prover 充当了 HP 的角色

对于 Rollu p 的轻节点而言,收到 ZKP roof 后,这个 Batch 包含的交易序列就完成了最终确认。当然, Prover 也可以通过 DA 层链下的 Rollu p p 2 p 网络广播 ZKP ,使其更快的被轻节点接收,但此时 ZKP 还没发到 DA 层上,还不具备“最终性”。

抗审查性:变体 8 中, DA 层不能对某些笔特定的交易进行审查攻击,只能针对共享聚合器提交的整个交易批次 Batch 审查攻击。同时,共享聚合器可以拒绝打包某些用户的交易。

活性: L = L _ da && L _ sa && L _ pm 。该变体中,任何部分出现活性故障,则 Rollup 都会出现活性故障。如果 Prover 故障,那么轻节点将无法有效的同步 Rollup 账本进度。但由于全节点同步了所有的交易序列 Batch ,它可以跟上账本进度。此时全节点不受影响,轻节点全部失效,等价于以前介绍过的采用共享聚合器的 Based Rollup 的情况。

信任最小化的最低配置: DA 层轻节点+共享聚合器网络轻节点+ Rollup 轻节点

变体9:共享聚合器+去中心化 Prover +有多个 DA 的 ZK - Rollup

变体 9 其实基于上面的变体8展开,只是其 DA 层不止一个,这样可以有效提高 Rollup 的活性。变体 9 中,共享聚合器 SA 可以将交易序列 Batch 发布到任意一个 DA 层上,它可以根据自己的需求选择不同的 DA 层发布数据,这样就可以动态优化 Rollup 的相关参数,比如:数据成本、安全性、活性、交易延迟和最终性。

根据 Rollup 项目方的需求,可以定制最便宜、最安全、最活跃、结算速度的 Rollup ,选用吞吐量最高的 DA 层。一般而言,某个 Rollup 区块高度(比如第 1 万个)的 Batch 不必同时存在于不同的 DA 层上,但如果存在,它们的内容必须一致。如果不同的 DA 层上出现了高度相同、内容不同的两个 Batch ,则说明共享聚合器故意搞账本分叉。

这里,我们选用了和变体 8 相同的去中心化 Prover Market ,由 Prover 充当 Header Producer发布 Batch Header 和 ZKProof 。此时, Prover 需要通过变体7中提到的小费竞拍机制展开竞争(由 SKIP Protocol 提出)。

变体 9 的交易结算速度(最终确认速度)受它采用的出块最快的 DA 层影响。

抗审查性:共享聚合器可以搞审查攻击,但可选的 DA 层变多了,与 DA 层相关的审查攻击可能性降低了。

活性: L = ( L _ da1 || L _ da2 ) && L _ sa && L _ pm 。

与之前的变体相比,变体 9 活性更强。只要不是全部 DA 层网络出现活性故障,一切就能够正常进行。

信任最小化的最低配置:不同 DA 层的轻节点+共享聚合器网络轻节点+ Rollup 轻节点。

显然,我们采用的 DA 层越多,就必须运行越多的轻节点。但这样做的好处可能会盖过其成本。

变体 10:两个 ZK - Rollups +去中心化 Prover ,彼此间有一个链上轻节点(可桥接)

变体 10 是变体5的扩展,目的是创建2个可以相互桥接的 ZK - Rollup 。相比于变体5( Based Rollup + ZK P+去中心化 Prover ),变体 10 多了一个中继器 Relayer 角色,它将 Batch Header + ZK - Proof 包装到一笔交易中。只要将这笔交易发给 Rollup 2运行的 Rollup 1轻节点,就能证明某个高度的 Batch 是有效的。当然, Rollup 2还需要运行 DA 层的轻节点

这是保持跨链桥信任最小化的先决条件。但如果是从以太坊 Rollup (基于智能合约的 SC Rollup )上往以太坊跨链,则不需要再运行 Rollup 的 DA 层轻节点,因为 DA 层就是以太坊本身。这一点与 Celestia 的主权 Rollup 极为不同,后者的 Rollup 之间互跨,必须运行对方 DA 层的轻节点。

Relayer 发送跨链交易时,它将被 Rollup 2 的聚合器 2 和HP 2 处理。我们将两者都添加到图中,以理解 Rollup 2 的节点如何处理跨 Rollup 的交易。

Rollup 2 的中继器 Relayer 将获取 Rollup 2的 Batch Header 和 ZKP ,并将其发回 Rollup 1。 Rollup 1还有一个 Rollup 2的轻节点和 DA 层的轻节点。

我们可以让模型更加简化。假设两个 Rollup 使用相同的共享聚合器和 Header Producer ,换言之,他们采用的 DA 层是重合的

在这种情况下,可以直接将 Relayer 取缔。因为 Batch Header 和 ZK Proof 已由 HP 发布到相同的 DA 层,因此可以直接在 DA 层上读取另一个 Rollup 的 Header 和 ZK P等数据,不再需要经由 Relayer 传给共享聚合器。

显然,使用相同 DA 层的 Rollup 不需要依赖于 Relayer (很多跨链桥都依赖中继节点)。这可以解决跨链桥的安全问题(从这点来看,以太坊的 SC Rollup 之间的互跨,安全性要高于不同公链间的跨链)。

此时,信任最小化的最低配置: DA 层轻节点+ Rollup 轻节点。

链捕手ChainCatcher提醒,请广大读者理性看待区块链,切实提高风险意识,警惕各类虚拟代币发行与炒作, 站内所有内容仅系市场信息或相关方观点,不构成任何形式投资建议。如发现站内内容含敏感信息,可点击 “举报”,我们会及时处理。
ChainCatcher 与创新者共建Web3世界