Web3智网理解結構,看見下一步

以太坊 Gas:計算用量、單價與失敗成本

Web3智网 / 知識讀本 · 以太坊 · 2 分鐘閱讀

Gas 是運算資源的計量,不是另一種代幣。估算交易成本時,要分開看實際用量、每單位價格與使用者設定的支出上限。

運作原理

鏈上執行不同操作需要不同計算與儲存資源,因此消耗不同數量的 Gas。交易設定 Gas 上限,防止一次執行無限制消耗資源;實際費用主要依實際使用量計算,而不是只要把上限填高,就一定照上限全部扣款。

在常見的動態費用交易中,使用者設定最高每單位費用與優先費。基本費由協議依區塊需求調整,實際優先費還受最高費用空間限制。錢包顯示的最高可能支出,與交易完成後的實際收費不同,應以交易收據中的數據複核。

假設案例:把數字放回流程

假設某次呼叫實際消耗五萬 Gas,基本費為每單位十個 gwei,實付優先費為二個 gwei,計算結果是六十萬 gwei,也就是零點零零零六 ETH。即使設定上限為八萬 Gas,未用到的兩萬也不會因這個上限而全部收費。上述價格與用量是假設數字,不是即時費率。

判讀與實務

交易在執行途中回復,通常仍要支付已完成計算所消耗的費用,但原本要進行的狀態修改會被撤銷。因而「轉帳金額沒有送出」與「沒有任何成本」是兩回事。若費用資產不足以通過初步有效性檢查,則交易可能根本不會被收錄。

上限設得太低,可能在完成前耗盡資源;每單位最高費用設得太低,則可能長時間等待。兩個問題需要不同處理,不應看到卡住就同時任意放大所有欄位。先讀取錢包錯誤、模擬結果與待處理狀態,才能知道是哪一層限制。

第二層網路還可能另計資料發布或其他費用,不能把主網的一個乘法直接套用所有網路。比較成本時要統一操作內容與時間,並確認報價是否包含全部組成。小額測試能驗證流程,但不代表下一次大型合約呼叫會消耗相同資源。

讀取合約狀態通常可以透過節點查詢完成,不必為每次查看餘額發送鏈上交易。但若某次操作要修改狀態,即使介面稱為免費,也可能由服務替你支付,而不是沒有資源成本。辨認費用由誰承擔,有助於看清補貼條件及服務可能隨時改變的限制。

操作前檢查清單

  • 分開查看 Gas 上限、估計用量、最高費用與優先費。
  • 確認原生費用資產足夠,不只檢查代幣餘額。
  • 失敗後先讀收據與回復原因,再決定是否重送。

常見問題

費用越高,合約操作越安全嗎?

不會。較高費用可能改善收錄競爭力,卻無法修正惡意合約、錯誤參數或過大的授權額度。

交易沒用完的 Gas 會去哪裡?

費用不是預先購買後必須耗盡的點數。實際收費依適用規則及用量結算,未用到的上限空間不等於實際扣費。

原始資料與延伸閱讀