NEW EVENT
最新活動
OKX
幣安
HOT ARTICLES
熱門文章
Featured Articles
專題精選
Gas 費是一種付給礦工的手續費,在區塊鏈的運作中,每筆交易都需要處理與驗證,這部分工作由礦工負責,而 Gas 就是他們處理與驗證交易的報酬。
也可以想像成是區塊鏈的過路費,繳過路費,礦工才願意讓這筆交易上鏈,沒繳過路費或繳不夠多,這筆交易就上不了鏈。
本文重點:
一開始是指以太坊鏈上的手續費,以太坊把鏈上的礦工手續費稱之為 Gas Fee,但後來也慢慢變成一種泛稱,泛指在鏈上處理交易時需要付給礦工或節點的手續費。
還記得區塊鏈的三大特性嗎?去中心化、公開透明、不可竄改,每一筆在區塊鏈上的交易都需要經過處理和驗證,並打包成區塊上鏈,一旦上鏈後就不可竄改,其中的每筆交易都公開透明,這靠的就是眾多礦工一起付出努力,處理、驗證與打包每筆交易。
礦工為區塊鏈付出了這麼多,能獲得的報酬有兩種,一種是交易手續費,另一種是區塊獎勵,後者就是俗稱的挖礦。
天下沒有白吃的午餐,當我們在鏈上發起交易,需要礦工處理,就得付 Gas 費給礦工,不只是要付而已,還得付的夠多!付的夠多,礦工才願意優先處理這筆交易,付的不夠多,礦工會把這筆交易先放著,等之後有空再來處理,如果付太少,礦工甚至不想處理這筆交易,那麼在交易擁塞時,你發出的交易就會需要等比較久才會完成。
Gas Fee = Gas Price x Gas Limit
Gas 費 = Gas 價格 x Gas 單位
最常用來解釋 Gas 費用結構的舉例就是汽油,開車的時候會消耗汽油,例如開一百公里會耗掉 7 公升的汽油,路程愈遠消耗愈多,路程很短就只消耗一點點,這就像是 Gas Limit,要完成一筆交易需要消耗幾單位的 Gas,很簡單的交易需要比較少的 Gad Limit,愈複雜的交易則消耗愈多單位。
而每公升汽油價格多少錢,這是 Gas Price,跟消耗單位數量無關,而是你願意為每單位消耗出多少錢。
每單位的 Gas 價格 x 消耗的 Gas 單位數 = 實際付出的 Gas 費。
如果給的單位數 (Gas Limit) 不夠,就像汽油不夠,車開到半路沒油,交易做到一半停住,無法完成,但花掉的還是花掉了。如果給的單位數很多,就像汽油加太多,車開到終點還沒用完,多的汽油並不會消耗掉,還是在油箱裡,多給的 Gas Limit 不會消耗掉,還是在錢包裡。
如果給的單位價格太低,就像出價太低,沒人想處理這筆交易,只能等,等到有人願意接。如果給的單位價格很高,就像出價很高,大家會爭搶這筆交易,搶著處理。
一般說來,發起一筆交易時,系統會根據情況預先計算所需的 Gas Limit,這邊就算多給也沒關係,沒用完的就不會花到。單位主要是確保交易能確實執行完畢,至於價格則是用來確認有礦工願意處理這筆交易,出價愈高,愈優先處理。
偶爾也會有這樣付出大量手續費的情形出現,通常出現於搶購熱門的 NFT 等情境,NFT 本體只賣一顆以太幣,但為了搶快,這位買主付出了超過 22 顆以太幣的手續費,這時候便是礦工開心收取手續費的時候。
在小狐狸 Metamask 錢包中有手動設定 Gas 的功能,但預設是關閉的,需要先到設定裡打開。
按下右上角的帳戶,找到設定。
找到進階。
接著往下滑,把「顯示進階 gas 控制選項」的功能打開。
如果在預設狀態,顯示進階 gas 控制選項並沒有打開,發起交易的時候會看到像下圖這樣,但沒有編輯可以按:
發起交易時,會根據預設以及該協議的建議,顯示一個預估的 Gas 費,如果有開啟進階控制項功能,就可以按下編輯做進一步的設定。
通常 Gas Fee 的單位會是該鏈的原生幣,例如以太鏈上的 Gas 用以太幣計算,幣安鏈 (BSC) 上的 Gas 用 BNB 計算,其他鏈的 Gas 費也是收取各自不同的幣種。
Gas 上限指的就是 Gas Limit,單位數。這部分設定高或低主要影響交易能不能確實被執行完成,就算設定過高,多的也不會被消耗掉,通常來說依據系統預設的就應該足夠。
下方的 Gas Price 才是影響礦工願不願意優先處理這筆交易的關鍵,如果想要更快速完成交易,需要調高的是 Gas Price。
GWEI 是 Gas Price 的價格單位,十億分之一,一 GWEI = 十億分之一顆以太幣 (0.000000001)。
Gas 一開始是以太坊上才有的名詞,專指以太坊上的礦工手續費,以太鏈上的手續費用以太幣計算,後來許多公鏈也參考這樣的模式。
Metamask 錢包基本上支援所有 EVM 公鏈,如果在另外一條公鏈上,假設是 Astar 鏈,這條公鏈上的原生幣是 Astr,Gas 就會用 Astr 來計算,那每個 GWEI 就會等於十億分之一的 Astr,依此類推到其他 EVM 公鏈。
在Metamask 錢包中可以看到交易紀錄,正在處理中的交易會像圖中這樣顯示等待處理,如果等太久可以按下加速提高手續費。
按下加速後會跳出這樣的畫面,按下右上藍色 10% increase 按鈕即可做進一步的 Gas 費設定。
這是較為進階的功能,需要更熟悉區塊鏈的運作以及錢包操作。
也是在 Metamask 設定功能的進階選項中,打開這個自訂交易 nonce 的功能。
在以太坊上的每一筆交易都會有個 nonce 值,用來計算這個地址發起的交易數量,數字由小到大,可以把它視為這個地址發起過的交易順序。
礦工處理交易的原則是按照順序處理,於是如果上一筆交易卡住,後面發起的交易也無法處理,必須等到那筆卡住的交易解決後,礦工才會按照順序往下處理新交易。
當交易卡住時,通常是因為 Gas 費設定太低,或是鏈上交易壅塞,這時候如果想要發起新交易,就得把卡住的那筆交易給取消掉,但它卡住了,連要送出取消的指令有時候都做不到。
這時候的作法是用一筆新交易覆蓋掉舊交易,透過自訂 nonce 來覆蓋掉卡住的那筆交易。
首先找到卡住的那筆交易的 nonce 值:
到交易紀錄中找到卡住的那筆交易,直接按下去就會顯示出詳細資料。
接著就可以在詳細資料中找到 nonce 的值。
接著發起一筆新交易,或是重新發起交易,然後在交易確認的介面中自訂 nonce 值:
交易確認的頁面中,中間是設定 Gas 的部分,下方就是交易 nonce,可以在這邊填入想要覆蓋掉的那筆交易的值,就可以用這次的新交易覆蓋掉那筆舊交易。
這個功能不只是用在 Gas 費給太低,無論任何理由導致交易卡住時,因為礦工就是按照順序處理,都會導致後面無法再發起新交易,這時候可以透過這功能來覆蓋掉卡住的交易,讓錢包恢復正常使用。
但切記發起的新交易 Gas 費要給足,不然也許又成為下一筆卡住的交易。
小提醒:nonce 值不要亂設,礦工會檢查 nonce 值來判斷這是不是合理的交易,如果被察覺不合理,交易會被拒絕或放置不處理。
鏈上當下交易過於熱絡時,Gas 費就會升高,交易比較平靜時,Gas 費會比較正常,分享兩個可以監看目前鏈上即時 Gas 狀況的網站:
https://etherscan.io/gastracker
可以看到目前以太鏈上的 Gas 費狀態,顯示的是三種價格,慢速 / 平均 / 高速交易之下應該要出的 Gas Price。
https://www.blocknative.com/gas-estimator
不只以太坊,也可以看到 Polygon 鏈上的狀態。
延伸閱讀:
撤銷智能合約授權|如何在 Metamask 取消授權?| 工具介紹
智能合約錢包將取代 Metamask?介紹以太坊抽象帳戶 (AA) 賽道的 5 個熱門項目!
東東
加密貨幣愛好者 | 2017 入圈,認為區塊鏈是下個世代的網路,期待區塊鏈與加密貨幣普及到日常生活的那一天。