以太坊开发者被敦促在 Glamsterdam 升级前审查 gas 假设
要点速览
- •EIP-8037 将重新定价新状态的创建,包括新账户、存储槽和已部署字节码。
- •EIP-8038 将提高访问现有状态的成本,例如 SSTORE、SLOAD 和冷账户访问。
- •重放分析显示,大多数智能合约应保持相同行为,但少数合约可能需要更高 gas 上限或人工审查。
- •最容易受影响的合约是那些依赖固定 gas 假设的合约,包括硬编码补贴、基于 gasleft 的逻辑以及不灵活的预签名交易上限。
- •钱包、RPC 服务和节点工具必须更新 gas 估算逻辑,因为缓存常量在新费率安排下可能低估所需 gas。

以太坊网络正在为 Glamsterdam 升级做准备,这是一项协议更新,将通过两个计划中的提案 EIP-8037 和 EIP-8038 重新校准与状态相关操作的 gas 费用。此次调整旨在使 gas 定价与交易实际消耗的计算和存储资源保持一致,以弥补自 2021 年 Berlin 分叉上一次调整以来不断扩大的偏差。
根据 Ethereum Foundation 的说法,EIP-8037 主要针对创建新状态的成本,包括新账户、存储槽和已部署字节码。该提案将通过提高并统一这些费用,同时单独计量,来处理这一部分成本。这样做的目标是在区块 gas 上限持续提高的情况下,仍能保持状态增长的可持续性。
与此同时,EIP-8038 将提高访问现有状态的成本,包括 SSTORE、SLOAD、冷账户访问以及 EXTCODESIZE 或 EXTCODECOPY 等操作,以反映网络扩展后状态规模下的当前性能指标。该组织表示,这一重定价计划旨在支持基础吞吐量约三倍的提升,因此它是进一步扩容且不降低节点运营者性能的前提。
评估对开发者的影响
对历史主网交易在新费率安排下进行重放分析显示,绝大多数智能合约将以相同方式执行,只有少数合约的行为会发生变化。交易可分为四类:行为不变;在 gas 用量调整后仍可成功;会耗尽原始 gas 上限但在提高上限后可完成;以及即便大幅提高上限也仍然失败。
最后一类合约通常依赖脆弱的 gas 成本假设,例如固定写死的补贴——如 Solidity 的 transfer 和 send 函数中固定的 2,300 gas——、外部调用中的显式 gas 数值、基于 gasleft() 的条件逻辑,或具有不灵活上限的预签名交易。由于 gas 处理同时嵌入应用逻辑和基础设施默认设置,这次升级也在检验整个生态系统中仍有多少部分依赖旧定价规则下设定的常量。Ethereum Foundation 已经直接联系了受影响最严重的开发团队,并整理了受影响实体的报告。
开发者和基础设施运营者被建议通过官方搜索工具检查合约状态,并在当前运行新费率安排的 Platåberget testnet 上进行测试。可通过提高 gas 上限修复的合约需要更新前端或基础设施,而可能受损的合约则需要对被标记的调用点进行人工审查。
钱包提供商、RPC 服务和节点工具也需要更新 gas 估算逻辑,因为缓存的常量在新规则下会导致低估。常规用户无需采取行动,因为更新后的钱包和服务预计会自动处理这一过渡。重定价已经在开发网络上线,并将在主网激活前推广至公共测试网。