曾用過區塊鏈相關應用,不管是交易所、DApp 或是虛擬貨幣錢包的人,一定都聽過礦工費 (Gas Fee) 這個詞。它是當你要在區塊鏈網路發起一筆交易時,所要支付給礦工的一筆手續費。
(本文轉自JOYSO Medium)
用一個大家都很熟悉的實際例子來比喻,當你要在不同的銀行帳戶之間轉帳時,必須要為銀行提供的服務支付手續費。
同樣的,區塊鏈的礦工要把你的交易打包並放上區塊鏈,才能使交易完成,在這過程中會消耗區塊鏈的運算資源,所以要支付礦工費。
在以太坊網路上,是用 ETH (以太幣) 來支付礦工費。如果你要從交易所或錢包發送以太幣和 ERC 20 代幣,或是和智能合約進行互動,例如參加 ICO 或是使用 DApp 等,就必須用 ETH 來支付礦工費。
以上面的 MetaMask 截圖為例,每次當你要傳送以太幣時都會跳出這個操作畫面,圖中有兩個欄位與礦工費有關,分別是「Gas Limit」和「Gas Price」。在每次的交易中,你都可以依照需求調整這兩個數值。
Gas Fee = Gas Limit x Gas Price
礦工費總金額的計算方式是 Gas Limit 乘上 Gas Price。因此先把圖中的 Gas Limit 和 Gas Price 兩個數字相乘,再換算成以太幣(1 ETH = 10^9 GWEI): 21000 x 10 / 10^9 ,就可以得到礦工費的總金額 0.00021 ETH。
Gas Limit 是你在這筆交易中所願意支付 Gas 單位的最大數量。完成一筆交易所需的 Gas 單位數量,取決於交易的複雜程度。當一筆交易越複雜,就必須要耗費較多的運算資源,因此需要花費較多 Gas。
要特別注意的是,當設定的 Gas 單位不夠多時,將會導致交易失敗。21,000 是一般轉帳交易的 Gas Limit 預設值,如果是要參與代幣銷售或是使用 DApp,因為過程會涉及較為複雜的智能合約,因此就要設置更高的 Gas Limit。
Gas Price 是每個單位 Gas 的價格,以 GWEI 表示。它會影響到你的交易被礦工打包放上區塊鏈的速度。
如果 Gas Price 設的越高,就給礦工更大的誘因將你的交易打包;相反的,如果 Gas Price 設的低就要等待比較長的時間。要是不急著完成一筆交易,你就可以選擇較低的 Gas Price 來省錢。
對礦工費有了基礎認識後,接著就來看你不可不知的 6 個重點:
1.注意參加代幣銷售時設定的 Gas Limit
參與代幣銷售時,你應該要把 Gas Limit 設成銷售方所建議的數值。因為代幣銷售的智能合約比一般轉帳交易更為複雜,所以 Gas Limit 也要設得更高。我就曾經在參加 ICO 時,因為不知道要把 Gas Limit 從 21,000 改為 100,000,而碰到 “out of gas” 錯誤。
2.想節省礦工費,你應該調低 Gas Price 而不是 Gas Limit
如先前所提到的,如果你調低 Gas Limit 可能會無法滿足完成交易所需的 Gas,導致交易失敗。因此要節省礦工費,請將 Gas Price 調低,並耐心等候交易完成。
3.你可以拿回沒用完的 Gas
不需要擔心把 Gas Limit 設定得太高,如果有 Gas 沒被用完,會在交易完成之後退還到你的帳戶中,你可以到 Etherscan 上查詢交易的細節。在下面的截圖中,我們可以看到 Gas Limit 的設定是 100,000,但是實際上只用到 35,826,所以剩餘沒用完的 Gas 就會退還。
4.如果交易失敗,依然要付礦工費
萬一不小心把 Gas Limit 設得太低,導致交易失敗,礦工費也不會退還給你,因為你還是必須為區塊鏈已進行的運算支付手續費。
5.確保有足夠的 ETH 支付礦工費
記得不論是要傳送 ETH 或是 ERC20 代幣,你都必須要用 ETH 支付礦工費。有時候大家會忘記錢包中也要有 ETH 才能夠發送代幣。
6.實用小工具:ETH Gas Station, Etherscan
在 ETH Gas Station 上,可以找到依據以太坊網路壅塞程度,所推薦設置的 Gas Price,就看你想節省礦工費,還是想快點完成交易。在 Etherscan 上,可以查詢每個交易的詳細資訊,包括 Gas Limit, Gas Price 以及交易中實際用到的礦工費。
?相關報導?
【億萬富豪|Google 聯合創辦人 Sergey Brin】是一位以太坊礦工;而零知識證明令他驚訝到難以置信
【技術革新|Intel】不再需要礦工?英特爾(Intel)正測試分佈式帳本的自動化驗證技術
JOYSO黑色星期五挑戰
活動簡介:
時間:
7/13(五)~8/1(三)
《BlockTempo動區動趨》LINE官方號開通囉~立即加入獲得第一手區塊鏈、加密貨幣新聞報導!