關(guān)于區(qū)塊鏈礦工費(fèi)的常見問題解答
曾用過區(qū)塊鏈相關(guān)應(yīng)用,不管是交易所、DApp 或是虛擬貨幣錢包的人,一定都聽過礦工費(fèi)(Gas Fee) 這個(gè)詞。它是當(dāng)你要在區(qū)塊鏈網(wǎng)路發(fā)起一筆交易時(shí),所要支付給礦工的一筆手續(xù)費(fèi)。
一個(gè)大家都很熟悉的實(shí)際例子來比喻,當(dāng)你要在不同的銀行帳戶之間轉(zhuǎn)帳時(shí),必須要為銀行提供的服務(wù)支付手續(xù)費(fèi)。
同樣的,區(qū)塊鏈的礦工要把你的交易打包并放上區(qū)塊鏈,才能使交易完成,在這過程中會(huì)消耗區(qū)塊鏈的運(yùn)算資源,所以要支付礦工費(fèi)。
在以太坊網(wǎng)路上,是用ETH (以太幣) 來支付礦工費(fèi)。如果你要從交易所或錢包發(fā)送以太幣和ERC 20 代幣,或是和智能合約進(jìn)行互動(dòng),例如參加ICO 或是使用DApp 等,就必須用ETH 來支付礦工費(fèi)。
以上面的 MetaMask 截圖為例,每次當(dāng)你要傳送以太幣時(shí)都會(huì)跳出這個(gè)操作畫面,圖中有兩個(gè)欄位與礦工費(fèi)有關(guān),分別是「Gas Limit」和「Gas Price」。在每次的交易中,你都可以依照需求調(diào)整這兩個(gè)數(shù)值。
Gas Fee = Gas Limit x Gas Price
礦工費(fèi)總金額的計(jì)算方式是Gas Limit 乘上Gas Price。因此先把圖中的Gas Limit 和Gas Price 兩個(gè)數(shù)字相乘,再換算成以太幣(1 ETH = 10^9 GWEI): 21000 x 10 / 10^9 ,就可以得到礦工費(fèi)的總金額0.00021 ETH 。
Gas Limit 是你在這筆交易中所愿意支付Gas 單位的最大數(shù)量。完成一筆交易所需的Gas 單位數(shù)量,取決于交易的復(fù)雜程度。當(dāng)一筆交易越復(fù)雜,就必須要耗費(fèi)較多的運(yùn)算資源,因此需要花費(fèi)較多Gas。
要特別注意的是,當(dāng)設(shè)定的Gas 單位不夠多時(shí),將會(huì)導(dǎo)致交易失敗。21,000 是一般轉(zhuǎn)帳交易的Gas Limit 預(yù)設(shè)值,如果是要參與代幣銷售或是使用DApp,因?yàn)檫^程會(huì)涉及較為復(fù)雜的智能合約,因此就要設(shè)置更高的Gas Limit。
Gas Price 是每個(gè)單位Gas 的價(jià)格,以GWEI 表示。它會(huì)影響到你的交易被礦工打包放上區(qū)塊鏈的速度。
如果Gas Price 設(shè)的越高,就給礦工更大的誘因?qū)⒛愕慕灰状虬?;相反的,如果Gas Price 設(shè)的低就要等待比較長的時(shí)間。要是不急著完成一筆交易,你就可以選擇較低的Gas Price 來省錢。
對(duì)礦工費(fèi)有了基礎(chǔ)認(rèn)識(shí)后,接著就來看你不可不知的6 個(gè)重點(diǎn):
1.注意參加代幣銷售時(shí)設(shè)定的Gas Limit
參與代幣銷售時(shí),你應(yīng)該要把Gas Limit 設(shè)成銷售方所建議的數(shù)值。因?yàn)榇鷰配N售的智能合約比一般轉(zhuǎn)帳交易更為復(fù)雜,所以Gas Limit 也要設(shè)得更高。我就曾經(jīng)在參加ICO 時(shí),因?yàn)椴恢酪袵as Limit 從21,000 改為100,000,而碰到“out of gas” 錯(cuò)誤。
2.想節(jié)省礦工費(fèi),你應(yīng)該調(diào)低Gas Price 而不是Gas Limit
如先前所提到的,如果你調(diào)低Gas Limit 可能會(huì)無法滿足完成交易所需的Gas,導(dǎo)致交易失敗。因此要節(jié)省礦工費(fèi),請(qǐng)將Gas Price 調(diào)低,并耐心等候交易完成。
3.你可以拿回沒用完的Gas
不需要擔(dān)心把Gas Limit設(shè)定得太高,如果有Gas沒被用完,會(huì)在交易完成之后退還到你的帳戶中,你可以到 Etherscan 上查詢交易的細(xì)節(jié)。在下面的截圖中,我們可以看到Gas Limit的設(shè)定是100,000,但是實(shí)際上只用到35,826,所以剩余沒用完的Gas就會(huì)退還。
4.如果交易失敗,依然要付礦工費(fèi)
萬一不小心把Gas Limit 設(shè)得太低,導(dǎo)致交易失敗,礦工費(fèi)也不會(huì)退還給你,因?yàn)槟氵€是必須為區(qū)塊鏈已進(jìn)行的運(yùn)算支付手續(xù)費(fèi)。
5.確保有足夠的ETH 支付礦工費(fèi)
記得不論是要傳送ETH 或是ERC20 代幣,你都必須要用ETH 支付礦工費(fèi)。有時(shí)候大家會(huì)忘記錢包中也要有ETH 才能夠發(fā)送代幣。
6.實(shí)用小工具:ETH Gas Station , Etherscan
在 ETH Gas StaTIon 上,可以找到依據(jù)以太坊網(wǎng)路壅塞程度,所推薦設(shè)置的Gas Price,就看你想節(jié)省礦工費(fèi),還是想快點(diǎn)完成交易。在 Etherscan 上,可以查詢每個(gè)交易的詳細(xì)資訊,包括Gas Limit, Gas Price以及交易中實(shí)際用到的礦工費(fèi)。