一笔交易的手续费,钱包估算页告诉你一次,签名确认页又提示一次,上链后浏览器再给一个“实际值”。三个数字常常都不一样——不是谁在骗你,而是手续费本来就有三套口径,各自描述同一件事的三个不同阶段。把三本账对上,拥堵时“被宰”的感觉会少一大半。
签名前:上限口径,不是账单
以主流的 EIP-1559 型交易为例,你确认的是两个价格字段加一个数量字段:愿意为每单位 Gas 支付的最高价、其中给打包方的优先费,以及 Gas 用量上限。三者相乘是你理论上的最大付出,而非应付金额。很多“钱包说要付很多”的恐慌来自把上限当账单,两个字段的分工详见最高费用与优先费怎么填?EIP-1559 交易两个费用字段的读法。界面上的慢速、标准、快速三档则是从近期区块统计出的建议价,拥堵突变时会失灵,统计口径见钱包手续费的“慢速、标准、快速”三档数字从哪来,什么时候会失灵。
上链后:回执里的实际用量与单价
交易被打包执行后,回执给出两个事后事实:实际消耗的 Gas 量(执行到哪一步用多少,不会用满预算;失败的交易同样计费)与协议结算的有效单价(基础费与优先费的合成结果)。实际费用约等于两者相乘。三句话记住口径差:预算没花满是常态;失败交易烧掉的 Gas 不退,现场读法见交易失败提示在哪里看?Revert、Gas 不足与错误原因的排查顺序;你挂出的价格上限和你被实收的单价通常不是一回事——基础费由协议按上一区块供需调节,与你的上限无关。
显示层:换算与取整又动了数字
浏览器或钱包展示的人民币金额是在回执数值之上再加工的结果:实际单价是 Wei 级的天文数字,界面先折算成 Gwei 或本币每 Gas 单价,再乘一个行情价,乘完还可能四舍五入。行情源、时点、小数取整,每层都能让显示值与回执原值对不齐——这与“钱包估值和行情不一样”是同一族问题,价格源与缓存的成因另见钱包里的估值为什么和行情不一样:价格源、缓存、换算与市场深度四个来源。
对账怎么做
顺序固定:先取回执里实际 Gas 与有效单价两个数自己相乘,这是唯一的事实账;再对比签名时的上限,确认远未踩满、出价合理;最后才看界面显示值,并默认它带换算误差。想省费的正确杠杆是优先费与发送时机,而不是调低 Gas 用量上限——后者只会让交易中途失败并照扣费用,原因见Gas Limit怎么填?为什么调低了省不了钱、只可能白白烧掉手续费。
一笔账单的完整走查示例
把三本账串起来看一遍:签名前,确认页显示“最高费用 30 Gwei、优先费 1 Gwei、Gas 上限 60000”,上限账就是 60000×30 Gwei 这个天花板;上链后,回执显示实际用掉 42000 Gas、有效单价 12 Gwei,事实账是 42000×12 Gwei,只有天花板的约两成;界面把它换算成法币时又按当时行情取整,显示值可能与手算值差几分钱。三层各归各的活,谁也没说谎。
顺带说清两个常见误会。第一,“出价高就一定多付”不成立:EIP-1559 模型下你被实收的是协议算出的基础费加你给的小费,与你的最高价无关,挂高价的作用只是让你在拥堵时更容易被打包。第二,“失败的交易不花钱”也不成立:节点执行到出错那一步的 Gas 已经消耗,回执里有效单价与实际 Gas 都不为零。这两点决定了优化方向——省钱的杠杆是时机与优先费,不是把上限数字调小;上限数字唯一的作用是防极端情况,按钱包默认值即可。
一句收口
三本账各有用处:上限账约束最坏情况,回执账是事实,显示账方便阅读。混着看,就会在拥堵高峰把一张正常账单读成一桩冤案。本文仅作费用机制科普,不构成投资建议;示例中的参数行为以各链现行协议为准。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。