ROL:一文了解 Native Rollup:PoS 和 PoW 混合共识 L3 方案_TrollCoin

撰文:nanfengpo,Opside联合创始人

关于PoS&PoW的混合共识

NativeRollup是一个基于zk的Layer3扩容解决方案,其中Layer2是一个EVM-compatible且Rollup-friendly的链,Layer3则由系统原生支持的多个zkRollup组成。Layer2为zkRollup做了很多系统层面的优化。这个3层架构中的Layer2和Layer3,共用了一个PoS与PoW融合的共识机制:

Layer2:

PoS:Layer2将采用ETH2.0的PoS并对其进行必要的改进。因此,Layer2的共识层将有超过10万个验证者。任何人都可以质押token来成为验证者。这些验证者也将根据EIP-4844提供一个数据可用性层,从而容纳Layer3的Rollup提交的batch。此外,Layer2的PoS是可证明的,validator会定期把PoS证明提交到Layer1上。validator可以获取PoS这部分的区块奖励和Gas费。

Layer3:

PoS:validator除了提议Layer2的block,也提议Layer3的block,也就是说validator同时是Layer3中nativerollup的sequencer。Sequencer可以获取其中的交易Gas费。

PoW:只要拥有zkp的算力,任意validator都可以成为nativerollup的prover。Prover为Layer3的各个Nativerollup生成zkproof。对于sequencer提交的Layer3的各个区块,prover依据PoW的规则来竞争,最先提交zkproof的prover将获得Layer3的区块奖励。

关于NativeRollup的去中心化共识机制

下面将详细介绍Layer3中的nativerollup的去中心化共识机制。

Sequencer

sequencer这个角色由Layer2的validator来承担。每个Layer2的区块中,所有nativerollup都有且仅有1笔交易来提交各自的rollupblock,且这些rollupblock只能由Layer2区块的validator来提交。如果该Layer2区块中没有包含所有的nativerollup的block,则该区块无效。

即使某个nativerollup在一段时间内没有交易,sequencer也必须提交该rollup的block。此时该rollup的block为空。

sequencer的收益是该sequencer提交的各个nativerollup的block中的交易手续费。注意,所有nativerollup中的交易手续费都是由Layer2token来支付的。因此,该sequencer打包的rollup交易越多,收益也越多。

当sequencer把rollupblock打包上链后,该rollupblock就进入了finalized状态。因此该区块最终确认所需要的时间与Layer2是相同的。

如果某一个rollupblock没有在一定时间内被prover提交的proof验证,则该block会被跳过,相应的sequencer也将被slash。

Prover

与sequencer必须是当前Layer2区块的validator不同,prover可以是任意的Layer2的validator。只要一个validator具有zkp算力,即可称为任意的nativerollup的prover。

这些prover通过PoW的方式来竞争,最先提供某个rollupblock的有效proof的,就能获得相应的blockreward。注意,所有nativerollup的blockreward,都是由Layer2token来支付的。这部分IDE就是Layer2的PoW部分的奖励,系统会根据zkp算力的供需平衡来自动调整PoW的奖励额度。

sequencer打包的rollupblock中,已经包含了生成proof所需要的所有数据。因此,对于每个rollup,prover可以并行生成多个block的proof。同样的道理,这些blockproof的验证也是并行的。

当一个rollupblock和它的所有父区块都被验证时,该区块就被验证了,即verified状态。

总结

通过PoS&PoW的混合共识机制,Layer2和Layer3具有相同的共识层与验证者集合,确保了整个架构的安全性和去中心化。更为重要的是,Layer3的各个NativeRollup在底层架构上拥有了一个规范化的去中心化解决方案。Layer2定义了一个统一的系统合约,rollup的开发者只需要实现这些规范化的接口,并注册rollupslot成为nativerollup。这样,开发者可以更加关注业务逻辑的实现,而不必关心在底层架构层面Layer2与Layer3如何交互,也不需要维护rollup的全节点和zkp算力。

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

区块博客

[0:15ms0-9:415ms