加载中 ...
首页 > 股票 > 区块链 > 正文

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

2023-07-28 17:34:19 来源:广东财经网

作者:0xhhh,EthStorage;编译:Faust,《极客web3》

导语:自Rollup成为显学以来,定序器Sequencer去中心化始终是以太坊/Celestia社区的关注焦点,同时也是Layer2研发工作中难以逾越的大山。对此,不同的Rollup方案均提出过关于节点去中心化的设想,为这一话题提供了无比广阔的想象空间。

本文作者以知名ZKRollup项目Aztec为例,以近期Aztec Labs提出的名为B52、Fernet的2个提案为切入点,为广大读者解析ZKR如何实现定序器节点的去中心化。

提案B52:Permissionless的定序器方案

提案B52打算实现以下目标(理想情况下):

1. 去中心化的sequencer网络,由L2节点自己选举每一轮的proposer

2. 去中心化的prover网络,prover节点硬件要求低

3. Rollup整体具备很好的抗审查性.

4.L2产生的MEV价值由L2节点获取

5. L2区块被提交到DA层时,可以获得比较有效的最终性Finality,不可逆转的finality则要等ValidityProof(有效性证明)提交完毕

6. L2 Token可以拥有不错的经济模型

7. L2区块和交易数据都在L2的p2p网络中传播

8. L2继承L1的安全性

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

该方案将整个L2出块流程划分成三个时间阶段:

Block Proposal Window(BPW)

BlockAcceptance Window(BAW)

State advances

其中,BPW(区块提议)阶段是多个定序器Seuqnecer提出不同的区块并竞争、Prover选择某个备选区块给出投票的过程。

BAW(区块采纳)是Prover给区块构造有效性证明Validity Proof,并将其提交的过程。

Block Proposal Window(区块提议阶段):

BPW可以再细分为Block Proposal, Block Voting, Aggregation三个阶段。

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

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

Block Proposal(BP)阶段中任何人都可以收集交易,并广播自己的BP内容。BP内容会包含三个部分: txs order hash, prover reward percentage, burn token amount

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

txs order hash: Proposer 从L2的交易池(mempool) 中选择最有价值的一批交易并排序,然后将这批交易的哈希值放进自己构建的区块中。

prover reward percentage: Sequencer分享给Prover的区块奖励百分比

burn token amount: Proposer提议销毁的L2 Native Token数量,接着它将自己提出的BP发送到L2 p2p网络中

Block Voting 投票阶段:

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

Prover 在p2p网络中接收到不同Proposer提出的BP后,会投票给能让自己获得最多reward的BP。不过投票的组成很特殊:

Vote={BlockHash, Index of Proof Tree}

BlockHash是Prover要投票的Proposal的哈希,而Index of Proof Tree则是Prover要参与构建的Proof Tree的叶子索引值(后面会解释)

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

Aggregation聚合:Proposer在L2 p2p网络中收集Prover们针对BP的投票,将其聚合并放进BP中,提交到L1上(每个BP一般只包含与自己有关的投票记录)。

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

在此,需要强调BP被选中并纳入Rollp账本的先决条件:

拥有最高的分数:

SCORE(y) = NUM_PROVERS (x)^3 * BURN_BID(z)^2`

NUM_PROVERS (x)是该BP获得的Prover投票数量,BURN_BID是该BP所提议销毁的L2 Token数量。由于BURN_BID越高,BP提议者最后获得的奖励越少,所以这个数值要设置得当。

同时,该BP需要在Block Proposal Window结束前被提交到L1上,对应的有效性证明Proof要在Block Acceptance Window结束前被上传到L1。

需要注意:BP的分数计算中,投票数量占的比重最大,其次才是burn token的数量。同时,B52方案允许多个proposer(其实就是sequencer)针对一个有效的BP名额展开竞争

B52方案仅需要Proposer(sequencer)在自己的BP中指定burn token的数量(类似于EIP1559的方式)而无需事先stake token,这可以让网络更加permissionless(无准入许可),同时也有利于L2的原生Token产生通缩。

此外,BP中不包含完整的交易数据,只包含交易序列的哈希,道理类似于以太坊PBS方案,旨在避免MEV被其他Proposer窥探并抢跑。

Block Acceptance Window(区块采纳阶段)详解:

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

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

在Block Proposal Window结束后,Prover需要reveal揭示他们的BP对应的完整交易数据。Prover投票的BP如果被选中的话(分数最高,可通过L1合约查询),它们就需要构造投票时给出的Index of Proof Tree所对应的Sub Proof Tree。

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

假设Aztec的区块包含2^13=16384的交易数量,并且有2048个prover,那么每个prover构造2^3=8笔交易组成的sub proof tree.然后prover把自己构造的sub proof tree广播到L2 p2p网络中。proposer接收之后,会把所有的sub proof tree聚合成一个block proof。

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

接着Propsoer将聚合的proof提交到L1的Rollup合约,合约会验证这个proof以及对应状态转换结果的正确性。这里要注意,Prover如果故意不提交proof的话,不仅无法获得Proposer许诺的区块奖励分红,还会被slash,因为要成为Prover是需要提前质押Token的。因此,与Proposer(Sequencer)不同,Prover并不是Permissionless的。

State Advances(状态推进阶段)详解:

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

在 Block Acceptance Window结束之后,Rollup合约会选择一个分数最高的区块纳入Rollup账本,并且把区块奖励Reward按照Proposer(Sequencer)事先声明的比例,分别发送给Proposer和Prover。

以上便是Aztec的B52方案。但本文作者认为,B52提案存在一些潜在问题:

问题一: 假如一个分数最高的区块的validity proof是不完整的。提案中给出的解决方法是,假如Proposer只提供了50%的proof,那么他也只能获得50%的区块奖励,从而确保Proposer没有动力故意不提交完整的proof。同时Prover自己也可以直接向合约直接提交proof。

按照提案的叙述,是可以接受一个区块没有完整交易的validity proof。这点其实是不合理的:因为:zkrollup都是在给出validity proof的同时,才声明这个区块对应的新状态有效。

如果proposer最后提交到L1的聚合proof缺失了某个交易的proof,很显然在这笔交易之后发生的所有交易的状态转换证明都是不成立的(因为交易是顺序执行并且有状态依赖的),我们也就无法确认这个区块对应的新状态是有效的。

因此这个时候,合理的方式应该是进入无限等待的Block Acceptance Window,直到所有交易的proof都提交完成。

问题二:假如得分最高的区块是非法区块(B52方案里也没有解释这点)。BP仅仅包含交易序列的哈希,所以恶意的proposer实际上可以故意构造有问题的交易,比如双花交易。那么这个时候,实际上需要在L1合约增加一个任何人都可以提交illeagal proof的函数, 这个illeagal proof用于证明得分最高的BP是一个非法区块。

并且这种举报应该是有奖励的,我们可以把proposer 发送到合约中的burn token都奖励给提交illegal proof的举报者节点。

有趣的思考:关于叔块和多余的Prover Work: B52方案实际上会在每轮分数最高且有效的BP出现后,把这一轮出现的其他BP(已经提交完整proof)作为叔块,分配一定的叔块奖励。

这实际上沿用了ETH POW共识机制的做法,为了避免算力过度集中,需要分配一部分出块奖励给未被采纳的区块提出者(矿工),以保障小矿池/个体矿工的利益,避免算力被大矿池垄断。因此采用以太坊表现不错的叔块机制也是一个很聪明的选择。

B52提案在Rollup去中心化方面的意义:Proposer是去中心化且不需要质押的,准入门槛低;但是因为需要自己Build最有价值的区块,以及需要收集其他Prover的投票,并聚合所有Proof,实际上Proposer的硬件门槛没有提案中叙述的那么低(比如带宽可能不会很低)。

所以,最终还是会成为一个比较中心化的网络,类似Mev-Boost Builder,因为最终能出块的proposer往往也是最擅长捕捉MEV的Block Builder。

同时,B52方案里的Prover需要质押资产,但因为仅仅需要生成sub tree proof,相比于那些需要完整生成整个block proof的方案来说,Prover的去中心化程度会更好(硬件要求可以放低了)。

活性Liveness:总体的网络Liveness是不错的,因为L2有自己的p2p网络来广播交易和投票/BP,并且Sequencer和Prover都比较去中心化。但是需要解决我们上面提到的两个问题,一个是得分最高的区块一定是合法的区块,第二个是需要等待完整的block proof提交到L1才能进入一个新状态。所以需要一个更有效的激励机制,避免整个Rollup网络由于缺失某一部分tx proof而无法正常工作(停机)。

抗审查性Censorship Resistance:如果我们能保证任何人都能发布区块提议BP,并且保证不只是Proposer可以提交block proof,那么网络会有很好的抗审查性 。

最终性Finality:L2的finality 跟网络的liveness息息相关,因为最终的verified finality 还是需要等待Block Proof的提交,但实际上你也可以相信一个得分最高的BP对应的区块内容(只要它里面不包含恶意交易)。

这个区块会在Block Acceptance Window 开始时被揭示reveal,意味着作为用户,仅仅需要等待一个Block Proposal Window的时间,你提交的交易所在的区块就可以被采纳。

继承L1安全性:作为一个通过提交validity proof来更新状态的L2,是可以继承L1的安全性。

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

Fernet 方案简介:通过VDF在每轮出块周期内,为Committee(就是Sequencer节点集合)中不同的节点设定一个预估的分数,最终分数最高的Sequencer提议的区块会成为有效块。

首先,如何加入Committee?实际上需要在L1质押16个ETH,并且在质押操作完成后等待4个L1区块后,加入Sequencer Committee。至于退出Sequencer Committee,则需要调用L1合约里的Unstake函数,之后再过3天才能拿回自己质押的剩余金额。

然后,什么是VDF?Verifiable Delay Function就是可验证延迟函数,该数学函数满足严格的串行执行特性,它会执行一些计算步骤,并至少会消耗一段可预估的时间。我们把VDF算出来的数值记作Score,它满足均匀正态分布,因此当Sequencer算出VDF Score后,就可以判断自己被选中为合法Proposer的概率有多大。

Sequencer的VDF计算如下:

Score = VDF( privatekey , public inputs )

public inputs = { current block number , randao }

randao是一个随机数,用来防止Sequencer提前计算未来所有区块高度下自己的VDF Score

Fernet整个流程主要分为3个阶段:

1. Proposal Phase 2. Proving Phase 3. Finalization

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

Proposal Phase:PROPOSAL_PHASE_L1_BLOCKS = 2 Ethereum blocks (该阶段会维持2个L1 block的时间)

这个阶段开始,每个Sequencer都会用VDF算出自己在当前出块高度下对应的VDF Score。如果Sequencer认为自己的VDF Score很有可能赢得这次区块的出块权(假设Score满足正态分布),那么他会提交一个Proposal到L1的Rollup合约。Proposal包含:交易序列的哈希、指向哪个之前的L2区块。

unproven block:只提交了Proposal到Rollup合约的区块block contents。接着,Sequencer需要把unproven block对应的 block contents 以及proof of VDF 一起发送到L2的p2p网络中。

ProvingPhase:PROVING_PHASE_L1_BLOCKS= 50 L1 blocks(该阶段会维持50个L1区块,大概10 min)

Prover从L2的p2p网络中接收所有Block Contents中对应的交易,并会为VDF Score更高的区块构建Proof。Proof的构建也是采取多个Prover并行协作的方式(类似B52方案) 。

因此需要Sequencer在最后将多个不同的交易对应的Proof聚合成一个Block Proof(包含VDF Proof),提交到L1的Rollup合约。任何人都可以将已经提交Block Proof的Block Contents提交到Rollup合约上。

Finalization:需要提交一笔L1的交易来Finalize区块,一个最终可以被Finalize的区块需要满足:提交了Block Contents和Block Proof,指向的前一个区块必须是Finalize的。在满足以上条件的基础上,还要拥有最高的Score。

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

流水线出块机制:需要注意的是,Fernet采用的是流水线出块机制.当第N块的Proposal阶段结束时,第N+1个块的Proposal就开始了(Aptos等公链也有类似的做法)。但对于第N+1个块来说,它需要等待第N个块Finalize后,它才能提交L1的Final Block交易,并且验证通过成为Final Block 。

潜在的攻击维度:假如VDF Score最高的Sequencer故意不在L2 p2p中广播Block Contents, 那么有可能导致区块重组reorg。

reorg的L2区块数量计算:1+PROVING_PHASE_L1_BLOCKS / PROPOSAL_PHASE_L1_BLOCKS =1+50/2=26块

解决方式:增加叔块机制,避免每个L2slot(出块时隙)只有一个完整的候选区块。

Fernet在去中心化上的意义:Sequencer通过质押16个ETH加入Sequencer Committee,准入门槛并不高(但也不低)。Prover不需要任何质押,但假如Prover不生成Proof也没有惩罚。这与B52方案基本是相反的。

活性Liveness:整体网络的 Liveness 是可以保证的,因为VDF+叔块机制可以保证每一轮不止有一个出块者。

MEV:MEV的考量是最特殊的,该方案计划引进PBS,这样作为Sequencer计算出一个高分的VDF Score后,就可以直接找Block Builder构造一个更有价值的区块。

抗审查性Censorship Resistance:Fernet 也将采用跟以太坊一致的PBS机制,因此本质上 Fernet 抗审查的问题等价于以太坊 PBS 的抗审查问题。

“广东财经网”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与

我们联系删除或处理,客服邮箱1098101642@qq.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同

其观点或证实其内容的真实性。

  • 声音提醒
  • 60秒后自动更新
  • 【民政部回应何时恢复婚姻登记】民政部社会事务司二级巡视员杨宗涛表示,婚姻登记场所是人群聚集场所,部分地区暂停婚姻登记工作是对人民群众安全负责。未停止登记的地方推广用电话、网络、qq群预约登记,控制登记人数,分批分段登记,减少人员聚集和在登记机关停留时间。已停止婚姻登记地方将根据当地疫情控制情况逐渐恢复。

    15:54
  • 欧洲央行副行长金多斯:欧洲央行还没有达到逆转利率。宽松政策的副作用更明显了。

    15:54
  • 财经网站Forexlive分析师Justin Low评瑞士1月CPI月率:尽管通胀年率保持稳定,但核心通胀率有所下降,这一点令人更加担忧。这只是进一步巩固了瑞士央行维持现有货币政策不变,并可能在未来寻求更多宽松措施的观点。

    15:54
  • 【武汉两大批发市场商户开业率超过80%】商务部市场建设司司长朱小良10日称,目前武汉生活必需品供应基本正常,除冷鲜肉、鲜叶菜等少数品种存在结构性短缺外,大部分重要生活物资供应充足,未发生明显抢购或脱销断档情况。当地白沙洲和四季美两大批发市场正常营业,商户开业率超过80%,日交易量上升至3000吨以上。(国是直通车)

    15:53
  • 【日本2019年经常项目顺差增长4.4%】日本财务省10日发布的国际收支初步统计报告显示,主要受外国人入境游消费扩大影响,2019年日本经常项目顺差增长4.4%。报告显示,2019年日本经常项目顺差为20.06万亿日元(1美元约合109.8日元)。其中,商品贸易方面,由于液化天然气价格下跌等因素,进口下降5.6%至75.56万亿日元;由于汽车部件及钢铁等产品出口减少,出口下降6.3%至76.12万亿日元。货物贸易顺差减少53.8%,为5536亿日元。(新华社)

    15:53
  • 欧元兑美元EUR/USD短线波动不大,现报1.0952。

    15:53
  • 瑞士1月CPI年率:0.2%,前值:0.2%,预期:0.1%;瑞士1月CPI月率:-0.2%,前值:0%,预期:-0.2%。

    15:52
  • 英镑兑美元GBP/USD短线走低13点,现报1.2890。

    15:52
  • 【宁德时代“供电”国产特斯拉 有望拉低售价20%】全国乘联会秘书长崔东树分析认为,“随着特斯拉国产化率提升和产能爬坡,未来特斯拉国产车型的价格下探空间还是很大的。”他预计今年下半年,国产Model 3车型的售价就有望降至25万元,降幅接近20%。(新京报)

    15:51
  • 【内蒙古:对不裁员或少裁员企业返还上年度50%失业保险费】据内蒙古新型冠状病毒肺炎疫情防控工作指挥部消息,疫情期间,内蒙古对不裁员或少裁员的企业返还上年度实际缴纳失业保险费的50%,对面临暂时性经营困难的中小企业,返还标准提高到上年度6个月企业及其职工缴纳社会保险费的50%。

    15:51
  • 【商务部:2019年服务进出口总额54152.9亿元 同比增长2.8%】商务部新闻发言人表示,2019年,在服务贸易创新发展试点等政策的激励下,我国服务贸易总体保持平稳向上态势,逆差明显下降,结构显著优化,高质量发展成效初步显现。全年服务进出口总额54152.9亿元(人民币,下同),同比增长2.8%。其中,出口总额19564.0亿元,同比增长8.9%;进口总额34588.9亿元,同比减少0.4%。(第一财经)

    15:51
  • 【振华股份:疫情导致下游客户开工推迟 产品库存上升】振华化学公告,公司目前生产经营稳定,所有产能均正常开工,原材料采购能基本满足生产需要,由于疫情导致下游客户开工推迟,公司出货量减少,产品库存有所上升。公司将根据客户需求、疫情及市场变化,适度调整生产经营策略,尽可能保持生产经营的稳定。

    15:50
  • 环旭电子2月10日晚间公告,公司2020年1月合并营业收入为23.27亿元,较去年同期的合并营业收入减少27.83%,较2019年12月合并营业收入环比减少37.23%。

    15:49
  • 精测电子:与京东方集团签订了多份销售合同,合同累计金额达到6.96亿元。

    17:12
  • 华夏银行:银保监会同意本公司在全国银行间债券市场发行不超过100亿元人民币的金融债券,募集资金全部用于绿色信贷。

    17:03