跳至主要內容

什麼是 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 則是最終網路費用。理解這幾個概念,有助於判斷費用上限、交易失敗扣費和原生資產不足等常見問題。

是否回答了您的問題?