Gas费是执行链上操作的计费用量乘以有效单价。以Ethereum(以太坊)主网一般交易为例,准备额按Gas上限与最高费率计算,实费则按回执这份执行结果记录核对。Ethereum.org《Gas and fees》区分两种口径;估算不保证收录或成功,失败也要先分进区块前拒绝与链上执行回退。
钱包说要准备0.0032 ETH,也就是以太坊原生币,最后只用了0.001404,少掉的差额到底去了哪里?另一笔明明失败,为什么仍被收费?如果把上限、用量与失败原因混在一起,很容易得出「多设一点就会多扣」或「失败一定退费」这两个相反的误解。
这篇先把单位拆开,再用同一组教学输入算完准备额与实费,最后只改一个条件,观察等待及失败分支。先会读字段,比急着选「最快」更有用。
Gas用量与ETH费用,先把单位分开
Gas衡量计算工作量,ETH费用则是你为这些工作支付的金额。 两者中间还隔着每单位价格,不能把Gas Limit当成一个ETH数字,也不能只看单价就判断整笔操作便宜。
本篇只计算Ethereum主网一般EIP-1559交易的执行费;EIP-1559是区分基础费、优先费及最高费率的交易计费机制。案例由发送账户自行付费,不套用由第三方代付的模式。收转币的完整顺序可先看加密货币钱包入门。
Gas Limit限制工作量,Gwei标每单位价格
Gas Limit是这笔交易允许使用的Gas上限,实际Gas Used则是最后计入费用的用量。Gwei是ETH的小额单位,1 Gwei等于十亿分之一ETH。假设用量为50,000 Gas、有效单价为20 Gwei,费用就是50,000乘20再除以十亿,得到0.001 ETH。
操作较复杂,可能需要更多用量;网络需求增加,也可能使单价改变。Ethereum.org《Gas and fees》以工作量及价格解释这两个来源。普通ETH转账、代币转账与多步骤合约交互,不宜共用一个固定上限;估算出错时,不能只靠把数字压低来强迫操作变便宜。
最高费率与优先费率,不是同一个上限
Base Fee是协议设置的基础费率;Max Priority Fee是愿意额外支付的每单位优先费上限;Max Fee则是整体每单位最高费率。后两项在EIP-1559里分别对应maxPriorityFeePerGas与maxFeePerGas,看到两个上限时不要把它们再相加,当成另一个可多收的总价。
EIP-1559原始规范先要求Max Fee不低于该区块Base Fee,且不低于Max Priority Fee,才套用以下有效单价公式。符合这些前提时,有效优先费限制为「优先费上限」及「最高费率减基础费」中的较小值,适用的有效单价再加回基础费。这个限制尤其重要:当最高费率剩余空间不足时,并不是还能完整支付原本设置的优先费。本文于2026年10月27日核对规范公式,下面逐步代入。

先算准备额,再用回执算实际费用
准备额按交易上限检查,实费按收录后回执计算,两者分开核对。 这次假设账户有0.004 ETH,要送出一笔不转出原生ETH的代币合约交互。固定Gas Limit为80,000、Max Fee为40 Gwei、Max Priority Fee为2 Gwei;假设被收录区块的Base Fee为25 Gwei,最后Gas Used为52,000。全部是教学输入,没有实际广播或真实回执。
第一步:固定一笔合约交互的教学输入
送出前先看费用上限:80,000乘40 Gwei,换算为0.0032 ETH。本例另有0.004 ETH且原生ETH转出金额为零,因此可通过这项准备额检查。若交易同时转出ETH,还要把转出金额加进所需资金,不能只检查费用。
这个计算回答「上限条件下是否有足够资金」,没有回答「最后一定花多少」或「一定会被收录」。Gas估算也受执行状态影响;若钱包估算报错、合约或操作内容不明,就先查原因,不为了凑进现有余额而删掉安全余量。

第二步:用较小值求有效费率
先算最高费率扣掉基础费,40减25剩15 Gwei,再与优先费上限2比较,取较小的2。因此,本例有效单价是25加2,等于27 Gwei,而非40加2或直接把40全部当成实际单价。
算式可以写成「有效优先费=min(2,40-25)=2」,再得到「有效单价=25+2=27」。min就是取较小值。这里的25属假设收录区块条件,不能在真实送出前拿一张较早截屏,保证稍后一定仍是这个数字。

第三步:用实际Gas用量核对扣费
假设这笔交易成功,回执记录Gas Used为52,000、有效单价为27 Gwei,实际执行费便是52,000乘27再除以十亿,等于0.001404 ETH。在没有其他ETH资金变动的本例条件下,账户剩余0.002596 ETH。
0.0032是事前上限,0.001404是假设实费,两者差额0.001796 ETH,不能只凭这个减法就补写一笔独立「退款入账」。协议有未用Gas及相关费用的结算规则,钱包显示方式也可能不同;对账应依实际余额与回执,避免先把上限当成已扣款,再把差额当成另一笔已发生交易。
把同一笔费用拆开,基础费部分是52,000乘25 Gwei,等于0.0013 ETH;有效优先费部分是52,000乘2 Gwei,等于0.000104 ETH,两者合计仍是0.001404。这只是把同一笔实费分成两部分,不能又把它们加在0.001404之外,造成重复计费。
本例没有原生ETH转出,才可以直接用起始0.004减实费。若你同时支付ETH给别人,就应另外扣转出金额;代币数量的变化也要另核,不把Gas费误写成代币交易的获利或亏损。

第四步:只改一个字段,看看哪个结果会变
先只把Gas Limit提高到120,000,其余仍用相同的52,000实际用量及27 Gwei有效单价。准备上限变成0.0048 ETH,已超过本例0.004 ETH余额;因此固定0.004 ETH的这条分支应停止,不能记成能送出或已完成。另作纯算式对照:只拿52,000乘27 Gwei,仍得到0.001404 ETH;这个乘法不代表资金不足的交易可以执行。提高工作量上限,与实际多做工作,是不同的变化。
再回到80,000上限,只把假设Base Fee改为39 Gwei。最高费率剩余空间只有1,优先费便取min(2,1)=1,有效单价为40;相同52,000用量的实费是0.00208 ETH。这是另一个平行情境,不能拿来覆写前面27 Gwei的结果。
若某个待收录区块的Base Fee已是41,而你的Max Fee仍是40,这笔交易便不符合该区块的费率条件。此时应查看原交易、估算与钱包处理方式,不宣称提高Gas Limit就能解决单价上限不足,也不保证调高某一个字段便一定立即成交。
交易失败,要先分清在哪里失败
没被区块收录就遭拒绝,与进入区块后执行失败,费用结果不同。 Ethereum.org《Gas and fees》特别区分验证阶段拒绝及执行途中耗尽Gas,不能把所有红色「失败」消息套成同一种扣费规则。
进区块前被拒绝,与链上执行回退不同
例如一笔交易在进区块前就因不符合有效性条件被拒绝,没有链上执行用量可供计费;这里谈的是链上执行费,不推论某个平台是否另收服务费。先核对有没有交易回执与收录记录,不只看钱包画面的一句提示。
若已收录后合约执行回退,也就是REVERT,原定操作的状态变更会被撤回,但已使用的计算资源仍可能计费。用本例27 Gwei,另假设失败前计入30,000 Gas,费用便是0.00081 ETH;没有得到原本想要的操作结果,不等于计算工作从未发生。
耗尽Gas与主动回退,不用同一个费用数字
若是执行途中耗尽本例80,000 Gas上限,也就是Out of Gas,按同一27 Gwei计算便是0.00216 ETH。它与前段30,000用量的回退是假设的不同失败分支,不可把两笔费用累加成同一笔,也不能说任何失败都会刚好花完整个Gas上限。
要决定是否重试,先辨认是额度不够、合约条件不成立、资金不足,还是费率条件不适用。单纯提高Gas Limit不会让一个本来不符合合约规则的操作自动成立,重复尝试还可能累积新的费用。

为什么不能只挑画面上最便宜的费用
便宜必须放回相同网络、相同操作与可接受等待条件比较。只挑最低费用,可能改变收款路线,或把一个可执行操作改成容易失败的输入。
限额过低、估算变动与等待条件
Gas Limit太低可能使执行无法完成;费率上限不符收录条件,则可能影响能否被纳入。这两种限制有不同单位,调整前先看清字段。已送出的交易仍待处理时,也先查原交易,不立即用第二笔重复支付同一件事。
同一操作在不同时间,因网络需求或合约状态改变,估算也可能不同。比较记录应保留当时条件,不拿今天的低费率倒填成昨天应该付的数字;本篇教学数字同样不代表现在可取得的报价。
换到另一网络,先重查整个费用模型
Ethereum主网的单一执行费算式,不能直接当成所有二层网络的完整总费用。二层网络是协助扩充主网处理能力的另一层系统;OP Mainnet官方《Transaction fees》便另列数据费及适用配置下的运营费项目,本文于2026年10月27日核对。比较时应看该网络的完整估算,而不只比一个Gwei字段。
即使另一网络较便宜,接收方也必须支持相同资产及路线。网络不符可能带来比费用差额更大的处理问题,接续转账网络与到账确认,把收款条件一起核清。

怎么降低不必要支出,又不破坏原计划
减少不必要的重复操作,比把每一笔的上限盲目压低更值得先做。先理解自己要完成什么,再决定哪些签名与交易确实必要,不为了省一次费用而接受不理解的权限。
减少重复操作,先理解授权是否必要
某些应用操作会涉及代币授权与后续动用,不一定只产生一笔交易。每一步是否需要链上费用,要按实际方式判断;例如EIP-2612的Permit许可,在签名、序号与期限等条件符合时,可以稍后由其他人提交链上。不要因为当下没扣Gas,就把它当成单纯登录。
反过来,也不宜为了少做一次授权,就直接给未知对象无限额。费用与权限是两个判断,权限管理接续代币授权与撤销,本篇的费用计算不替签名内容背书。
把估算、上限与实费分栏记录
对一笔交易,分开记送出前估算、Gas及费率上限、交易识别码TxID、收录后实际用量与有效费率,再核对ETH余额。尚无回执时,实费留待确认;不要用零代替未知,也不要拿最高准备额冒充实际支出。 对照本例,可以依序读出「余额0.004、上限0.0032、假设实费0.001404、结算后余额0.002596」。第一个数字是起点,第二个是事前限制,后两个才属于假设完成分支。若操作尚在等待,就只保留前两项及原交易识别,不能预先填入完成分支的余额。
核对回执时,交易识别、网络及成功状态也要与原操作一致。找到一笔费用接近的交易,不代表已找到自己的那一笔;实际用量与有效费率应来自同一笔已收录交易。若钱包只显示估算,尚未取得可核对的收录结果,就保留等待状态,不用本篇假设值代填账目。
本文供计费理解与教学演算,不构成投资建议。所有金额与费率均为假设,真实网络、操作及代付方式可能不同;估算不保证收录、成功或固定成本。