首页 / 链上操作 / Max fee 填高会不会多扣

以太坊 Max fee 填高了会多扣 gas 费吗?

Max fee(最大费用,字段名 maxFeePerGas)填高了不会被照单全收:链上按入块那一刻的基础费用(base fee)加优先费(priority fee)扣,这两项之和够不着 Max fee 的时候,填 50 gwei 和填 500 gwei 扣的是同一个数。会直接抬高手续费的是优先费,上限之内填多少付多少。Max fee 填高的代价在别处:基础费用真涨上去时会按涨后的价成交,而且发交易时余额得够 gas limit × Max fee。

发布:2026-10-08更新:2026-10-08
ethereum.org 简体中文 Gas 与费用页面的一段正文:Jordan 向 Taylor 支付 1 ETH 的例子,总费用公式 units of gas used * (base fee + priority fee),算式 21,000 * (10 + 2) = 252,000 gwei (0.000252 ETH),以及「基础费用」小节的两段文字,其中写到基础费用每个区块最多增加或减少 12.5%
图中依次是总费用公式、Jordan 转账的例子和「基础费用」一节的开头;ethereum.org 简体中文「Gas 与费用」页,截图时间 2026 年 10 月。 官方来源。

以下是以太坊协议层计费规则的说明,不是投资建议。这几个参数在钱包界面上怎么叫、默认怎么填,看钱包自己的帮助页。见免责声明。

Max fee 和实际单价之间差的那一截去哪了?

它没有被扣过。按 ethereum.org 的「Gas 与费用」文档,总费用是 units of gas used * (base fee + priority fee):用掉的 gas 数量,乘以基础费用与优先费之和,算进去的单价只有这两项。优先费就是口语里的「小费」。

一次 ETH 转账用 21,000 单位 gas,基础费用 10 gwei、优先费 2 gwei 时,21,000 × (10 + 2) = 252,000 gwei,折合 0.000252 ETH(1 gwei 是十亿分之一 ETH)。这里面基础费用占 0.00021 ETH,优先费占 0.000042 ETH。

Max fee 管的是另一步。EIP-1559 的参考实现在算实际优先费时取小:你填的优先费,和 Max fee 减去所在区块基础费用的差,哪个小用哪个;实际单价等于基础费用加上这个取小后的数。两项之和够不着 Max fee,优先费就按你填的给,Max fee 不参与计算;基础费用涨到让两项之和顶到 Max fee,被压缩的是优先费,单价停在 Max fee 上。

所以 Max fee 是你同意成交的最高单价。单价不会超过它,可只要基础费用真涨到了那附近,交易也会按那个价入块:Max fee 填 500 gwei、优先费 2 gwei 的交易,碰上基础费用 498 gwei 的区块,实际单价就是 500 gwei。Max fee 填高,改变的是你能接受的最高成交价,基础费用没涨到那里时扣款不变。

参数谁定钱的去向填高了会怎样
基础费用 base fee协议按上一个区块算出,发送者改不了销毁不由你填
优先费 priority fee发送者给出块的验证者上限之内填多少付多少
最大费用 max fee(maxFeePerGas)发送者单价的上限,本身不是一笔费用同一个区块里不多扣;余额检查按它算,基础费用上涨时成交价最高可以到它

想省手续费,该动的是优先费那一格:从 2 gwei 改成 10 gwei,每单位 gas 就多付 8 gwei。这笔钱买的是同一个区块里的先后:需求大的时候,出价要超过别人的交易,才更可能进下一个区块。

「要执行交易,最大费用必须超过基础费用和优先费的总和」是 ethereum.org 文档里的说法;EIP-1559 参考实现里的校验是 Max fee 不低于所在区块的基础费用,也不低于你填的优先费,两项之和超过 Max fee 时,优先费按取小规则被压低,交易仍然可以入块。区块是否有效由这份参考实现定义,协议规则看它。

基础费用由协议逐块调整、每块最多涨跌 12.5%

基础费用既不是发送者出的价,也不是验证者要的价。按 ethereum.org 的说明,每个区块有一个基础费用当底价,由它之前的区块决定:公式拿上一个区块里全部交易消耗的 gas 量去比目标大小,目标是 gas 上限的一半,超过目标下一块就涨,不到目标就降,每个区块最多增加或减少 12.5%。空块降 12.5%,正好落在目标上不动,打满 gas 上限涨 12.5%,中间按偏离目标的程度线性变化。gas 上限本身会随验证者的信号和网络升级变动。

这笔钱不归任何人。区块创建时基础费用被销毁,从流通中移除;验证者拿到的只有优先费。

12.5% 连着涨起来很快。基础费用 20 gwei 时,下一块最高 20 × 1.125 = 22.5 gwei,最低 20 × 0.875 = 17.5 gwei;接连遇到打满上限的区块,每块乘 1.125,7 块后约 45.6 gwei,8 块后约 51.3 gwei。Max fee 比当前基础费用填高一截,换来的是这几个区块里交易一直够格入块。

余量留得不够时,基础费用一旦高过 Max fee,交易就过不了付得起基础费用这条校验,这个区块收不了它,这也是交易卡在 pending 的一种来由。

一笔 Max fee 50 gwei 的合约调用从余额检查到退款的全过程

gas limit 是你愿意让一笔交易最多消耗的 gas 数量。涉及智能合约的交易计算量比简单转账大,要填得比转账的 21,000 高。取一组示例数字:入块时基础费用 20 gwei,优先费填 2 gwei,Max fee 填 50 gwei,gas limit 填 80,000,合约执行实际用掉 52,000 单位 gas。

协议处理的顺序算式结果
检查余额,只比较不扣款gas limit × Max fee = 80,000 × 504,000,000 gwei(0.004 ETH)
定实际优先费min(2, 50 - 20)2 gwei
定实际单价20 + 222 gwei
执行前按 gas limit 先扣80,000 × 221,760,000 gwei(0.00176 ETH)
执行后退还没用掉的 gas(80,000 - 52,000) × 22616,000 gwei(0.000616 ETH)
最终手续费1,760,000 - 616,000,即 52,000 × 221,144,000 gwei(0.001144 ETH)
其中销毁的基础费用52,000 × 201,040,000 gwei
其中给出块方的优先费52,000 × 2104,000 gwei

地址里的 ETH 扣掉这笔交易要转出的金额之后,必须不少于 gas limit × Max fee,也就是 0.004 ETH,否则交易无效。把 Max fee 改成 500 gwei,实际优先费、实际单价、先扣和退还的数都不变,手续费还是 1,144,000 gwei;余额门槛却变成 80,000 × 500 = 40,000,000 gwei,也就是 0.04 ETH。地址里只剩 0.01 ETH 的话,这一格填得太高,一笔只花 0.001144 ETH 的交易反而无效。

把同一笔交易的优先费或入块时的基础费用换一个数,结果分别是:

  • 优先费从 2 gwei 改成 10 gwei:min(10, 50 - 20) = 10,单价 30 gwei,手续费 52,000 × 30 = 1,560,000 gwei,比原来多出的 416,000 gwei 全部给了出块方。
  • 入块时基础费用是 49 gwei:min(2, 50 - 49) = 1,单价 50 gwei,手续费 52,000 × 50 = 2,600,000 gwei,优先费被压到每单位 gas 1 gwei。
  • 入块时基础费用是 51 gwei:高过 Max fee,这个区块不收这笔交易。

交易上链之后,实际用了多少 gas、单价多少、销毁了多少,区块浏览器的交易页上逐行列着。

交易失败了手续费还退吗?

协议里先扣后还的只有 gas 数量:执行前按 gas limit 乘实际单价扣,执行完把 gas limit 减去实际用量的那部分按同一个单价还回来。没用掉的 gas 会退还给用户,ethereum.org 的文档把这笔退还写成 max fee - (base fee + tip);按协议的扣款顺序,回到账户里的是 gas 数量差乘以实际单价。失败的交易退不退,就看它用掉了多少 gas。

执行到一半把 gas 用光的交易,手续费不退。智能合约中途用完全部 gas 时,EVM 回退所有更改,提供的 gas 仍然因为已经执行的工作被消耗。链上状态回到原样,这笔手续费照付。

gas limit 填得太少是相反的结果。标准 ETH 转账需要 21,000 单位 gas,只填 20,000 的话,交易在验证阶段就失败,入块之前被拒绝,不消耗任何 gas。

成功的转账会把没用完的退回来:gas limit 填 50,000,EVM 消耗 21,000,剩下的 29,000 收回。gas limit 填得宽一些不会多花钱,它只影响先扣的金额和前面的余额门槛;往低了压省不下手续费,还可能落进执行中途耗尽的那种失败。

另外两种填法的手续费怎么算

优先费填 0 交易还能上链吗?

只付基础费用、优先费为 0 的交易在技术上有效,但不太可能被打包,因为它没给验证者任何优先选它的理由。优先费该给多少取决于发交易时的网络使用情况,需求大时可能要给得高一些,需求小时可以少付。

只填一个 gas price 的老式交易填高了会多扣吗?

会,填多少就按多少扣。EIP-1559 的参考实现把老式交易的 gas price 同时当成 Max fee 和优先费来处理,取小之后实际单价正好等于 gas price,超出基础费用的部分全算优先费。gas price 50 gwei、基础费用 20 gwei 时,每单位 gas 付 50 gwei,其中 30 gwei 是优先费。这类交易仍然可以入块。

本文引用源

  1. EIP-1559: Fee market change for ETH 1.0 chain · eips.ethereum.org/EIPS/eip-1559
  2. ethereum.org 开发者文档「Gas 与费用」简体中文版 · ethereum.org/zh/developers/docs/gas/