简单梳理以太坊上海升级核心提案要点

xiangganzi热度: 13853

版本控制有利于以后实现引入或弃用新功能(例如引入账号抽象)。

原文作者:xiangganzi

原文来源:Twitter

以太坊上海升级,简单梳理一下,分别作用是什么,确定包含的EIP: EIP-3651,EIP-3855,EIP-3860,EIP-4895 可能包含的EIP: EIP-3540,EIP-3670 和L2扩容相关的EIP-4488,EIP-4844不在本次升级范围内。

参考链接:https://github.com/ethereum/execu

EIP - 3855: PUSH0 指令 EIP-3855,引入一条新指令(0x5f),将常量值 0 压入堆栈,黄皮书关于PUSH的指令集,目前只有PUSH1-PUSH32,作用是将1字节压入堆栈,到32字节压入堆栈 现有指令实现将0值压入堆栈需要通过执行 PUSH1 0 ,在runtime中需要消耗3GAS, 并且额外需要消耗200GAS(2字节的存储成本)

以太坊

有了PUSH0 指令后,就不需要消耗这额外的200GAS了。 目前由于大约有 11% 的PUSH操作只是压入 0,因此这个 EIP 执行后可以节省一定量的gas,也能稍微提高以太坊的现有的TPS。

EIP-3860:限制和计算初始化代码

目前initcode 的最大为MAX_CODE_SIZE: 24576(EIP-170) 新的initcode 的最大为 (MAX_INITCODE_SIZE = 2 * MAX_CODE_SIZE = 49152),这意味合约大小可以扩展一倍,生态开发者合约可以部署更丰富的功能。(合约代码过大会导致部署不成功,PS:L2项目很多也早已修改)

此外为每 32 字节的 initcode chunk引入 2 个 gas 费用,以表示 jumpdest-analysis 的成本。因为在合约创建期间,客户端必须在执行之前对 initcode 执行 jumpdest 分析。执行工作与 initcode 的大小成线性关系。 这意味着initcode 每字节将添加成本 0.0625 gas,合约部署gas成本微微上涨。

EIP-3540:EVM 对象格式 (EOF) v1 此EIP涉及改动较大,并一定包含在上海升级中。 此 EIP 中描述的格式引入了一个简单且可扩展的格式,并引入了验证。 实现了合约代码和数据的分离。 新的EVM 对象格式为 magic, version, (section_kind, section_size)+, 0, <section contents>

好处: 版本控制有利于以后实现引入或弃用新功能(例如引入账号抽象)。 合约代码和数据的分离对于L2的验证(op)有益,减少L2验证器的gas成本。 合约代码和数据的分离也更加方便链上数据分析工具的工作。 EIP-3670:EOF —代码验证 配合EIP-3540合约创建时引入代码验证。拒绝未定义指令的合约。

EIP-4895: 信标链提款

主要内容是确定信标链提款的主要流程,部署完成后,以太坊信标链质押提款功能将被激活。

EIP-3651:暖 COINBASE COINBASE

直接支付正变得越来越受欢迎,因为它们允许有条件的支付,这提供了一些好处,但访问 COINBASE 的价格太高了;在 EIP -2929 引入的访问列表框架下,地址最初是冷的。这种 gas 成本的不匹配可以激励除 ETH 以外的其他支付方式。

声明:本文为入驻“MarsBit 专栏”作者作品,不代表MarsBit官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况,及遵守所在国家和地区的相关法律法规。