以太坊:Post-Merge时代:以太坊新共识的破局重生

原文作者:FrankFan,0xCryptolee

「只要勇于做出承诺,世界自会助你铲除不可逾越之障碍。去完成未竟之梦想,宇宙绝不会抑制你前进的步伐,这即是奥义所在。」

——以太坊PoW时代最终区块留言

以太坊经历了历史性的升级,发展进入了新的阶段。合并之后,以太坊将继续沿着扩容和去中心化的方向前进。TheMerge仅仅是PoS时代的第一步,以太坊依然面临着巨大的挑战,验证者群体中心化,扩容,LazyValidatorProblem等问题依然制约着应用的爆发和以太坊的安全扩展,本文将从TheMerge开始,逐步分析POS采用的共识算法,重点探索使用DVT技术来解决验证者单点风险的问题,和从业者一起分析以太坊的问题和未来的发展机会,建议具备一定以太坊基础的读者阅读此文章。

1.TheMerge

1.1背景

TheMerge是以太坊有史以来最大的技术升级,在2022年9月15日实现了ExecutionLayer和ConsensusLayer的合并,其最大的变化是将以太坊的PoW共识切换为PoS共识。

VitalikButerin推文,以太坊合并将使全球用电量减少0.2%。

代币增发:PoW时代的ETH代币增发停止,新的ETH仅通过PoS共识出块产生,以太坊的通胀率降低,当basefee超过15gwei的时候,以太坊甚至进入通缩。

图3:合并后BurnTotal

质押收益:gas费用和MEV的收入被分配给Validator,验证者的质押币本位收益达到5-7%。

图4:RocketPool质押收益率

Withdraw:合并以后质押的ETH并不能立即Withdraw,需要在上海升级以后才会放开Withdraw的限制,并且在提款的时候,用户并不能直接提取,为了避免大规模的提款,对于单次提款的数量和时间都有一定的限制,所以开放提款以后,并不会出现大量提款抛售的情况。具体的信息可以参考EIP-4895:Beaconchainpushwithdrawalsasoperations

数据结构的改变:ConsensusBlock里面会包含ExecutionBlock的Hash值,同时ExecutionBlock里面和PoW相关的参数不再生效。mixHash字段会记录以太坊原生的RANDAO随机数,供EVM调用,以太坊的开发者可以直接使用这个随机数到智能合约开发中。

共识替换:PoW共识被PoS替换,原有的矿工职责被验证者替代,同时存在两条链,需要同时运行两个客户端节点,ExecutionLayerClient和ConsensusLayerClient。

图6:合并后以太坊客户端

切换为PoS共识以后,以太坊的算法由Ethash转换为了CasperFFG,相较之前的算法,Gasper更加节能,不需要再通过专门的矿机计算难度值,而是通过随机的方式来出块,让我们往下继续探索以太坊的共识算法和出块方式!

2.Gasper

目前信标链上面质押了13,830,378个ETH,活跃验证者的数目为432,203个,根据PBFT的特点,beaconchain的验证者数目很多,网络通信数据量大,简单的PBFT不再适用于以太坊网络,于是以太坊在网络结构上面采用PBFT的思想对网络架构进行了改进和设计,使用了Gasper算法。

Polygon PoS链硬分叉将于1月17日进行,验证者需提前更新节点:金色财经报道,Polygon官方近日确认,开发人员提议的Polygon PoS链硬分叉升级将于1月17日进行。1月14日,Polygon发言人向Cointelegraph提供硬分叉的更多细节:硬分叉被编码在区块高度>= 38,189,056时进行。将在没有中心化/单一参与者影响的情况下启动。网络验证者必须在指定的区块高度之前更新节点,而且他们已经在这么做了。

在Polygon治理团队的15个投票者中,87%的人投票赞成将Base Fee Change Denominator函数从当前值8更改为16,以减少Gas费高峰情况,并将SprintLength函数从64个区块减少到16个,以解决链重组问题。Polygon团队还确认,MATIC代币持有者和委托者(Delegator)不需要采取行动,应用程序在硬分叉期间不会受到影响。

金色财经此前报道,Polygon PoS区块链的开发人员提议启动硬分叉软件升级,以解决Gas峰值问题并增强侧链网络上区块的安全性。[2023/1/15 11:13:10]

Gasper为beaconchain协议中的终局性工具,用于确定哪些区块应被参与者认定为已经确定的、不可更改的,同时在分叉的时候用于确定哪个分叉链是主链。Gasper的终局性一般化了《CasperFriendlyFinalityGadget》论文中的概念。

Slot:合并以后一个Slot就是一个区块,有一个committee负责在12S的时间内生成该Slot。

Epoch:每32个Slot组成一个Epoch,一个Epoch的时间为384S,即6.4Min。

Committee:每个验证者委员会最低会分配128个Validator,验证者会对自己负责的Slot进行Attestation操作,并且在委员会中有一个Validator会被随机选为Proposer,进行出块。

Attestation:每一个Slot对应的committee里面的Validator都需要对上一个Epoch进行投票签名,确保自己认可了上一个Epoch里面的交易。

Validator:由于以太坊TheMerge以后共识算法切换为了POS,原来的矿工被Validator取代,Validator通过质押32ETH资产成为Validator,负责参与各个Epoch内slot的出块和签名工作。

Proposer:Proposer来自committee中的Validator,通过RANDAO产生的随机数选出,被选用于Slot区块的打包。

Beaconchain:用于替代PoW共识的PoS区块链,beaconchainnode被用来挂载DataBlobs的交易类型,为Rollup提供更多的存储空间。

2.2流程

Epoch开始的时候,通过RANDAO为每一个Slot分配一个Committee对上一个Epoch进行Attestation。

为当前Epoch的32个Slot分配多个Aggregator将committee对上一个Epoch的Attestation聚合以后记录进Slot区块里。

RANDAO通过生成随机数确定Proposer负责出块。

Composable Finance:额外5%的奖励将分发给所有参与众贷质押的用户:10月30日消息,流动性基础设施协议Composable Finance发推称,平台锁仓量已超过10万枚KSM,因此额外的5%奖励现在生效,这些奖励将分发给所有参与众贷质押的用户。[2021/10/30 6:21:58]

图9:Committee出块

在当前Epoch,每一个Slot在出块的时候,committee都对上一个Epoch的检查点进行Attestation,连着两个检查点Attestation以后,上一个检查点才Finalised,直到32个Slot都依次对检查点进行了Attestation,本轮Epoch结束。Post-Epoch的第一个Slot开始的时候,Pre-Epoch达到了终局性的共识,即Post-Epoch经历了Pre-Epoch和当前Epoch,一共两轮Epoch,时间上为12.8Min,交易就在链上确定下来了,即所谓的终局性。

2.3特性

RANDAO赋予了链上的随机数。RANDAO生成的随机数将会放进ExecutionLayerBlock,智能合约能够直接使用该随机数,在拥有链上的原生随机数以后,DeFi可能会有新的应用诞生,比如类的DeFi应用可以直接信任和使用RANDAO产生的随机数。

https://eprint.iacr.org/2013/881.pdf

2.5随之而来的问题

通信与验证成本增加:是不是验证者越多越好呢?其实不然,虽然验证者的数量增多有利于数据可用性采样和去中心化,但是验证者增多意味着单个Slot的验证者也会变多,在收集各个验证者签名的时候就会增加Aggregator和验证者之间的通信负担,除此之外,聚合签名的验证成本也会增大,这无形中会增加验证者节点的负担。

长程攻击:长程攻击是指某个验证者在Withdraw质押在信标链上的ETH后,他可以利用旧私钥在某个曾经签署过的区块进行恶意分叉,因为此时其在链上已无任何质押资产,然后迅速产生空块至目前的区块高度,对网络进行攻击。这也是未来可能出现的攻击方式。以太坊在设计的时候是对Pre-Epoch的checkpoint进行投票,其设计思路也就是将初始状态不断往前推进,避免可能出现的攻击。

3.以太坊质押挖矿

3.1Staking

质押门槛:验证者为了履行职责参与共识出块需要质押32ETH作为保证金资产。

验证者的职责:在协议规定的时间生产区块和attestation。

3.1.1Staking方式

SoloStaking:solostaking的方式是由想要自己出资32个ETH做验证者的质押人自己在云服务器上运行验证者节点,除了选择在云服务器上面运行节点,也可以选择在自己家中摆放服务器设备运行以太坊节点,区别在于云服务之上运行节点更加稳定,在参与网络共识的时候可以避免和减少因为停电和网络原因造成的怠工惩罚,而在家自己搭建节点的优势在于硬件和网络服务的成本低于云服务器,这里质押人可以自行选择采用哪种托管方案。

StakingPool:由于32个ETH对于普通人来说是一笔不菲的资金,寻常小资金的质押者想要参与网络共识却没办法自己运行节点,于是出现了质押池解决方案,其中以许可型的半去中心化质押解决方案Lido为主要项目,其吸收了较大的资金体量,成为赛道内的头部解决方案,其次还有去中心化程度更高一些的解决方案如RocketPool和Swell等,在现有的质押池解决方案之上,还产生了Unamano这样的聚合解决方案来帮助和发展以太坊Staking领域。

V神:PoS的进入壁垒远远低于PoW:推特网友bitcoinpasada在推特对以太坊创始人V神提问称,stake(指PoS)是中心化的吗?对此V神回复称,不如PoW 中心化。就进入壁垒而言,32 ETH要远远小于数百万美元建立起来的ASIC矿场。[2020/8/18]

在节点运营方面,Lido选择指定部分专业的运营商来运行网络节点,这也是其相对中心化的一点,运营商掌握签名私钥,用户的资产部分信赖Lido和运营商,至于提款私钥,2021年7月之前,提款地址是一个6/11的多签地址,多签私钥由行业内OG保管,2021年7月之后,提款地址指向一个可升级的合约地址,该合约由DAO进行管理。RocketPool在节点方面选择更加去中心化,任何人只需要提供16个ETH和相应的软硬件设备就可以作为运营商运行节点,虽然降低了运营商门槛,但是RocketPool引入$RPL质押来降低运营商作恶的风险。

StakingPool的方案使得普通的用户可以将小额的ETH存入合约来获得以太坊的挖矿奖励,同时返还生息代币如stETH和rETH来释放质押资产的流动性,进一步增强了以太坊的去中心化程度和资金使用效率,是社区最为看好的方向。

CEX,中心化托管机构:除了SoloStaking和StakingPool,中心化的交易所和一众资管机构都是以太坊质押的主要参与者,例如Coinbase和币安等也都推出了自己的质押服务,通过吸收小额的ETH来参与低风险的以太坊质押挖矿。三种方案在去中心化程度和安全性方面都各有优劣,这取决于质押者的信任对象,但是无可置疑的是,三种方案都捕获到了相应的资金和用户,共同维护着以太坊的安全和去中心化。

3.1.2风险与隐患

是否合并以后真的就万事大吉?我觉得未必,从下图的数据我们可以窥探一下解除信标链提款限制以后的局面。

图11:合并后质押ETH去向

目前以太坊的质押量主要集中在Lido,Coinbase和SoloStaking,合并以后新的以太坊质押则大量流向了Lido和Coinbase这类相对中心化的机构和协议里,在解除提款限制以后,我觉得原来质押的以太坊会被重新分配到Lido和Coinbase里,随着时间的流逝,Lido和Coinbase将会掌握越来越多的以太坊验证者和质押量,最终对以太坊的去中心化带来严重的威胁,当他们控制住以太坊以后,对于想要重新打破这种局面的交易,将会被Lido或Coinbase这样的大矿池所拒绝,因为你想质押ETH到以太坊的这笔交易能否上链也是他们说了算,并且新产生的ETH也将会往ETH越多的人手里集中,因为他们在质押的时候就掌握了大量的ETH,这无疑对以太坊的去中心化会是新的挑战,我们可以期待社区和核心开发者一起来解决这个问题。

3.1.3奖励类型

Attestation奖励:每一个slot的committee都要对前一个Epoch历史区块检查点进行Attestation,成功Attestation以后会获得Attestation奖励,作为Validator的收入之一。

出块奖励:每一个Slot会有一个Validator作为proposer来打包区块,被选为proposer的Validator可以获得出块奖励。

MEV收入:MEV收入除了gas费用的收入以外,还有三明治攻击等方式的收入,据EigenPhi的数据,过去7天三明治攻击的Volume都在100M以上,最高Volume接近400M,MEV的收入成为验证者的重要收入组成之一。

V神:ETC 51%攻击证明了PoS的重要性:推特网友CryptoFree提问V神对“ETC 51%攻击”的看法,V神称:“这更多地证明了从长远来看,PoS是重要的。希望当我们做出改变时,即使是针对再小的区块链的51%攻击都能成为过去。”[2020/8/4]

怠工惩罚:未能按照共识预期产生出块:未在预期时间对区块进行Attestation。

恶意行为导致slash:在单个Slot内生产两个区块或者进行两次Attestation;违反CasperFFG共识规则提议错误区块。

3.2私钥类型

签名私钥:签名私钥用于验证者在履行职责时的消息签署,包括attesting和proposingblocks,每6.4min,即每个Epoch,该密钥将被使用一次。

提款私钥:提取质押资产和出块奖励时使用的密钥,需要离线存储,在上海分叉以后,可用提款私钥提取质押的ETH和奖励。

3.3ETH2质押风险

私钥被盗:ETH2的签名/提款私钥被盗。

单点故障/验证者的有效性:目前,验证人以单一的机器或节点存在并履行其职责。协议严格的规则禁止常见的冗余形式,如在多个节点上运行同一个验证人,这样做可能会导致验证人被「惩罚」。如果使用质押服务,密钥位于一个云服务器上。如果任何组件出了问题,验证人就会停止验证,从而受到惩罚。

4.分布式验证者技术

在质押层面,虽然我们有去中心化的质押解决方案来降低质押门槛和提高质押服务的去中心化,但是在Validator层面,依然存在着单点风险,现在单个验证者运行着网络的多个客户端,如果因为网络原因或者是断电等物理因素会造成怠工惩罚,slot也无法收集到有效的签名,我们无法通过冗余的方式在多个地方运行同一个验证者节点,因为这会造成签名的混乱,会被认为是对网络的攻击,但是我们可以将签名私钥拆分,通过DVT技术来降低单点故障的风险,在实施升级的时候,也为节点提供了升级空间,并不会因为网络升级导致节点的大面积掉线,具体分析,请让我们往下探究!

4.1概念

operator:运行一个节点的个人或实体。

operatornode:指的是一个硬件和软件,执行以太坊验证者的任务。这些任务可以由节点单独完成,也可以与其他使用DVT工具的节点联合完成。

分布式验证者技术:分布式验证者技术是一种将单个以太坊验证者的工作分配给一组分散节点的技术。相比验证者客户端在单台机器上运行,分布式验证者技术能够提供更加安全和去中心化的服务。

以太坊执行层客户端

以太坊共识层客户端

以太坊分布式验证者客户端

以太坊验证者客户端

4.3DV如何防范ETH2质押风险

私钥被盗

使用门限签名技术可以实现防止私钥被盗的风险

一个完整的验证者密钥被拆分为多个小的密钥

拆分后的小份密钥通过聚合产生完整密钥的签名

节点宕机

CrashFaults:

原因:因为停电,断网,硬件故障,软件错误导致的崩溃;

“Gate.io理财宝”PoS理财上线Tron活期理财:据官方公告,“Gate.io理财宝”已上线《波场TRX PoS挖矿活期理财第四期》认购,币年化收益率根据网络产出情况调整。详情见原文链接。[2020/7/21]

防范措施:通过在多个地方运行同一个节点的冗余备份方案来防范节点掉线;

ByzantineFaults:

原因:由软件bugs,网络攻击导致;

防范措施:多个参与节点通过共识决定,单个节点无法做出决定。

4.4总体架构

分布式验证者使用私钥分片远程签署消息

在分布式验证者客户端内通过聚合签名技术对分布式验证者的签名进行聚合,达到阈值以后,对区块进行签名。

4.5实现DVT技术的两种路径

AnapproachtoDVTusingSSS:该方案由质押32个ETH的实体创建签名私钥和提款私钥,并运行一个SecretSharingScheme程序在委员会节点中安全的分发sk密钥的份额。

AnapproachtoDVTusingaDKGprotocol:在DKG的方案中,没有一个实体来为验证者分发签名私钥的份额,而是一群验证者委员会节点一起运行DKG协议。因此,一个秘钥和公钥,以及sk的n个份额sk_1,…,sk_n被创建,i=1,…n的第i个节点拥有份额sk_i。

图18:DKGProtocol

4.6ThresholdSignatureSchemes(TSS)

当验证者对区块达成一致需要签名时,采用BLS阈值签名方案来实现签名。其允许N个验证者共同签名数据,并且在t1(0)个验证者正确签名的情况下实现完整签名。通过tss的方案,既实现了每一个验证者都无法获得完整的签名私钥,又保证了完整签名的顺利生成。

5.从主流项目看DVT

5.1SSV

表面上看,SSV提供了稳健的、去中心化的进入以太坊质押生态系统的途径。再深入一点,SSV是一个复杂的、配有共识层的多签钱包,SSV在信标链节点和验证者客户端之间充当缓冲器的作用。

5.1.1配置的主要组成部分

DistributedKeyGeneration:operator通过运行SSV程序计算生成了一个共享的公私钥集。每个operator只拥有私钥的单一部分,确保没有一个运营商可以影响或控制整个私钥做出单方面的决定。

ShamirSecretSharing:这个机制被用于使用预先定义的KeyShares阈值重构验证者密钥,单个的KeyShared不能被用于签署消息。SSV能够利用BLS技术聚合签名,创建验证者的完整密钥签名。通过结合Shamir和BLS,验证者的签名私钥被切片共享,并在需要签名时聚合重组。

Multi-PartyComputation:将安全的多方计算应用于secretsharing,允许SSV的KeyShares安全地分布在operators之间,以及执行验证者职责的分散计算,而无需在单个设备上重建验证者密钥。

IstanbulByzantineFaultToleranceConsensus:将这一切联系起来的是SSV的共识层,基于伊斯坦布尔拜占庭容错算法。该算法随机选择一个验证者节点,负责区块提议并与其他参与者分享信息。一旦预定的KeyShares阈值认为该区块是有效的,它就被添加到链上。因此,即使一些operators有问题或目前不在线,也可以达成共识。

Stakers:利用SSV/DVT技术的交易所,服务商或个人ETH持有者,以实现其验证者的最佳有效性、安全性和去中心化。stakers向operators支付SSV代币的费用,以管理他们的验证器。

Operators:operators提供硬件基础设施,运行SSV协议,并负责维护验证者和ssv.网络的整体健康。operator以SSV代币确定其服务费用,并向验证者收取运营和维护验证器的费用。

DAO(SSVtokenholders):ssv.networkDAO分散了ssv.network协议和资金的所有权和治理权,SSV是网络的原生代币。任何拥有SSV代币的人都可以参与DAO,对提案和其他需要投票的项目进行投票。拥有的SSV代币的数量决定了对影响网络的决策的投票权。

5.1.3ssv.networkDAO负责以下工作:

Operatorscoring:ssv.network依靠operators和对他们的质量、经验和提供的服务进行0-100%的去中心化和透明的评分。DAO还负责审核「VerifiedOperators」,并维护VOs的名单。Stakers可以查看并使用这些排名来选择管理其验证者的Operators

Networkfees:为了使用ssv.network,Stakers需要支付网络费。网络费是对每个验证者收取的固定费用,被添加到operators费用中。网络费直接流入DAO国库,可用于资助SSV生态系统的进一步发展和通过DAO投票程序的活动。

Treasury:stakers支付的网络费用为DAO国库提供资金,它被用于发展SSV协议和生态系统的项目。可能包括协议开发和网络增长的赠款,与SSV代币持有人直接分享收入,营销和社区激励,代币交换以实现国库的多样化,以及战略合作伙伴的投资以换取SSV代币。

Voting:提交给DAO的拨款请求和其他需要投票通过的提案。任何持有SSV代币的人都可以对影响DAO的决定进行投票,例如拨款请求、成为验证运营商的请求以及提交给DAO考虑的其他想法或请求。

5.2Obol

Obol是一种通过multi-operator促进staking信任最小化的协议,该协议能够被作为多种类web3产品的核心模块以低信任成本获得以太坊质押收益。

5.2.1Obol的四个核心公共产品:

DistributedValidatorLaunchpad:引导分布式验证者的CLI工具和dApp

Charon:Charon是ObolNetwork的分布式验证者客户端,也是启用信任最小化验证的第一步。Charon支持容错、高可用性验证,使一群人能够在多台机器上共同运行验证者,而不是在单个机器上运行。

ObolManagers:一组用于形成分布式验证器的可靠智能合约

ObolTestnets:一组正在进行的公共激励测试网,使任何规模的运营商都可以在为Obol主网网络服务之前测试他们的部署。

5.2.2关键概念:

DistributedValidator:分布式验证器是运行在多个节点/机器上的以太坊权益证明验证器。使用分布式验证器技术(DVT)可以实现此功能。分布式验证者技术避免了单点故障的问题,如果DVT集群中<33%的参与节点下线,剩余的活跃节点仍然可以就签署达成共识,并为Staking的验证者生成有效签名。这是主动冗余方式,用于最大限度减少关键任务系统停机时间的常见模式。

DistributedValidatorNode:分布式验证器节点是operator需要配置和运行以履行分布式验证器operator职责的一组客户端。operator可以在同一硬件上运行冗余的执行和共识客户端,运行执行层中继器,其他检测服务,以确保最佳的性能。在上述例子中,客户端堆栈包括Geth,Lighthouse,Charon和Teku。

图21:Obol的客户端示例

ExecutionClient:执行层客户端专门负责运行EVM和管理以太坊网络的交易池。

执行层客户端包括:Go-Ethereum、Nethermind、Erigon。

ConsensusCilent:共识客户端的职责是运行以太坊的权益证明共识层,通常称为信标链。共识层客户端包括:Prysm、Teku、Lighthouse、Nimbus、Lodestra。

DistributedValidatorClient:

分布式验证者客户端通过标准化的RESTAPI拦截验证者客户端?共识层客户端的信息流,并聚焦于两个核心职责:

就所有验证者签署的候选人职责达成共识

将所有验证者的签名组合成一个分布式验证者签名

ValidatorClient:验证者客户端是运行一个或多个以太坊验证者的一段代码。

验证者客户端包括:Vouch、Prysm、Teku、Lighthouse

DistributedValidatorCluster:分布式验证者集群是连接在一起的分布式验证者节点的集合。

DistributedValidatorKey:DistributedValidatorKey是一组BLS私钥,它们共同作为参与权益证明共识的阈值密钥。

DistributedValidatorKeyShare:分布式验证者私钥的一份私钥。

DistributedValidatorKeyGenerationCeremony:为了在分布式验证器中实现容错,各个私钥份额需要一起生成。与其让受信任的经销商产生私钥,将其分割并分发,不如让分布式验证器集群中的每个操作员参与所谓的分布式密钥生成仪式,这样做的好处是在任何时候都不会构建完整的私钥。分布式验证器密钥生成仪式是DKG仪式的一种类型。仪式产生签名的验证器存放和退出数据,以及所有的验证器密钥份额和它们相关的元数据。

6.总结与展望

6.1总结

行文通篇,从TheMerge开始叙述,讲述合并以后以太坊采用的CasperFFG算法,熟悉了合并以后区块的产生方式以及新的一些技术概念,随后讲到了以太坊新的挖矿方式以及目前存在的Staking方案,了解到验证者存在的单点故障问题,随后又深入到DVT技术,并通过两个项目的案例简述DVT如何解决了这个问题,整篇文章按照去中心化的思路叙述,为读者了解以太坊的共识算法和去中心化发展方向提供了一定的参考。

6.2展望

以太坊在TheMerge以后,将会逐步实现Danksharding,首先通过EIP-4488降低calldata的gas花销,从16gwei降低到3gwei,为rollup的提速扩容进行强有力的支持,之后一步是在Proto-danksharding中引入Blobs的交易类型,使得以太坊能够为rollup提供更多的存储空间,降低D/A的成本,并逐渐实现Danksharding。

要实现Danksharding中描述的数据可用性采样、区块提议者/构建者分离等设想,必须要确保以太坊网络的节点足够多,足够去中心化,数据可用性采样才能实施,也就是说要确保扩容和低成本的D/A,以太坊的去中心化是最为重要的一环,因为去中心化的质押方案和DVT等技术对以太坊后续的发展至关重要。

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

地球链

[0:15ms0-0:610ms