南宫28

  • 元宇宙:本站分享元宇宙相关资讯,资讯仅代表作者观点与平台立场无关,仅供参考.

Ethereum Pectra 硬分叉介绍

  • 2025年2月27日 03:15

作者:NICLin,Medium

Pectra硬分叉预计于2025年3月启动主网部署。Pectra升级包含11个技术协议(EIP),它们分别是:

EIP-2537: BLS12-381曲线操作预编译

EIP-2935: 在State中保存历史区块哈希值

EIP-6110: 提供链上 validatordeposits

EIP-7002: 执行层触发退出

EIP-7251: 增加theMAX_EFFECTIVE_BALANCE

EIP-7549: 将 committee 索引移至验证之外

EIP-7623:增加calldata成本

EIP-7685:通用执行层请求

EIP-7691:增加Blob吞吐量

EIP-7702:设置EOA帐户代码

EIP-7840: 在EL 配置文件中添加Blob计划 质押相关的技术协议

EIP-6110:BLS12-381曲线操作预编译

简化用户参与质押的处理流程,让等待时间大幅缩短。

用户参与质押的方式是在执行层上存入32个ETH并由事件日志(EventLog)记录,接着共识层执行解析事件日志来判断是否有人参与质押,然后参与质押的用户就成为验证者。

不过,共识层的验证者首先需要针对哪一个时间点存入达成共识,否则,会发现有些验证者看到5个新的存入,而有些验证者只看到3个,因此共识层验证者们会对要参考哪一个执行层区块(eth1data)进行投票,确保大家看到的是一样的执行层区块。

不过,一开始设计时为了避免执行层出现重大错误导致链分叉,所以参考的执行层区块(eth1data)会是一个约10多个小时以前的执行层区块,确保当重大错误发生时,共识层的开发者们有足够的时间反应处理,不过这也导致参与质押最快也要等上10多个小时才会生效。

△每一个区块都会指向一个母区块,所以可以一路往前证明历史中的任何一个区块。

假设目前是编号为10000的内存块,诈欺挑战要提供编号9000的内存块存在某笔交易X的证明,则挑战者需要从内存块10000的哈希值开始,先证明内存块 10000所连接的母内存块9999的哈希值,然后再证明内存块9998…直到内存块9000,最后再提出内存块9000的内容里包含该笔交易X。

EIP-2935之后,会有个系统合约(部署在0x0F792be4B0c0cb4DAE440Ef133E90C0eCD48CCCC),它的Storage会储存最多8192个以前的内存块的哈希值。每当个新的内存块产时,这个系统合约就会自动更新,将前个内存块的哈希值写进系统合约中(会复写掉8192个以前的内存块的哈希值)。

如此在OptimismticRollup欺诈挑战的例中,挑战者就不必再往前个内存块个内存块慢慢证明,是可以直接证明内存块10000当下的链的状态中,该系统合约的某个Storage(对应到内存块9000)的值是内存块9000的哈希值。如果范围超过8192,例如内存块1000,那顶多就是多步,先证明内存块1808(=10000-8192)的哈希值,然后再证明内存块1808当下的链的状态中,系统合约里的内存块1000的哈希值。

这也为未来的无状态客端(StatelessClient)铺路:未来的轻节点就不需要再储存着历史中所有的内存块的头文件(BlockHeader),是当有需要用到历史中某个内存块的哈希值或是内存块内容时,再请其他用前面欺诈挑战例中的证明式提供证明即可。

EIP-7623::增加calldata成本

调高利用calldata来发布数据的本,以挪出够的安全空间来调高BlockGasLimit和Blob数量。

随着Rollup的数据发布需求越来越高,在EIP-4844中引Blob来让Rollup以非常便宜的式放数据之后,调Blob数量便直是社群所期待的个升级,或像是最近社群在推动的调高BlockGasLimit,都反应态对提高资源的需求。

△越来越多的验证者表示支持调高BlockGasLimit。

但不管是调BlockGasLimit或是Blob数量,都会因为交易的数据量变得更大而对Ethereum的p2p网络造成更多压,这会使得攻击者攻击的效率提,除非将发布数据的成本也提。

EIP-7623协议发布之后,calldata的成本将会从原本的「ZeroByte:4Gas、Non-ZeroByte:16Gas」调2.5倍为「ZeroByte:10Gas、Non-ZeroByte:40Gas」。

原本如果攻击者将全部的BlockGasLimit(30M)都拿来放垃圾数据的话,内存块的数据小约会是1.79MB(30M/16),相比于平均内存块小只有约100KB;而如果BlockGasLimit调到40M的话,攻击者可以产约2.38MB大小的内存块。当calldata成本调高为2.5倍,攻击者的效率会因此下降,变为30M最0.72MB、40M最0.95MB,如此就可以更放地调高BlockGasLimit和Blob数量。不过这个技术协议也不想因此影响到「不是将calldata拿来发布数据」的般用户,所以它会以两种式计算交易的总Gas用量,再取较高的:

原本的交易Gas用量计算式,搭配旧的calldata成本来计算:也就是将calldata以「ZeroByte:4Gas、Non-ZeroByte:16Gas」的式计算,并加上交易执所消耗的Gas及部署合约所消耗的Gas。

单纯计算calldataGas用量,但是是用新的成本来计算:也就是将calldata以「ZeroByte:10Gas、Non-ZeroByte:40Gas」的式计算,但不计入执所消耗的Gas或部署合约所消耗的Gas所以对般「不是将calldata拿来发布数据」的用户来说(例如去Uniswap兑换),本来主要的Gas消耗就是在执的部分,即便calldata以新的成本计算也不会超过执所消耗的Gas,因此般用户将不会受影响。

真正受影响的会是规模还小的Rollup,因为Blob是固定小、固定费用,所以小Rollup使用Blob效率低,使用calldata还比较划算,但在EIP-7623之后,等于这些小Rollup的成本都会提升2.5倍,它们可能得因此转为使用Blob或想办法联合起来共同分担个Blob。

EIP-7691:增加Blob吞吐量

提Blob数量,增加更多资料发布的空间给Rollup。

EIP-7691将Blob的数量由「目标:3Blob,上限:6Blob」调为「目标:6Blob、上限:9Blob」,增加更多资料发布的空间给Rollup。

注:另外Blob续费市场还有些设计需要微调,例如续费调整的速度不够即时及续费底限太低,但这不在这个技术协议要解决的问题里。其他技术协议

EIP-7549:将committee索引移至验证之外

调整验证者投票的内容,让选票更便被聚合起来,降低p2p网络的压。

验证者们每个Epoch都会被随机分到组组的委员会(Committee)并对

内存块投票,每个委员会的验证者们的选票可以被聚合在起,如此可以降低选票在p2p网络中传递的数量,但验证者的选票里会包含「该验证者属于第几个委员会」的信息,这导致不同委员会的选票不能被聚合在起,即便他们都对相同的内存块投票。

EIP-7549将「该验证者属于第几个委员会」的信息移出投票内容,使得不同委员会的验证者在投票内容样的情况下可以被聚合在起,进步降低选票在p2p网络中传递的数量,降低p2p网络的压。

EIP-7840:在EL配置文件中添加Blob计划

在执行层为Blob参数建立份设定档,省去执行层节点要去询问共识层节点Blob相关参数的麻烦。

Blob相关参数目前都是储存在共识层节点,但执行层节点在某些情况还是需要这些参数(例如RPCeth_feeHistory),所以都必须去向共识层节点询问。

EIP-7840在执行层为Blob相关参数建立份设定档,执行层节点都可以直接透过这份设定档读取Blob相关参数,不需要再向共识层节点询问。

Copyright © 2021.Company 元宇宙weizhangshensu.cn All rights reserved.元宇宙weizhangshensu.cn

南宫NG·28(中国)相信品牌力量有限公司 南宫NG·28(中国)相信品牌力量有限公司 南宫NG·28(中国)相信品牌力量有限公司 南宫NG·28(中国)相信品牌力量有限公司 南宫NG·28(中国)相信品牌力量有限公司 南宫NG·28(中国)相信品牌力量有限公司 南宫NG·28(中国)相信品牌力量有限公司 南宫NG·28(中国)相信品牌力量有限公司 南宫NG·28(中国)相信品牌力量有限公司 南宫NG·28(中国)相信品牌力量有限公司 南宫NG·28(中国)相信品牌力量有限公司 南宫NG·28(中国)相信品牌力量有限公司 南宫NG·28(中国)相信品牌力量有限公司 南宫NG·28(中国)相信品牌力量有限公司 南宫NG·28(中国)相信品牌力量有限公司 南宫NG·28(中国)相信品牌力量有限公司 南宫NG·28(中国)相信品牌力量有限公司 南宫NG·28(中国)相信品牌力量有限公司 南宫NG·28(中国)相信品牌力量有限公司 南宫NG·28(中国)相信品牌力量有限公司 南宫28