什么是 Gas

在以太坊等账户模型的链上,每笔交易都要消耗计算和存储资源。Gas 就是给这些资源标价的计量单位,像汽车的「升油」,而 ETH(或该链的原生币)是油价。你不会按「转一笔固定 5 元手续费」来理解它:复杂合约可能消耗几十万 Gas,简单转账大约 21000 Gas。最终花费 ≈ 消耗的 Gas 数量 × 每单位 Gas 的价格。

Gas Limit 与实际消耗

钱包会估计一个 Gas Limit(你愿意为这笔交易最多买多少「升油」)。执行中没用完的会退回(在以太坊上)。如果 Limit 设太低,交易会在中途失败,但失败本身也耗了计算,已消耗的 Gas 不会全退,这就是有人「转账失败却扣了手续费」的原因。

合约越复杂、循环越多、写入存储越多,Gas 越高。这也是为什么铸造 NFT、复杂套利、一次性授权很多代币会特别贵。开发者优化存储布局,其实是在帮用户省钱。

基础费、小费与拥堵

伦敦升级后,以太坊每块有基础费用(base fee),会根据拥堵上下调整,基础费被销毁。你还可以给验证者小费(priority fee)提高被打包的优先级。钱包显示的「Max fee」往往包含缓冲,实际支付可能更低。

当大家都在抢同一个 NFT 或行情剧烈波动时,小费被抬到离谱水平。这不是系统坏了,而是区块空间有限、拍卖出价。Layer2 把大量交易打包后提交到主网,正是为了摊薄这笔拥堵税。

跨链时别搞混「Gas 币」

在以太坊主网,Gas 付 ETH;在比特币网络,手续费用 BTC;在某些侧链可能用自己的原生币。你的 USDT 再多,若地址里没有足够的原生币,照样发不出交易。这是新手最常见的卡点之一。

省 Gas 的务实办法:非紧急操作等网络空闲;能在官方 L2 完成的就不要挤主网;避免无限授权后反复改授权;用钱包的模拟功能预估失败,减少「失败也付费」。

常见误区

  • 把 Gas 理解成交易所提现手续费——那是平台另收的,与链上 Gas 不是同一笔。
  • 看到失败交易就反复用同样参数重发,连续燃烧 Gas。
  • 在高拥堵时做不紧急的合约交互,却抱怨「区块链不能用」。