EIP-8037状态燃气规则迫使以太坊dApp重写计费
以太坊的核心开发者正在请求应用团队帮助决定在Glamsterdam升级中提议的燃气变更是否需要修订,因为他们自己的审计无法覆盖每个项目的合约和链下服务。
在11月6日发布的以太坊基金会博客中,Marius van der Wijden请求开发者和审计人员检查受提议升级影响的八个燃气假设。安全审计公司ChainSecurity和Dedaub正在进行内部审计的同时进行调查,但审查还需要项目解释他们如何修复受影响的系统。
Hoodi测试网原定于10月26日激活,并伴随20亿燃气限制的增加,但在10月22日被推迟。
11月6日的呼吁表示,延迟将持续,直到问题解决,而通知则未设定主网激活的时间。
后果包括中继者无法收回其交易成本,以及在特定类型的故障后钱包授权变得可重用。这使得应用程序的可修复性成为开发者在权衡升级变更时所需的证据的一部分。
Glamsterdam的EIP-8037将提高创建持久区块链数据的成本,并将状态增长与执行分开计量,而EIP-8038将重新定价对现有状态的访问和写入。
其目的是支持更高的吞吐量,同时控制以太坊节点必须保留的数据。
八个不变框架将三个价格假设(涵盖固定预算和储备)与五个会计假设(涉及燃气回报、故障处理、计费和委托)分开。
燃气会计改变支付和钱包安全
中继者为他人执行交易并可能通过在工作前后测量燃气来收回该费用。框架的INV-5条目解释了提议的会计如何干扰该计算。
根据EIP-8037,当交易的燃气限制超过16,777,216时,交易最初为一个单独的状态燃气储备提供资金。状态创建首先从该池中提取,然后是执行燃气。Solidity的gasleft()读取不包括储备,因此减去两个读数可能会遗漏中继者实际支付的费用。
如果后一个读数超过前一个读数,检查减法将回退,阻止操作。未检查的减法可能会包裹成一个大数字,并可能根据周围的算术和支付检查产生过多的报销。
与此同时,隐形储备支出可能会导致用户被低收费,而运营商则需承担短缺。
计费指导建议在新规则下使用估算达成用户签名的费用协议。在仍然需要计量的地方,限制减法并将支付上限设定为签名最大值限制费用,而储备资助的成本仍然在测量之外。
一个开放的规范提案,PR #12581,将防止燃气读数增加。这将解决减法问题,但储备的计费盲点将仍然存在。
一次存储写入,两种资金方式
根据提议的Glamsterdam规则,gasleft()不包括状态燃气储备。选择一个资金状态以查看为一个冷新槽写入所收取的余额如何变化。
一次冷新槽写入 110,020总燃气 12,100执行燃气 97,920状态燃气 提议的EIP-8037 / EIP-8038费用
一次冷新槽写入 110,020总燃气 12,100执行 97,920状态 提议的EIP-8037 / EIP-8038费用
哪个余额支付状态费用?
哪个余额支付国家费用?
储备资金
储备为空
在此写作时,示例状态的储备中至少有 97,920 gas。执行余额支付 12,100,储备支付 97,920。
执行余额 12,100 gas 资金执行 gasleft() 减去 12,100
状态-gas 储备 97,920 gas 资金状态创建
Outside gasleft()
新槽 110,020 总 gas
执行余额 状态储备 12,100 97,920 gas 支付执行 gas 支付状态创建 gasleft() 减去 12,100
Outside gasleft()
新槽 110,020 总 gas
在此写作时,示例状态的储备 gas 为零。执行余额支付完整的 110,020 费用,包括状态组件。
执行余额 110,020 gas 资金两个组件 gasleft() 减去 110,020
状态-gas 储备 0 gas 在此写作时可用
状态费用从执行中提取
新槽 110,020 总 gas
执行余额 状态储备 110,020 0 gas 支付两个组件
在此写作时可用 gasleft() 减去 110,020
从执行中支付
新槽 110,020 总 gas
一个有资金的储备可以在 gasleft() 之外支付国家费用,而一个空的储备则将该费用转移到执行余额上。
提议的规则检查于 2026 年 11 月 6 日。操作级费用不包括内在、包装和附带指令成本。初始储备资金要求交易 gas 限制超过 16,777,216,后续补充也可以为其提供资金。中间储备余额在余额之间分摊国家费用。
来源和证据
- EIP-8037 gas 记账
- 固定的 EIP-8037
- ChainSecurity 操作成本
- 以太坊兼容性框架
- 固定的兼容性框架
- EIP-8038 成本计划
- 固定的 EIP-8038
支持事实
- 在当前的 EIP-8037 储备模型下,初始单独的状态-gas 储备仅在交易 gas 限制超过 16,777,216 时提供资金。状态费用首先使用该储备,然后是执行 gas,而 gasleft() 不包括储备。[1] [2] [3]
- EIP-8038 重新定价状态访问和写入。在审核的计划中,一个冷的新存储槽的成本为 110,020 总 gas,由 12,100 执行 gas 和 97,920 状态 gas 组成,而在大阪为 22,100。对现有非零槽的第一次更改成本为 10,100 温暖或 12,100 冷,而在 2,900 或 5,000。[4] [5] [3] [6] [7]
方法
使用提议的费用进行一次冷的零到非零存储写入。12,100 执行 + 97,920 状态 = 110,020 总 gas。资金插图假设在该写作时至少有 97,920 储备 gas 或零。主条是成比例的,四舍五入到 0.001 SVG 单位。连接器是示意图。
范围
提议的规则检查于 2026 年 11 月 6 日。操作级费用不包括内在、包装和附带指令成本。初始储备资金要求交易 gas 限制超过 16,777,216,后续补充也可以为其提供资金。中间储备余额在余额之间分摊国家费用。
信息图由 CryptoSlate
INV-8 检查 EIP-7702 委托,其中一个账户授权委托的合约代码。在提议的规则下,预执行期间的 gas 不足可能会使交易包含在区块中,同时回滚其委托和授权相关的更新到账户的序列号或 nonce。
一个仍然满足其有效性检查的暴露授权,包括授权账户的 nonce,可以被重用。如果委托的合约也有一个初始化程序,让第一个调用者选择所有者,攻击者可以在一次交易中应用授权并初始化所有权。
授权前置已经存在于公共内存池中,但在这里,失败的挖矿交易即使在私下提交后也可以暴露可重用的授权。
在顶层执行框架失败时,之前已申请的委托仍然有效。失败的收据需要进一步检查账户的结果代码和随机数。
建议的钱包安全措施包括将初始化绑定到账户的签名或自调用,并使暴露的授权失效。提前收取最坏情况的授权费用也被建议作为协议变更,但尚未被采纳。
修复选项进入升级决策
根据提议的时间表,创建一个冷存储插槽的总费用为110,020个gas,而在大阪为22,100个gas。在提议的总费用中,12,100个是执行gas,97,920个是状态gas,水库决定哪个余额为后者提供资金。
ChainSecurity在10月13日的研究显示,如何通过改变费用和返回的gas使合同完成记录一个资金不足的操作为永久失败。如果该记录移除了重试路径,则有效操作可能变得无法重复。
重新验证的预算、传播的失败和保留的重试解决了该风险的不同部分。
该存储库询问受影响的项目是否可以通过设置、升级或迁移来解决他们的问题,以及大致时间。这些答案帮助开发人员评估应用程序可以承受多少兼容性工作,以及规范变更可能在哪里防止损害。
关于什么破坏以及如何修复的具体报告将为下一次规范讨论提供信息。
-- 价格
本内容仅供参考,不构成任何金融、投资、法律或税务建议。文中提及的任何活动、奖励、线上活动或相关信息,不应被视为对购买、出售或交易任何加密资产的推荐、招揽或邀请。加密资产具有高波动性,存在价值损失风险。WEEX服务、产品及相关活动的可用性可能因地区而异。用户在参与前有责任确保符合当地适用法律法规。
猜你喜欢

Raycash 上线以太坊主网,提供隐私稳定币支付及收益功能

Ave.ai 支持 Elysium 生态,开放跨链与链上交易能力

从币安孵化营到美国纳斯达克,Injective 这八年

以太坊发布 Gas 重新定价 EIP 草案

Vitalik:手续费销毁需高度干预治理,可能推高Gas价格

以太坊基金会提醒合约开发者自查 Glamsterdam Gas 调整影响

跳出比特币行情:是什么在决定 L1 的真实价值?

昨夜今晨重要资讯(11月4日-11月5日)

创作者说 | 加密行业最大的风险,是你以为它很安全

Gnosis Chain 2027 年春季结束独立 L1 运营,加入 EEZ 成为首个通用型 Zone

以太坊经济区在Devcon上揭示三项跨链突破

BNB Chain InsurancePool 遭闪电贷攻击损失约 11.1 万美元

被称为「下一个硅谷银行」的 Erebor,凭什么吸引到 SBI 和 Robinhood?
Horizen(ZEN)迁移截止日期:11/04前需要转移什么,错过后会怎样
Horizen(ZEN)迁移将于11/04截止。查看针对不同资产的跨链路线、钱包要求、无法恢复的资产,以及错过截止日期后的处理方式。

Elysium主网上线倒计时,29个生态项目抢先看

以太坊正在变好,但ETH持有者却笑不出来

开放 CCTP 给第三方代币,Circle 加入跨链标准之争

















