跳转到主要内容

什么是 Gas?Gas Limit、Gas Price 与网络费如何计算?

U
作者:UKey Wallet

加密资产常见概念与问答

Gas 是以太坊及许多 EVM 兼容网络用来衡量链上操作所需计算资源的单位。转账、代币授权、兑换或调用智能合约都会消耗一定数量的 Gas;用户为这些资源支付的网络费用称为 Gas Fee

在基础的 EVM 费用模型中,可以用下面的简化公式理解:

Gas Fee(网络费)= Gas Used(实际使用量)× Effective Gas Price(实际单价)

适用边界:Gas 不是一种独立代币,也不是所有区块链都使用的费用模型。Gas Fee 通常以当前网络的原生资产支付;部分 Layer 2 或特殊网络还可能另外计算数据费或协议费用。

为什么需要 Gas?

区块链节点需要执行计算、读写状态并保存交易结果。Gas 为不同操作的资源消耗提供统一计量方式,也限制单笔交易可以执行的最大工作量,避免无限循环或大量无成本请求占用网络资源。

交易越复杂,通常需要执行的合约逻辑越多,Gas Used 也可能越高。因此,Gas Fee 主要受操作复杂度当时的单位价格影响,并不简单取决于转账金额大小。

Gas Used、Gas Limit、Gas Price 和 Gas Fee 有什么区别?

概念

含义

Gas Used

交易实际执行时消耗的 Gas 数量

Gas Limit

本次交易允许消耗的 Gas 上限

Gas Price

每单位 Gas 的价格,常以 Gwei 表示

Gas Fee

交易最终产生的网络费用

1 Gwei = 0.000000001 ETH。Gas Limit 不是预先确定的最终消耗量:交易正常完成时,只按实际使用量计费,未使用的限额不会被收取。若上限设置过低,执行可能因 Gas 不足而回退,但已经消耗的计算资源仍可能产生费用。

交易 Gas Limit 与区块 Gas Limit也不是同一个概念。前者限制单笔交易的最大用量;后者限制一个区块可容纳的总计算量,主要属于网络协议层参数。

EIP-1559 下的费用参数怎样理解?

采用 EIP-1559 费用机制的网络通常会显示以下参数:

  • Base Fee:协议根据区块使用情况计算的基础单价。在以太坊主网上,这部分费用会被销毁。

  • Priority Fee:支付给验证者的优先费,用于表达希望交易更快被纳入区块的意愿,但更高的设置不保证交易一定立即确认。

  • Max Fee Per Gas:用户允许每单位 Gas 支付的最高金额。实际单价不会超过这一上限。

钱包显示的“最高网络费”通常由 Gas Limit 和最高单价计算,用于展示可能的费用上限,并不等于最终一定扣除的金额。实际结算取决于交易使用量、有效单价及相应网络的费用规则。UKey Wallet 中的费用设置说明见《如何管理 UKey Wallet 交易费用?》

为什么交易失败仍可能产生 Gas Fee?

关键在于交易是否已经被网络纳入区块并执行:

情况

是否通常产生链上费用

交易在本地被拒绝,或从未成功广播和纳入区块

通常不会

交易已被纳入区块,但合约条件不满足、Gas 不足或执行回退

通常会收取已经消耗的 Gas

链上结果失败不等于节点没有工作。验证者已经处理交易并执行相应计算,因此执行过程中消耗的资源仍可能需要付费。

哪些操作需要 Gas?由谁支付?

操作

是否通常需要 Gas

连接钱包、读取公开地址或余额

不需要,因为没有修改链上状态

普通消息签名

签名本身不需要;若签名随后被提交到链上,提交方仍需支付费用

转账、代币授权、兑换、铸造或撤销授权

需要,因为会修改链上状态

连接钱包、消息签名、交易签名和代币授权代表的权限与风险不同,不能仅以“是否需要 Gas”判断操作是否安全。详细区别见《连接钱包、消息签名、交易签名和代币授权有什么区别?》

即使账户持有 USDT、USDC 等代币,也通常需要另外保留当前网络的原生资产支付 Gas Fee。若原生资产不足,代币余额再多也可能无法发起链上操作。

网络费用由协议规则和当前链上状态决定。钱包客户端负责估算并构建费用参数,硬件钱包负责展示其能够解析的交易信息并在用户确认后签名;硬件设备本身不会替用户判断费用是否合理。签名流程见《UKey 硬件钱包如何保障交易签名安全?》

常见问题

余额等于转账金额,为什么仍提示余额不足?

账户还需要支付网络费。可发送的最大金额通常小于原生资产余额,需要为预计费用留出空间。

为什么不同 DApp 执行类似操作,费用仍不同?

不同 DApp 可能调用不同合约、路由或步骤,实际执行的计算和状态写入量不同,因此 Gas Used 也会不同。

为什么“最高费用”高于最终扣款?

最高费用反映允许的用量和单价上限。交易完成后通常按照实际使用量及有效单价结算;部分网络还会单独计算数据费。

加速或取消交易为什么还要付费?

加速或取消通常需要提交另一笔链上交易,因此仍会占用网络资源并产生费用。具体说明见《如何加速或取消一笔交易?》

总结:Gas 衡量链上操作的计算用量,Gas Price 表示单位价格,Gas Limit 是允许的用量上限,Gas Fee 则是最终网络费用。理解这几个概念,有助于判断费用上限、交易失败扣费和原生资产不足等常见问题。

这是否解答了您的问题?