作者: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三个阶段。
Beosin:Avalanche链上Platypus项目损失850万美元攻击事件解析:2月17日,据区块链安全审计公司Beosin旗下Beosin EagleEye安全风险监控、 预警与阻断平台监测显示,Avalanche链上的Platypus项目合约遭受闪电贷攻击,Beosin安全团队分析发现攻击者首先通过闪电贷借出4400万USDC之后调用Platypus Finance合约的deposit函数质押,该函数会为攻击者铸造等量的LP-USDC,随后攻击者再把所有LP-USDC质押进MasterPlatypusV4合约的4号池子当中,然后调用positionView函数利用_borrowLimitUSP函数计算出可借贷余额,_borrowLimitUSP函数会返回攻击者在MasterPlatypusV4中质押物品的价值的百分比作为可借贷上限,利用该返回值通过borrow函数铸造了大量USP(获利点),由于攻击者自身存在利用LP-USDC借贷的大量债务(USP),那么在正常逻辑下是不应该能提取出质押品的,但是MasterPlatypusV4合约的emergencyWithdraw函数检查机制存在问题,仅检测了用户的借贷额是否超过该用户的borrowLimitUSP(借贷上限)而没有检查用户是否归还债务的情况下,使攻击者成功提取出了质押品(4400万LP-USDC)。归还4400万USDC闪电贷后, 攻击者还剩余41,794,533USP,随后攻击者将获利的USP兑换为价值8,522,926美元的各类稳定币。[2023/2/17 12:12:32]
Block Proposal(BP)阶段中任何人都可以收集交易,并广播自己的BP内容。BP内容会包含三个部分: txs order hash, prover reward percentage, burn token amount
txs order hash: Proposer 从L2的交易池(mempool) 中选择最有价值的一批交易并排序,然后将这批交易的哈希值放进自己构建的区块中。
Cobo区块链安全团队公开0xDAO潜在盗币漏洞发现过程及技术细节解析:4月2日消息,0xDAO v2原计划上线前的几个小时,Cobo区块链安全团队启动对该项目的DaaS投前例行安全评估工作,随后在github开源的项目代码中发现了一个严重的安全漏洞。经评估,如果 0xDAO v2此时继续上线,该漏洞预计会造成数亿美金的资产损失。Cobo区块链安全团队立即启动应急预案,快速通过多个渠道联系到0xDAO项目方,提交该漏洞的完整攻击流程,紧急叫停了项目上线,随后协助0xDAO项目方对该漏洞进行了修复。
日前,0xDAO官方发布推文向Cobo区块链安全团队表示了感谢,并且表示会按照严重漏洞级别给予Cobo区块链安全团队漏洞赏金奖励。[2022/4/2 14:00:31]
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}
BlockHash是Prover要投票的Proposal的哈希,而Index of Proof Tree则是Prover要参与构建的Proof Tree的叶子索引值(后面会解释)
Aggregation聚合:Proposer在L2 p2p网络中收集Prover们针对BP的投票,将其聚合并放进BP中,提交到L1上(每个BP一般只包含与自己有关的投票记录)。
在此,需要强调BP被选中并纳入Rollp账本的先决条件:
DeFiBox上线Mdex 合约解析功能:据官方公告,Heco 数据合作平台 DeFiBox 现已上线Heco项目Mdex 的合约解析功能,用户通过 DeFiBox 可以直观查看收益率,并根据相关数据进行策略调整,提高了用户体验。[2021/1/27 13:38:26]
拥有最高的分数:
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(区块采纳阶段)详解:
在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。
动态 | 以太坊域名服务ENS将加入多代币支持,未来可解析至比特币地址:go-ethereum和以太坊域名服务(ENS)核心开发者Nick Johnson今天在Twitter 宣布,已经提交了ENS以太坊域名的多代币支持,该提议通过后ENS以太坊域名将支持解析域名到多个区块链地址,其中甚至可以包括比特币地址。这也意味着,ENS以太坊域名将可能成为跨链的域名系统,用户可以通过一个域名在多个区块链间互通,未来只需要向其他人展示自己的ENS以太坊域名即可。目前已经有多个数字加密货币钱包支持ENS以太坊域名,在使用以太坊钱包进行转账时,不需要再输入冗长的以太坊0x 地址,而只需要输入短地址即可。[2019/9/9]
接着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的同时,才声明这个区块对应的新状态有效。
动态 | EOS疑似将推出基于EOS的HandShake DNS解析服务:EOS疑似将推出基于EOS 的 HandShake DNS解析服务,一位开发者的Github显示正在开发EOS-handshake服务。Cosmos社区总监Chjango Unchained4月30日发推表示发现EOS开发者正在复用 Handshake 的开源代码。EOS或许会加入域名解析服务,生态会进一步扩大。(IMEOS)[2019/4/30]
如果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在每轮出块周期内,为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
标签:PROProofLOCBLOCKx42 ProtocolRugProofXTblock TokenVRBLOCKS价格
简报2023 年上半年,美联储 3 次加息,联邦基金利率目标区间达到 5%-5.25%,为 2007 年 8 月以来最高,全球市场对流动性收紧的担忧进一步加剧.
1900/1/1 0:00:00作者:Brianna Honkawa d'Estries;编译:Luffy,Foresight NewsZ 世代的影响力远远超出了 TikTok 化妆教程和古怪的时尚文化.
1900/1/1 0:00:00来源:普华永道《PwC Global Crypto Hedge Fund Report》,编译:Odaily星球日报 jk 传统对冲基金投资加密资产的比例下降到 2.
1900/1/1 0:00:00加密货币交易所币安(Binance)的执行长赵长鹏(CZ)在本周于 Twitter Space 举办例行 AMA 活动,分享目前加密货币市场的热点话题,其中还提及对于未来行情走势的看法.
1900/1/1 0:00:00所谓“通证化”(tokenization),就是指玩家对游戏物品、游戏角色和游戏货币拥有更多的掌控权。之前被游戏开发商攥在手里的权力现在被交到了游戏玩家的手中,因此催生出了繁荣的玩家经济.
1900/1/1 0:00:00▌人民日报:以标准建设推动区块链产业发展《人民日报》(2023年07月28日 第05版)刊文,区块链技术领域出台了首个国家标准.
1900/1/1 0:00:00