Pectra 升级已确定纳入哪些 EIP?是否会加剧 ETH 通胀?
以太坊下一次升级Pectra,其名称来源于Prague和Electra的组合。
Prague代表执行层的升级,得名于以太坊开发者大会(Devcon4)的举办城市布拉格,而Electra则象征共识层的升级,依照字母顺序以星星命名。这次选择的星名Electra对应字母「E」。
Pectra升级作为以太坊历史上可能涉及最多EthereumImprovementProposals(EIP)的一次硬分叉,不仅包含了一系列针对验证者操作和主网性能提升的提案,还引入了优化L2的提案。PectraDevnet4测试网刚上线,目前已经有8个EIP确定包含在Pectra升级中。
确定纳入的EIP以及产生的影响
这8个EIP对用户的影响体现在:通过为EOA添加代码执行能力提高了账户的灵活性,使其能够执行更复杂的操作;提升质押上限可能增加对ETH的需求;同时,优化验证者的流程提升了安全性和效率,提高了以太坊的速度和吞吐量。
EIP-2537(支持BLS签名):通过引入一系列预编译合约(precompiles),为以太坊增加对BLS12-381曲线运算的支持,可以实现BLS签名验证,并允许多个签名聚合为一个签名,从而减少验证时的复杂度。BLS签名是一种密码学算法,能够生成较小的签名并支持签名聚合。这将有助于需要进行大量的签名验证和数据验证操作的L2更好地运行。
EIP-2935(在状态中保存历史区块哈希):通过将最近8192个区块哈希存储在系统合约中,以支持无状态客户端(StatelessClients)模型,并提供更灵活的历史区块哈希查询功能。这些哈希值可以通过合约直接查询,并作为证明(witness)捆绑,提供给无状态客户端。客户端无需自己维护完整的区块链历史或存储大量数据,只需依赖通过状态中存储的区块哈希和相关证明就能够验证区块和交易的合法性。
EIP-6110(在链上提供验证者存款):将验证者存款的处理从共识层转移到执行层,在链上进行处理和验证,而不再依赖共识层中的额外投票机制来确认存款信息的有效性。增强了存款流程的安全性,减少了处理延迟,同时简化了共识层和客户端的设计。
EIP-7002(执行层可触发的退出):允许持有提款凭证的所有者能够独立发起退出,而无需依赖验证者的活跃密钥(BLS密钥),增加了用户自主性。目前,只有验证者的活跃密钥才能触发退出,这意味着如果活跃密钥丢失,或验证者将验证任务委托给第三方(如质押服务提供商),提款凭证的所有者(即资金的实际所有者)无法自主控制质押的ETH。该提案通过执行层触发ETH的退出和提款操作,持有者可以通过提款凭证发起退出,无需依赖活跃密钥。
EIP-7251(增加质押上限):增加验证者的最大有效余额,从而允许每个验证者可以持有超过32ETH的质押,而最低质押门槛仍然保持为32ETH。旨在让大节点运营者通过合并多个验证器减少网络中的验证者数量,从而减少P2P消息、签名聚合以及存储负担。
EIP-7549(将委员会索引移出证明):通过将委员会索引字段移出Attestation(证明)消息,实现更高效的共识投票聚合。当前在以太坊的共识机制中,每个验证者在投票包含:LMDGHOST投票(包含投票的区块根和时隙)、Casper-FFG投票(包含源和目标信息)、委员会索引(验证者所属的委员会编号)。由于委员会索引被包含在签名消息中,当多个验证者对相同的区块进行投票时,即使他们的投票内容相同,生成的签名根也不同,导致这些投票无法轻松聚合。将委员会索引字段移出签名消息本身,从而实现更高效的投票聚合,减少验证成本和网络负载。
EIP-7685(通用执行层请求):为执行层(EL)定义一个通用框架,用于存储和处理由智能合约触发的请求。这一框架支持更多的执行层触发行为,并且使得不同类型的请求能够被统一处理,简化了添加新请求类型的过程,而无需修改执行块结构。
EIP-7702(为EOA添加代码执行能力):为外部拥有账户(EOA)添加代码执行功能,从而增强账户的灵活性和可编程性。EOA通过授权签名的方式,指定一个智能合约来代理执行某些操作,比如批量交易或权限控制。在不需要转变为智能合约账户的情况下,具备一定的智能合约功能。
重点考虑的EIP
以下是一些正在积极考虑的EIP,主要通过优化blob,提高了L2数据发布的费用稳定性、增强了L2的交易处理能力,并有效降低了L2的成本。此外,增加calldata成本的调整可能会影响ETH的销毁量,加大ETH的通胀压力。
EIP-7742(解除共识层和执行层之间的blob计数依赖):将共识层与执行层之间的blob数量解耦,简化blob验证流程,减少不必要的复杂性,提高协议的扩展性和灵活性。在当前协议中,执行层和共识层都硬编码了blob的最大值,导致了冗余的验证。该提案取消了执行层对blob最大值的验证,改为由共识层动态提供blob目标值给执行层。这样一来,可以更灵活地调整blob目标参数,适应未来的扩容需求。EIP-7742是正在考虑纳入升级的EIP列表中争议最小的提案,根据最新的共识层会议,开发者同意开始在pectra-devnet5中实现EIP7742,但其是否会正式纳入,还需要等待执行层在ACDE(全体核心开发者执行层会议)上的反馈。
EIP7762(最低blob基础费用):提高MIN_BASE_FEE_PER_BLOB_GAS,目的是减少blob价格调整至合理水平所需的时间。目前,最低blob基础费用设置为1wei,当blob需求超过供应时,价格发现过程(即确定合理的blobGas价格)过于缓慢,需要很长时间才能达到合适的费用水平。通过提高最低blob基础费用,可以缩短价格调整的时间,能够更快实现市场均衡,确保网络在需求高峰时仍能保持稳定。
EIP-7623(增加calldata成本):提高交易中calldata的成本,以减少区块的最大大小及其变动范围,确保网络能够更加平稳地处理交易。当前区块最大大小约为1.79MB,但由于rollups等应用的大量数据发布,平均区块大小不断增加。通过增加主要用于数据可用性(DA)交易的calldata成本,将区块最大大小减少至约0.72MB,为未来增加区块Gas限制或更多blob留出空间。普通用户的交易成本保持不变,此更改主要影响依赖以太坊进行大规模数据存储的交易类型。不过,calldata成本的增加可能会降低以太坊在数据存储方面的竞争力。此外,calldata成本增加,交易数量可能因此减少,导致通过EIP-1559机制销毁的ETH也相应减少,进而给ETH带来更大的通胀压力。
EIP7782(缩短slot时间):将以太坊slot时间从12秒缩短至8秒,更频繁地生成区块来处理更多的交易,将此作为增加blob数量的替代方案,以提高交易吞吐量。但可能会破坏某些硬编码了12秒slot时间的智能合约,并加速以太坊的状态膨胀问题,增加存储和计算负担。
EIP-7783(逐步增加区块Gas费限制):作为EIP-7782更温和的替代方案,通过动态调整区块的gas限制,逐步增加每个区块可容纳的交易数量,从而提高网络的处理能力。相比直接缩短slot时间,逐步调整gas限制可以使网络扩展更加平稳。这个提案不需要硬分叉,但可能会对状态数据产生影响。
由于Pectra升级包含大量EIP,为了减少单次升级的复杂性并加快部分EIP的上线,在5月,以太坊基金会的工程师团队EthPandaOps建议将Pectra拆分为两个部分,但当时担心会延迟升级,因此未被认真考虑。9月,以太坊研究员AlexStokes再次提出拆分建议,这次得到了开发者的认同,这种拆分有助于在六个月内完成升级的第一部分:
第一部分:包括已经在PectraDevnet测试网运行的EIP(即已经确定的8个EIP),它们相对来说更容易实施,并且已经通过了大量的测试。
第二部分:将较复杂的EIP(如PeerDAS、EOF相关的提案)和其他需要更多时间测试的提案放在第二阶段。这些提案需要进一步的开发、审计和测试,特别是涉及共识层和执行层协调的提案。