区块链文库报道:
核心要点
新存储槽状态成本:20,000 至 97,920 Gas
Hoodi 原计划的 2 亿 Gas 上限已移除
Glamsterdam 主网激活日期尚未确定
EIP-8037 的“最后召集”(Last Call)审查将于 11 月 1 日结束
开发者决定推迟 Hoodi 测试网的最后一步
以太坊基金会于 10 月 22 日宣布,在 All Core Devs Execution #248 通话会议上做出了上述决定。
Glamsterdam 原定于 UTC 时间 10 月 26 日 17:42:48 在 Hoodi 测试网上激活。此次延期移除了 Amsterdam 执行层和 Gloas 共识层的激活,以及同时将 Hoodi Gas 上限提高至 2 亿的计划。这一变更改变了测试网的未来配置,但不会回滚其历史记录,且目前尚未设定替代日期。
在上一次升级 Fusaka 中,Hoodi 是主网分叉前的第三个也是最后一个测试网。据 The Block 报道,基金会表示主网将在至少 30 天后跟进。Glamsterdam 此前已在 Sepolia 上进行了 2 亿 Gas 容量的预演,当时的修复措施是针对 Prysm 验证者默认值的客户端配置问题。而此次面临的关键问题是:已部署的合约将如何表现。基金会表示尚未设定 Glamsterdam 的主网激活日期,并强调主网用户和 ETH 持有者无需采取任何行动。
存储价格上涨以限制部分写入操作的 Gas 消耗
EIP-8037 旨在减缓以太坊状态数据的增长速度,这些数据是每个节点必须存储的。该提案的作者估计,截至 2026 年 1 月,状态大小约为 390 GiB。他们估算,在当前定价下,2 亿的 Gas 上限可能在不到一年的时间内使状态大小超过 650 GiB,这将导致节点运行变慢。为此,他们提出对每个新状态的字节收取 1,530 Gas,这将使新存储槽的状态成本从 20,000 Gas 提高到 97,920,新账户的成本从 25,000 提高到 183,600。
为了保持大规模合约部署的可能性,该提案将 Gas 分为两个池子:执行 Gas用于计算,状态 Gas用于新存储。交易提供的超过 16,777,216 的任何 Gas 都将进入一个独立的状态 Gas 储备池,状态费用将从该储备池中优先扣除。该储备池会完整传递给每次子调用,且合约无法通过标准的 gasleft() 读取看到它。
向新存储槽进行冷写入的执行 Gas 需求
当前情况:22,100 Gas
Glamsterdam(储备池支付 97,920 状态费):12,100 Gas
Glamsterdam(储备池为空):110,020 Gas
来源:ChainSecurity,基于 EIP-8037 和 EIP-8038 的数据。
Gas 在执行过程中也可以回流。如果在同一交易中清除之前创建的槽位,将立即回填最多 97,920 Gas;如果子调用发生回退,它可以退回其支付的状态费用。因此,合约可见的 Gas 余额可能会在执行期间上升。EIP 本身警告称,将工作量测量为两次 Gas 读数差值的合约可能会得到负结果,且已经以这种设计部署的合约无法修复。
攻击者可能如何利用新规
安全公司 ChainSecurity 在 10 月 13 日的分析中阐述了相关风险。合约通常会捕获失败的调用并记录结果,这使得恶意调用者可以故意提供过少的 Gas,导致有效操作失败,而合约仍有足够的 Gas 来保存该失败记录。这种技术被称为“Gas 不足破坏”(insufficient gas griefing),它可能永久阻止重试或剥夺用户的索赔权。
对于依赖失败处理程序本身耗尽 Gas 的合约:
步骤 1:攻击者发送一个 Gas 不足的调用。
步骤 2:目标操作耗尽 Gas。
当前情况:处理程序也耗尽 Gas,一切回退,用户可以重试。
Glamsterdam 情况:储备池或回填的 Gas 让处理程序完成调用并永久保存失败记录。
当回填或中间的回退将余额推回到阈值以上时,可以在失败调用后检查剩余 Gas 的合约会被欺骗。固定的 Gas 预算也可能不足,因为 EIP-8038 提高了接触现有状态的成本:现有暖槽的首次更改成本从 2,900 Gas 上升到 10,100。
并非所有防御措施都会失效。ChainSecurity 指出,只要在预算覆盖新价格下的所有执行路径且不依赖储备池的情况下,在调用前进行的检查仍能保证所需 Gas 的交付。他们建议完全不要依赖调用后的 Gas 检查。基金会的公告仅提到了 EIP-8037,并未引用该公司的研究,后者还涵盖了 EIP-8038。
运营商和开发人员需要做什么
Hoodi 运营商必须在 10 月 26 日之前更新执行和共识客户端,使用其发布说明中明确确认已移除旧激活版本的软件。原始公告中的版本表不算作确认。截至 10 月 23 日,基金会列出了两个客户端的更新版本,并表示随着确认的增加将添加其他版本。
截至 10 月 23 日以太坊基金会列出的版本
- 执行层 Besu:26.10.1
- 共识层 Lodestar:v1.50.1
验证者必须同时更新信标节点和验证者客户端,任何运行外部区块构建基础设施的人员都应遵循其提供商的指示。应用团队应停止围绕该日期规划 Hoodi 测试工作。
对于合约开发人员,ChainSecurity 的检查清单始于每一个允许在失败后继续执行的调用。这包括追踪完整路径(包括代理);查找在同一交易中设置和清除的槽位,以及发生回退的中间件;重新检查固定预算;并强制子调用失败,比较两种规则集下的结果。在可能的情况下,失败的调用应回退整个操作。根据 EIP,钱包和节点软件也必须针对双池模型更新 Gas 估算。
接下来的决策权在于核心开发人员。EIP-8037 的“最后召集”审查将于 11 月 1 日关闭,调查可能导致规范变更,修订后的 Hoodi 日期将在未来的通话中确定。
免责声明:以上内容(如有图片或视频亦包括在内)均为平台用户上传并发布,本平台仅提供信息存储服务,对本页面内容所引致的错误、不确或遗漏,概不负任何法律责任,相关信息仅供参考。
本站尊重他人的知识产权、名誉权等法律法规所规定的合法权益!如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到qklwk88@163.com,本站相关工作人员将会进行核查处理回复

