時(shí)間:2021-11-18|瀏覽:534
通過(guò)錢包轉(zhuǎn)賬 ETH 或是 ERC-20 Token 當(dāng)時(shí),我們知道這個(gè)轉(zhuǎn)賬需要支付手續(xù)費(fèi)。此外,正如《趙結(jié)婚的好消息已經(jīng)上鏈,教你打造區(qū)塊鏈鉆戒一文所介紹的,我們也可以在轉(zhuǎn)賬的同時(shí)在區(qū)塊鏈刻字。
那么,轉(zhuǎn)賬的手續(xù)費(fèi)是怎么計(jì)算的呢?如果在轉(zhuǎn)賬的同時(shí)刻字的話,需要收取更高的手續(xù)費(fèi)嗎?今天,大白你談?wù)勔蕴W(wǎng) Gas 機(jī)制。
在以太網(wǎng)轉(zhuǎn)賬,雖然我們支付最終手續(xù)費(fèi) ETH但實(shí)際上在以太坊內(nèi)部并不直接消耗 ETH,而是消耗 Gas?!癎as這個(gè)詞的英語(yǔ)意思是(氣體)燃料,以太網(wǎng)的操作需要消耗 Gas就像汽車需要消耗燃料一樣。
然后,交易費(fèi)(ETH)怎么算?
在以太網(wǎng)轉(zhuǎn)賬中,手續(xù)費(fèi)的計(jì)算方法如下:
交易手續(xù)費(fèi)(ETH)= Gas的單價(jià) x 消耗的Gas數(shù)量
在大白的交易中,Gas 的單價(jià)(Gas Price)是 5Gwei,也就是 0.0000000005ETH(小數(shù)點(diǎn)后面8個(gè)0)。這里大白再給大家介紹一下 ETH 的單位,ETH 最小單位是 Wei但是到以太坊, Gas 經(jīng)常使用的時(shí)候 Gwei。ETH、Gwei、Wei 關(guān)系如下:
1 ETH = 10^9 Gwei(9個(gè)0)= 10^18 Wei(18個(gè)0)
知道了 Gas 單價(jià),我們來(lái)看看包含刻字的大白轉(zhuǎn)賬消耗 Gas 數(shù)量:24876。因此,根據(jù)上述公式,單價(jià)乘以數(shù)量,可以獲得大白費(fèi)用的手續(xù)費(fèi):
手續(xù)費(fèi) = 0.0000000005ETH x 24876 = 0.00012438ETH
汽車去加油站加油,燃料價(jià)格基本固定,但在以太網(wǎng),Gas 單價(jià)可以自己設(shè)定。但是需要注意的是,Gas 單價(jià)會(huì)影響這筆交易的包裝速度。也就是說(shuō),Gas 你給的單價(jià)越高,礦工為了自己的利益最大化,你的交易就越優(yōu)先。
下圖是 ethgasstation.info 在網(wǎng)站統(tǒng)計(jì)的實(shí)際操作中 Gas 單價(jià)和需要等待的交易包裝時(shí)間。在左邊的統(tǒng)計(jì)圖中,我們可以看到超過(guò) 70% 以太坊網(wǎng)絡(luò)轉(zhuǎn)賬 Gas 單價(jià)介于 4~20Gwei 之間,小于 1Gwei 或是大于 50Gwei 交易比例很小。在右邊的統(tǒng)計(jì)圖中,我們可以看到如果給的話 Gas 單價(jià)是 4Gwei包裝交易所需的平均等待時(shí)間是 0.6 如果是分鐘; 20Gwei平均等待時(shí)間是 0.2 分鐘。
大家常用的 imToken 錢包,在 Gas 在單價(jià)設(shè)置中,它提供 5~100Gwei錢包將最低單價(jià)設(shè)定為 5Gwei確保交易能夠在合理的時(shí)間內(nèi)包裝。當(dāng)然,如果你想插隊(duì),盡快被礦工包裝,你也可以自己提高。 Gas 的單價(jià)。
說(shuō)完了 Gas 單價(jià),我們繼續(xù)談消耗 Gas 數(shù)量。
在以太坊網(wǎng)絡(luò)中,每次轉(zhuǎn)賬,無(wú)論金額大小,都是消耗的 Gas 是固定的,為了 21000,如果添加備注(刻字),需要額外消耗 Gas?;氐酱蟀椎慕灰?,大白總共花費(fèi)了 Gas 數(shù)量是 包括24876 21000 固定消耗量和備注消耗量 Gas 數(shù)量 3876。備注需要消耗多少 Gas與輸入的內(nèi)容長(zhǎng)度有關(guān),內(nèi)容越多,需要消耗 Gas 數(shù)量也越多。
如果你仔細(xì)觀察大白的轉(zhuǎn)賬截圖,你會(huì)發(fā)現(xiàn)大白花了什么 Gas 數(shù)量 24876 后面有括號(hào),里面是 41.46%。這個(gè)百分比是什么意思?如果你仔細(xì)看截圖,你會(huì)發(fā)現(xiàn)上面還有一個(gè) Gas Limit,數(shù)值是 60000,而且 41.46% 正好是 24876
Gas Limit是指這個(gè)操作消耗的 Gas 數(shù)量上限,這個(gè)上限值可以自己設(shè)置。例如,大白設(shè)置是 60000,但在實(shí)際操作中沒(méi)有達(dá)到這個(gè)上限,只用了 41.46%。一般錢包默認(rèn)會(huì)幫你設(shè)置這個(gè)上限值。對(duì)于我們普通用戶來(lái)說(shuō),這個(gè)上限值在普通轉(zhuǎn)賬時(shí)不需要考慮。以太網(wǎng)設(shè)置這個(gè)上限值,以防萬(wàn)一遇到惡意智能合同,合同執(zhí)行會(huì)消耗無(wú)限燃料,導(dǎo)致交易者 ETH 余額全部消耗(惡意智能合同可能是程序 Bug比如合同執(zhí)行陷入無(wú)限循環(huán))。
Gas Limit 如果設(shè)置太低,例如設(shè)置 10000,任何轉(zhuǎn)賬都需要 Gas 數(shù)量至少 21000,遠(yuǎn)遠(yuǎn)超過(guò)你設(shè)置的 Gas Limit會(huì)導(dǎo)致轉(zhuǎn)賬失敗。也就是說(shuō),Gas Limit 會(huì)影響一筆交易的成功。