一文了解 Native Rollup:PoS 和 PoW 混合共识 L3 方案
撰文:nanfengpo,Opside 联合创始人
关于 PoS & PoW 的混合共识
Native Rollup 是一个基于 zk 的 Layer 3 扩容解决方案 ,其中 Layer 2 是一个 EVM-compatible 且 Rollup-friendly 的链,Layer 3 则由系统原生支持的多个 zkRollup(称为 native rollup)组成。Layer 2 为 zkRollup 做了很多系统层面的优化。这个 3 层架构中的 Layer 2 和 Layer 3,共用了一个 PoS 与 PoW 融合的共识机制:
Layer 2:
- PoS:Layer 2 将采用 ETH 2.0 的 PoS 并对其进行必要的改进。因此,Layer 2 的共识层将有超过 10 万个验证者。任何人都可以质押 token 来成为验证者。这些验证者也将根据 EIP-4844 提供一个数据可用性层,从而容纳 Layer 3 的 Rollup 提交的 batch。此外,Layer 2 的 PoS 是可证明的,validator 会定期把 PoS 证明提交到 Layer 1 上。validator 可以获取 PoS 这部分的区块奖励和 Gas 费。
Layer 3:
-
PoS(Sequencer):validator 除了提议 Layer 2 的 block,也提议 Layer 3 的 block(即 data batch),也就是说 validator 同时是 Layer 3 中 native rollup 的 sequencer。Sequencer 可以获取其中的交易 Gas 费。
-
PoW(Prover):只要拥有 zkp 的算力,任意 validator 都可以成为 native rollup 的 prover。Prover 为 Layer 3 的各个 Native rollup 生成 zk proof。对于 sequencer 提交的 Layer 3 的各个区块,prover 依据 PoW 的规则来竞争,最先提交 zk proof 的 prover 将获得 Layer 3 的区块奖励。
关于 Native Rollup 的去中心化共识机制
下面将详细介绍 Layer 3 中的 native rollup 的去中心化共识机制。
Sequencer
-
sequencer 这个角色由 Layer 2 的 validator 来承担。每个 Layer 2 的区块中,所有 native rollup 都有且仅有 1 笔交易来提交各自的 rollup block,且这些 rollup block 只能由 Layer 2 区块的 validator 来提交。如果该 Layer 2 区块中没有包含所有的 native rollup 的 block,则该区块无效。
-
即使某个 native rollup 在一段时间内没有交易,sequencer 也必须提交该 rollup 的 block。此时该 rollup 的 block 为空。
-
sequencer 的收益是该 sequencer 提交的各个 native rollup 的 block 中的交易手续费。注意,所有 native rollup 中的交易手续费都是由 Layer 2 token(IDE)来支付的。因此,该 sequencer 打包的 rollup 交易越多,收益也越多。
-
当 sequencer 把 rollup block 打包上链后,该 rollup block 就进入了 finalized 状态。因此该区块最终确认所需要的时间与 Layer 2 是相同的。
-
如果某一个 rollup block 没有在一定时间内被 prover 提交的 proof 验证,则该 block 会被跳过,相应的 sequencer 也将被 slash。
Prover
-
与 sequencer 必须是当前 Layer 2 区块的 validator 不同,prover 可以是任意的 Layer 2 的 validator。只要一个 validator 具有 zkp 算力,即可称为任意的 native rollup 的 prover。
-
这些 prover 通过 PoW 的方式来竞争,最先提供某个 rollup block 的有效 proof 的,就能获得相应的 block reward。注意,所有 native rollup 的 block reward,都是由 Layer 2 token(IDE)来支付的。这部分 IDE 就是 Layer 2 的 PoW 部分的奖励,系统会根据 zkp 算力的供需平衡来自动调整 PoW 的奖励额度。
-
sequencer 打包的 rollup block 中,已经包含了生成 proof 所需要的所有数据。因此,对于每个 rollup,prover 可以并行生成多个 block 的 proof。同样的道理,这些 block proof 的验证也是并行的。
-
当一个 rollup block 和它的所有父区块都被验证时,该区块就被验证了,即 verified 状态。
总结
通过 PoS & PoW 的混合共识机制,Layer 2 和 Layer 3 具有相同的共识层与验证者集合,确保了整个架构的安全性和去中心化。更为重要的是,Layer 3 的各个 Native Rollup 在底层架构上拥有了一个规范化的去中心化解决方案。Layer 2 定义了一个统一的系统合约,rollup 的开发者只需要实现这些规范化的接口,并注册 rollup slot 成为 native rollup。这样,开发者可以更加关注业务逻辑的实现,而不必关心在底层架构层面 Layer 2 与 Layer 3 如何交互,也不需要维护 rollup 的全节点和 zkp 算力。