透過錢包轉帳 ETH 或是ERC一20 Token時,我們知道這個轉帳需要付手續費。那麼,轉帳的手續費是怎麼算的呢?
如果轉帳的同時還去“刻字”,是不是需要收取更高的手續費呢?今天,大白就來跟大家聊聊以太坊的 Gas 機制。
在以太坊網路中轉賬,雖然最後的手續費我們支付的是 ETH,但其實在以太坊內部並不直接消耗 ETH,而是消耗 Gas。 “Gas”這個字的英文意思是“(氣體)燃料”,以太坊網路中的操作需要消耗 Gas,就如同汽車行駛需要消耗燃料一樣。
那麼,交易的手續費(ETH)是如何計算的呢?我們先來看看大白在以太坊網路中的一個轉帳截圖:
在以太坊網路中轉賬,手續費的計算方式如下:
交易手續費(ETH)= Gas的單價x 消耗的Gas數量
在大白的這筆交易中,Gas 的單價(Gas Price)是5Gwei,也就是0.0000000005ETH(小數點後面8個0)。這裡大白再給大家介紹一下 ETH 的單位,ETH 的最小單位是 Wei,但是談到以太坊 Gas 的時候,經常用 Gwei。 ETH、Gwei、Wei 之間的關係如下:
1 ETH = 10^9 Gwei(9個0)= 10^18 Wei(18個0)
#知道了Gas 的單價,我們再看下大白這筆含「刻字」的轉帳消耗的Gas 數量:24876。所以,按照上面的公式,單價乘以數量,即可得到大白花費的手續費:
手續費= 0.0000000005ETH x 24876 = 0.00012438ETH
汽車去加油站添加燃料,燃料的價格基本上是固定不變的,但是在以太坊網路中,Gas 的單價是可以自己設定的。不過,需要注意的是,Gas 的單價會影響這筆交易被打包的速度。 也就是說,Gas 的單價你給的越高,礦工為了自身利益最大化,越會優先打包你的交易。
下圖是 網站統計的實際操作中 Gas 的單價和所需要等待的交易打包時間。
在左邊統計圖中,我們可以看到,超過70% 的以太坊網路轉帳給的Gas 單價介於4~20Gwei 之間,小於1Gwei 或是大於50Gwei 的交易佔比很少。
在右邊的統計圖中,我們可以看到,如果給的 Gas 單價是 4Gwei,打包交易需要的平均等待時間是 0.6 分鐘;如果是 20Gwei,平均等待時間是 0.2 分鐘。
#大家常用的imToken 錢包,在Gas 的單價設定裡,提供的是5 ~100Gwei,錢包把最低單價設定為5Gwei,保證了交易能在合理的時間內被打包,當然,如果想插隊,盡快被礦工打包,你也可以自己提高Gas 的單價。
說完了 Gas 的單價,我們再接著說消耗的 Gas 數量。
在以太坊網路中,每一筆轉賬,無論金額大小,消耗的 Gas 是固定的,為 21000,如果添加備註(「刻字」),則需要消耗額外的 Gas。
回到大白的那筆交易上,大白總共花費的 Gas 數量是 24876,其中包含了 21000 的固定消耗數量,以及備註消耗的 Gas 數量 3876。備註需要消耗多少數量的 Gas,和輸入的內容長度有關,內容越多,需要消耗的 Gas 數量也越多。
如果你仔細觀察大白的那張轉帳截圖,你會發現,大白花費的 Gas 數量 24876 後面有個括號,裡面是 41.46%。這個百分比是什麼意思呢?如果你再仔細看截圖,你會發現,上面還有一個 Gas Limit,數值是 60000,而且它的 41.46% 剛好是 24876。
Gas Limit,是指這筆操作消耗的 Gas 數量上限,這個上限值你可以自己設定。 例如,大白設定的是 60000,但實際操作中並沒有達到這個上限,只用了 41.46%。一般的錢包都會預設幫你設定這個上限值,對我們一般用戶而言,普通轉帳時這個上限值也不用去考慮。
以太坊網路設定這個上限值,是以防萬一,如果碰到惡意的智能合約,該合約執行將消耗無限的燃料,這樣會導致交易方的ETH 餘額全部消耗(惡意的智能合約有可能是程式Bug,如合約執行陷入一個死循環)。
Gas Limit 如果設定過低,例如設定為 10000,任何一筆轉帳所需的 Gas 數量至少 21000,遠遠超過你設定的 Gas Limit,就會導致轉帳失敗。也就是說,Gas Limit 會影響一筆交易是否能成功。
以上是以太坊轉帳手續費與到帳速度,巧妙設定Gas能省錢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!