以太坊推迟阿姆斯特丹升级,八大智能合约风险浮现

区块链文库报道:

以太坊开发者因安全漏洞推迟 Hoodi 测试网 Glamsterdam 升级

在安全研究人员发现八项现有智能合约假设可能在拟议的燃气费会计变更下失效后,以太坊开发者已推迟了在 Hoodi 测试网上进行 Glamsterdam 升级。此次推迟源于 ChainSecurity 的安全审计,该机构指出,EIP-8037 和 EIP-8038 提案将改变以太坊对特定操作的燃气收费方式,这可能会影响那些依赖固定燃气成本或特定交易失败条件的现有合约。

核心关注点与影响范围

以太坊基金会已要求开发者和审计员审查受影响的項目,并在核心开发者决定是否修改升级规范之前报告潜在问题。目前,Hoodi 硬分叉处于暂停状态,直至确定的安全问题得到解决,而以太坊后续 Hegota 升级的开发则不受影响,继续进行。

根据以太坊基金会于11月6日发布的博文,审计公司 ChainSecurity 确定了几个项目在 EIP-8037 和 EIP-8038 生效后可能面临脆弱性风险。这两项提案主要涉及区块链状态的创建和访问操作中的燃气计费逻辑变更。部分现有合约依赖于“当操作失败时剩余燃气不足”这一假设,以确保后续指令无法执行。然而,Glamsterdam 修订后的会计规则可能导致某些操作在开发者原本预期整个交易回滚的情况下仍然完成。

ChainSecurity 警告称,此类行为可能会干扰旨在防止失败交易被永久记录或保护合法操作重试选项的安全机制。例如,有些合约在外部调用耗尽燃气后将操作标记为失败。在新规则下,先前不可用的燃气可能再次变得可用,从而导致合约错误地记录永久性失败。

技术细节与开发者行动指南

Ethereum 基金会发布了一个 GitHub 仓库,详细记录了八个受影响的不变量(invariants),包括解释、示例以及供开发者检查自身代码的说明。识别出的风险主要包括:

  • 假设燃气消耗只能单向移动的合约;
  • 假设固定燃气配额将始终充足的合约;
  • 认为回滚调用不会返还已用于创建状态的燃气的合约。

仓库指出,目前已发现的最常见问题是固定燃气预算和燃气储备,特别是在那些依赖预确定交易成本的合约中。基金会呼吁开发者不仅审查链上合约,还要审查支持性的链下系统,包括钱包、中继器和基础设施,因为这些系统中可能包含硬编码的燃气限制。

Hoodi 激活延期与安全审查持续进行

最新发现进一步证实了以太坊此前决定推迟 Hoodi 激活的原因。原定于 UTC 时间10月26日17:42:48 进行的激活已被取消,其中包括阿姆斯特丹执行层和 Gloas 共识层的激活,以及计划中将测试网燃气上限提高至2亿的操作。目前尚未公布新的替代激活日期。

以太坊基金会开发人员 Marius van der Wijden 表示,组织正在与 ChainSecurity 和 Dedaub 合作,同时进行内部审计,以评估对现有应用的潜在影响。基金会承认,其审查无法覆盖所有以太坊项目,特别是当漏洞涉及智能合约与链下基础设施之间的交互时。因此,基金会请求开发者和独立审计人员识别受影响的应用程序并提交调查结果,以便在下一次所有核心开发者(ACD)讨论前收集反馈。

开发者可通过私有邮箱 glamsterdam@ethereum.org 提交报告,内容包括受影响的合约详情、涉及的特定不变量、可能的修复方案及支持性测试用例。根据反馈情况,开发者可能会在推进升级之前考虑调整 EIP-8037 和 EIP-8038 的相关规范。

Glamsterdam 扩展功能仍在测试中

尽管 Hoodi 主升级暂停,但 Glamsterdam 已于10月6日在 Sepolia 测试网上激活,开发者正在2亿燃气上限的限制下对其扩展性功能进行测试。该升级引入了通过 EIP-7732 实现的内置提议者-构建者分离(PBS),将区块构建责任纳入以太坊的共识协议。另一重大组件 EIP-7928 引入了区块级访问列表,旨在帮助客户端更高效地处理交易数据并支持并行执行。

燃气重新定价也是升级的一部分:EIP-8037 改变了创建新区块链状态的成本,而 EIP-8038 调整了访问现有状态的收费。以太坊基金会在8月的技术评估中指出,历史交易重放显示大多数智能合约未受拟议定价变化的影响,但有一小部分合约需要更高的燃气限制或更重大的修改以避免意外失败。

此外,开发者于10月26日合并了一项验证器存款修复补丁,以解决一个可能将质押存款错误记入拥有相同公钥的区块构建者账户的缺陷。该修正解决了与 Glamsterdam 的 Gloas 共识更改相关的独立问题,并在客户端实施修订行为之前向规范中添加了回归测试。

© 版权声明
THE END
喜欢就支持一下吧
分享