解析Aztec Labs的B52提案:ZK-Rollup如何实现去中心化的定序器节点?

Aztec Labs的B52提案:ZK-Rollup的去中心化定序器节点实现方式

Aztec ZKRollup方案:去中心化的定序器节点

在以太坊继Rollup之后,Sequencer去中心化一直以来都是以太坊和Celestia等社区关注的焦点,也是Layer2开发中的一个巨大挑战。对此,各个Rollup方案都提出了关于节点去中心化的设想,为这个话题提供了广阔的想象空间。

本文以知名的ZKRollup项目Aztec为例,解析了如何实现ZKRollup的定序器节点的去中心化。具体地,本文以Aztec Labs最近提出的两个名为B52和Fernet的提案为切入点,为读者深入分析了这些方案的实现原理和技术细节。

提案B52:无需许可的定序器方案

B52提案旨在实现以下目标:

  1. 去中心化的sequencer网络,由L2节点自行选举每一轮的proposer。
  2. 去中心化的prover网络,prover节点的硬件要求较低。
  3. Rollup具备很好的抗审查性。
  4. L2节点可以获取L2产生的MEV价值。
  5. L2区块被提交到DA层时,可以获得比较有效的最终性Finality,不可逆转的finality则要等ValidityProof(有效性证明)提交完毕。
  6. L2 Token具备良好的经济模型。
  7. L2区块和交易数据都在L2的P2P网络中传播。
  8. L2继承L1的安全性。

为了实现这些目标,B52将整个L2出块流程划分为三个时间阶段:Block Proposal Window(BPW)、Block Acceptance Window(BAW)和State Advances。其中,BPW阶段又可以细分为Block Proposal、Block Voting和Aggregation三个阶段。

阶段 描述
Block Proposal Window 多个定序器Sequencer提出不同的区块并竞争,Prover选择某个备选区块给出投票
Block Acceptance Window Prover给区块构造有效性证明Validity Proof,并将其提交
State Advances Rollup合约选择分数最高的区块纳入Rollup账本

具体来说,在BPW阶段,任何人都可以收集交易,并广播自己的区块提议(BP),其中BP包含交易序列的哈希、Prover奖励比例和销毁的L2 Native Token数量。Prover节点会接收不同Proposer提出的BP并投票,投票的组成由BlockHash和Proof Tree的索引组成。最后,Proposer将收集到的投票聚合,并将自己的BP提交到L1上。

若要将BP纳入Rollup账本中,BP需要满足一定的分数要求。分数计算方法为SCORE(y) = NUM_PROVERS(x)^3 * BURN_BID(z)^2,其中NUM_PROVERS为该BP获得的Prover投票数量,BURN_BID为该BP所提议销毁的L2 Token数量。此外,BP需要在BPW结束前提交到L1上,并在BAW结束前提交对应的有效性证明Proof。

需要注意的是,B52方案允许多个proposer(即sequencer)针对一个有效的BP展开竞争。此外,BP中不包含完整的交易数据,只包含交易序列的哈希,目的是为了避免MEV被其他Proposer窥探并抢跑。

在BAW阶段,Prover需要揭示其BP对应的完整交易数据,并构建Proof Tree。随后,Proposer将不同交易生成的Proof聚合,并提交到L1的Rollup合约进行验证。最后,Rollup合约选择分数最高且有效的BP纳入Rollup账本,并将区块奖励按比例分配给Proposer和Prover。

B52方案在Rollup去中心化方面的意义是,Proposer是去中心化的且无需质押,准入门槛较低,而Prover节点无需质押资产,可通过生成sub proof来参与出块。然而,B52方案也存在一些潜在问题,如得分最高的区块的validity proof不完整和得分最高的区块是非法区块的情况。为了解决这些问题,提案者提出了相应的解决方案,以保证网络的正常运行和安全性。

提案Fernet:引入VDF选拔合法Proposer

Fernet提案通过引入Verifiable Delay Function(VDF)在每轮出块周期内为Sequencer节点设置一个预估分数,最终具有最高分数的Sequencer将成为合法的Proposer。

要加入Sequencer Committee,节点需要质押16个ETH,并在完成质押操作后等待4个L1区块后加入。退出Sequencer Committee,则需要调用L1合约里的Unstake函数,并在3天后才能取回剩余的质押金额。

VDF是一种可验证的延迟函数,满足严格的串行执行特性。Sequencer通过VDF算出自己在当前出块高度下的VDF Score,与VDF Score最高的Sequencer有更大的概率被选中为合法的Proposer。为了防止Sequencer预先计算未来所有区块高度下的VDF Score,引入了一个随机数randao。

Fernet的整个流程可以分为Proposal Phase、Proving Phase和Finalization阶段。在Proposal Phase阶段,Sequencer通过VDF算出自己的VDF Score,并提交Proposal到Rollup合约。同时,需要将未经证明的区块的内容和VDF Proof通过L2的P2P网络广播出去。在Proving Phase阶段,Prover节点接收区块内容并构建Proof,并将Proof聚合为Block Proof,提交到L1的Rollup合约。在Finalization阶段,提交一笔L1交易来最终确定区块。

Fernet方案的实现中采用了流水线出块机制,即当第N块的Proposal阶段结束时,第N+1块的Proposal阶段开始。但第N+1块需要等待第N块Finalize后才能提交L1的Final Block交易,并验证通过成为Final Block。

Fernet方案的去中心化在于,Sequencer需要质押资产加入Sequencer Committee,准入门槛较高。而Prover节点不需要任何质押,并且即使不生成Proof也没有惩罚。相比与B52方案,Fernet方案的去中心化程度更高。

总结来说,Aztec ZKRollup的B52和Fernet方案为Rollup的去中心化和安全性提供了两种不同的解决方案。通过深入分析这些方案的实现原理和技术细节,我们可以更加全面地了解Rollup技术的发展和应用前景。