从一个问题说起
一笔交易最多能用掉多少 Gas?在 Fusaka 升级之前,以太坊协议层面对这个问题没有单独回答:只要区块装得下,单笔交易理论上可以吃掉整个区块的 Gas 上限。升级之后规则变了。EIP-7825 给单笔交易设了一个硬顶,任何 gas limit 字段高于 16777216(即 2 的 24 次方)的交易直接无效。这条规则随 Fusaka 在 2025 年 12 月 3 日于主网激活。

为什么要给单笔交易设顶
区块 Gas 上限约束的是整个区块的总计算量,而单笔交易的消耗从来不受独立约束。在区块 Gas 上限已经提升到四千五百万量级的背景下,这意味着一笔极端交易就可以独自占满一个区块。这带来两类麻烦。
第一类是验证压力。节点对每笔交易都要做转发前的成本评估,最坏情况下,一笔交易就能把整个区块的验证预算用满。网络在评估交易传播成本时,必须按最坏情况设计,单笔上限缺席会让这个估算变得难看。第二类是拒绝服务的想象空间:构造一笔恰好把验证者拖进高成本路径的巨型交易,成本由全网节点分摊,攻击者的代价却很低。
把单笔交易的消耗框死之后,验证与传播的建模都变成有界问题。协议开发者多次把这称为给未来提高区块 Gas 上限铺路:总盘子可以做大,前提是任何一笔交易不能独自吃满整个盘子。
规则具体怎么起作用
EIP-7825 的机制非常简单:交易签名里的 gas limit 字段超过 16777216,节点就拒绝接收,打包进区块也会被判无效。它不改区块 Gas 上限本身,也不改 Gas 价格逻辑,两者是正交的两个维度——区块上限管总量,交易上限管个体。
对绝大多数用户来说,这条规则永远不会被碰到。普通转账只有两万出头 Gas,一次复杂的合约交互通常也就几十万到几百万量级,距离一千六百七十七万有一到两个数量级的余量。真正可能触线的是几类边缘操作:一次性循环巨量批次的合约调用、某些脚本工具发起的超大部署交易、以及把本应拆分成多笔的操作硬塞进一笔的做法。这些交易在 Fusaka 之后会直接发送失败,需要拆分重构。
它与并行执行研究的关系
以太坊执行客户端的长期方向之一,是允许节点并行执行同一区块内的多笔交易以提升吞吐。并行执行的一个前提是能可靠预估每笔交易的成本边界:如果一笔交易可以无上限地长,调度器就无法保证并行方案的最坏耗时。单笔 Gas 上限正是这类前置条件之一,协议文档把这类改动描述为为将来的执行环境优化做准备。需要强调的是,这是为可能性铺路,不构成任何时间表承诺。
快速问答
问:EIP-7825 会让我平时的交易变贵吗? 答:不会。绝大多数交易的 gas limit 远低于这条线,费用逻辑也没有变化。
问:区块 Gas 上限会被它压低吗? 答:不会。EIP-7825 只约束单笔交易,区块总量由另一套机制决定,两者互不替代。
问:我怎么知道自己的合约调用会不会超限? 答:看钱包或节点给出的 gas 估算。估算值接近千万量级的调用,才需要认真考虑拆分。
常见误区
一是把它读成以太坊给交易费用设了上限,实际上它约束的是 Gas 用量,不是费用金额,Gas 价格仍由市场决定。二是认为它限制了区块变大,恰恰相反,很多开发者把它看作区块上限可以继续上调的安全垫。三是把个别客户端的提前实现当成规则生效,网络升级以协议激活时点为准,本条的激活锚点是 2025 年 12 月 3 日的 Fusaka。
风险提示:本文为协议机制科普,不构成任何投资建议或操作指引;涉及具体交易构造与合约改造时,请以当期官方文档与实际模拟结果为准。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。