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

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

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

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

提案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的安全性

该方案将整个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三个阶段。

Numen发布微软漏洞解析,黑客可通过该漏洞获取Windows完全控制权:6月9日消息,安全机构 Numen Cyber Labs 发布微软 win32k 提权漏洞解析。Numen 表示,该漏洞系 win32k 提权漏洞,是微软 Windows 系统层面的漏洞。通过该漏洞,黑客可获取 Windows 的完全控制权。

Numen 指出,win32k 漏洞历史众所周知。但在最新的 windows11 预览版中,微软已经在尝试使用 Rust 重构该部分内核代码。未来该类型的漏洞在新系统可能被杜绝。

此前报道,5 月,微软发布的补丁更新解决了 38 个安全漏洞,其中包括一个零日漏洞。[2023/6/9 21:25:55]

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

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

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

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

Block Voting 投票阶段:

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

Vote={BlockHash, Index of Proof Tree}

安全团队:Reaper Farm项目遭到攻击事件解析,项目方损失约170万美元:据成都链安“链必应-区块链安全态势感知平台”安全舆情监控数据显示,Reaper Farm项目遭到黑客攻击,成都链安安全团队发现由于_withdraw中owner地址可控且未作任何访问控制,导致调用withdraw或redeem函数可提取任意用户资产。攻击者(0x5636e55e4a72299a0f194c001841e2ce75bb527a)利用攻击合约(0x8162a5e187128565ace634e76fdd083cb04d0145)通过漏洞合约(0xcda5dea176f2df95082f4dadb96255bdb2bc7c7d)提取用户资金,累计获利62ETH,160万 DAI,约价值170万美元,目前攻击者(0x2c177d20B1b1d68Cc85D3215904A7BB6629Ca954)已通过跨链将所有获利资金转入Tornado.Cash,成都链安链必追平台将对被盗资金进行实时监控和追踪。[2022/8/2 2:54:19]

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

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

在此,需要强调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。

奇虎360公开“基于联盟区块链的标识解析方法”专利:8月30日消息,北京奇虎科技有限公司、中国信息通信研究院日前联合公开一种“基于联盟区块链的标识解析方法、装置、存储介质及服务器”专利,申请日期为2021年4月29日,申请公布号:CN113315811A。天眼查App显示,该专利属于计算机技术领域。方法包括在第一对外节点接收到标识解析请求的情况下,从第一对外节点对应的本地数据库中查询是否存在与标识解析请求中的标识符对应的IPFS哈希值。

若未查询到IPFS哈希值,则基于标识解析请求向联盟区块链中除第一对外节点之外的其他节点发送第一查询请求;接收由联盟区块链中响应于第一查询请求的节点发送的IPFS哈希值,并基于IPFS哈希值通过第一对外节点访问IPFS服务,以获取IPFS哈希值对应的标识解析信息由此可有效提高对标识解析过程的安全性,保证通过标识解析得到的数据不易被篡改。(邮箱网)[2021/8/30 22:45:51]

需要注意: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(区块采纳阶段)详解:

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

假设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。

声音 | 鲁春丛:推动区块链的创新技术在标识解析中深度应用:据中国信通院官网,8月15日,在中国工业互联网标识大会上,工业和信息化部信息通信管理局副局长鲁春丛演讲表示,大力推进标识解析技术,标准研制,搭建规模性基础技术创新以实验的环境,联合产学研用各方面力量,促进新型标识体系的研制,推动区块链的创新技术在标识解析中深度应用。据介绍,标识解析体系是工业互联网的核心基础设施,是新一代互联网的“中枢神经”。[2019/8/18]

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

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

在 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,很显然在这笔交易之后发生的所有交易的状态转换证明都是不成立的(因为交易是顺序执行并且有状态依赖的),我们也就无法确认这个区块对应的新状态是有效的。

动态 | 浙江大学携手剑桥大学发布区块链生态深层解析报告:近期,浙江大学互联网金融研究院携手剑桥大学新兴金融研究中心发布区块链生态深层解析报告《Distributed Ledger Technology Systems-A Conceptual Framework》的中文版——《分布式账本技术系统:一个概念框架》。浙大AIF副院长杨小虎指出,该报告不仅阐明了如何识别DLT系统,分析和比较现有的DLT系统,还通过六个实例为新系统设计提供有用的借鉴。[2018/8/17]

因此这个时候,合理的方式应该是进入无限等待的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在每轮出块周期内,为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

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。

流水线出块机制:需要注意的是,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 的抗审查问题。

极客 Web3

个人专栏

阅读更多

Foresight News

金色财经 Jason.

白话区块链

金色早8点

LD Capital

-R3PO

MarsBit

深潮TechFlow

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

链链资讯

[0:15ms0-4:605ms