Gas Fee 是什麼?
Gas Fee 是在區塊鏈驗證中,用戶支付給礦工執行特定行為(如執行合約或是發送代幣)所需要消耗的燃料。區塊鏈上的每筆交易都需要消耗計算資源,而礦工必須負擔這些成本。因此為了獎勵礦工,才需要用戶支付費用,這就是所謂的 Gas Fee。
Gas Fee 通常會根據使用的區塊鏈網路不同而消耗不同的代幣,例如以太坊會消耗 ETH、BNB chain 則會消耗 BNB … 等等。
在區塊鏈上進行任何交易、執行智能合約、啟動 DApps 和支付數據存儲的手續費都被礦工收取。礦工對交易進行確認並確定哪些交易能進入新區塊。無論交易是成功還是失敗都需計算付費。這是因為即便是失敗,礦工也必須驗證並執行交易(驗算),依樣會產生計算的成本。
Gas Fee 的作用
Gas Fee 的支付可以確保區塊鏈網路的運行,使礦工有誘因去進行驗算,同時也可以用來防止惡意的交易行為。但這也常常造成網路堵塞時會產生高額的 Gas Fee 費用,造成使用上的困擾。
Gas Fee 為什麼會浮動?
Gas Fee 的多寡決定在兩個原因:
- 行為的複雜程度(可能一次產生多筆交易)
- 網路堵塞
行為的複雜程度
交易或是合約的複雜程度會影響最終的 Gas Fee,越是複雜的行為(如合約過程中產生多次交易)就越是容易產生高額的 Gas Fee。
網路堵塞
區塊鏈網路堵塞時會有大量的交易在鏈上等待處理,這個時候 Gas Fee 就會上升,因為礦工會傾向優先處理支付更多 Gas Fee 的交易,以獲取更多的獎勵。
Gas Fee 多少要怎麼看?
以在 Metamask 上發送 ETH 為例,我們可以在交易的確認畫面中看見該交易目前預計的手續費數量,並且可以根據預設的選項來選擇是否要以較高的 Gas Fee 來提升交易速度。
在交易送出完成之後,我們可以透過 Etherscan 來查詢交易最終產生了多少 Gas Fee,只要在搜尋欄輸入該筆交易的 Transaction Hash 即可查詢。
Gas Fee 計算的方式
交易手續費(Tx Fee)= Gas Limit * Gas Price
Gas Price(燃料價格)是什麼?
Gas Price 就是每單位 Gas 願意付出多少代幣,以以太坊為例,一般使用 Gwei 作為單位 Gwei=0.000000001 ETH,所以 Gas Price 設定為 20 Gwei,等於 Gas Price=0.00000002 ETH。
如果想在交易上更快被礦工驗證打包的話,Gas Price 就需要調整越高越好,但如果想要花費較少,就可以通過降低您支付每單位 Gas 的金額來實現。所以每個單位支付的價格會增加或減少交易的開採速度。
MyEtherWallet 官方教導如何突破 Gas Price 限制的方式
Gas Limit(燃料限制)是什麼?
Gas Limit 被稱為 Limit,是願意花費在交易上最大數量的 Gas 單位。這樣可以避免合約中出現錯誤的情況。然而,如果你不想在 Gas 上花費太多,降低 Gas Limit 並不會有多大幫助。交易者必須包含足夠的 Gas 來涵蓋使用的計算資源,否則交易將因 Out of Gas 而失敗。
而所消耗的手續費會同樣被扣取,用來當作獎勵礦工。而如果交易已經完成,而消耗的 Gas 未觸及 Gas Limit,這樣只有實際消耗的 Gas 會被收取。換句話,交易最高會被收取的手續費就是 Gas Limit * Gas Price 了。
*一般標準交易的 Gas Limit 為 21000。
交易手續費(Tx Fee)
交易手續費(Tx Fee)= Gas Limit * Gas Price
用汽車加油作簡單的譬喻,Gas Limit,視為汽車的需要多少公升的油。Gas Price,視為每公升油的價錢。如果需要開車從台北開到高雄需 21,000 公升,每公升為 20 元所以花費的油錢為 21,000 公升*20 元 = 420,000 元
ETH 交易手續費則為 21,000(Gas Limit)*20 Gwei(Gas Price)=420,000 Gwei,因此,交易手續費 Tx Fee = 420,000 *0.000000001 ETH = 0.00042 ETH
Gas Fee 總結
本文大致介紹了區塊鏈網路的 Gas、Gas Price 和 Gas Limit,並如何計算交易手續費。總結來說,如果該筆交易比較急迫,可以將 Gas Price 設定較高,這樣就可以超越其他 Gas Pricer 較低的交易先行驗證。如果不急,就只需要設定一個足夠的 Gas Price,就可以開始驗證交易了。