區(qū)塊鏈中的Gas是什么意思
在發(fā)起ETH轉(zhuǎn)賬時(shí),你會(huì)看到,Gas Price 和 Gas Limit,在區(qū)塊鏈瀏覽器上還會(huì)找到Gas Used 。這些有關(guān)Gas的術(shù)語都是什么意思呢?今天我們來將他們逐一擊破!
1.Gas
在以太坊中,交易、執(zhí)行智能合約,或是支付數(shù)據(jù)儲(chǔ)存費(fèi)用,都需要消耗 Gas(燃料)。
Gas 是存在于以太坊虛擬機(jī)內(nèi)部,作為計(jì)算工作量的計(jì)數(shù)。它一方面作為對礦工打包區(qū)塊的獎(jiǎng)勵(lì),另一方面,為惡意交易抬高門檻,維護(hù)以太坊網(wǎng)絡(luò)正常運(yùn)作。 Gas 是以太坊中的燃料,它保證了以太坊生態(tài)的運(yùn)作。正如汽油對于汽車的作用, Gas 不可或缺。
Gas Price:是用戶愿意為每個(gè) Gas 支付的價(jià)格,一般單位為 Gwei 。1 ETH = 1,000,000,000 Gwei
Gas Limit:是用戶愿意為執(zhí)行某個(gè)操作或確認(rèn)交易支付的最大 Gas 量。
Gas Used:是執(zhí)行操作消耗的 Gas 總量
老樣子,我們舉個(gè)例子,這次以同樣需要 Gas 的汽車為例。
小星駕車從 S 地到 P 地需要消耗 30L 汽油,從 P 地到 A 地需要 40L 汽油,從 A 地到 R 地需要 50L 汽油?;鸹瘃{車前往四地需要消耗 120L 汽油。
同樣的,以太坊中每一步運(yùn)算也都需要消耗 Gas 。不同的是汽車的油箱是汽車廠商設(shè)置的,油價(jià)也不是車主制定,而 Gas Price 和 Gas Limit 都是交易發(fā)送方自己設(shè)定的。
2. Gas Limit 設(shè)置過低
如果小星的汽車油箱容量為 100L ,那么從 A 地前往 R 地的途中,小星就會(huì)面臨油耗用盡的困擾,加油的費(fèi)用也不退還。
同樣,如果 Gas Limit 設(shè)置過低,無法保證計(jì)算完整運(yùn)行,系統(tǒng)將會(huì)提示“ out of gas ”,這筆交易依然被打包到區(qū)塊中,交易金額被退回,交易費(fèi)用作為獎(jiǎng)勵(lì)發(fā)放給打包這個(gè)區(qū)塊的礦工。
3. Gas Limit 設(shè)置過高
既然 Gas Limit 設(shè)置過低會(huì)導(dǎo)致交易失敗,那將 Gas Limit 無限調(diào)高,豈不是沒有這個(gè)困擾?
正如交易有 Gas Limit ,區(qū)塊也有 Gas Limit 。每個(gè)區(qū)塊在打包的時(shí)候都會(huì)確定當(dāng)前區(qū)塊的 Gas Limit 總量,以此來確定單個(gè)區(qū)塊所能打包的交易數(shù)量,所以礦工在打包每筆交易的時(shí)候都會(huì)判斷當(dāng)前的 Gas 量夠不夠打包當(dāng)前交易。
例如現(xiàn)在有 3 筆交易, A 交易 Gas Limit 為 10 , B 交易為 20 , C 交易為 30 ,如果區(qū)塊 Gas Limit 為 30 ,那么 A 交易和 B 交易將被打包。由于礦工有權(quán)力選擇哪些交易被打包,因此另一名礦工選擇將 C 交易打包進(jìn)這個(gè)區(qū)塊。但是如果將 ABC 交易同時(shí)打包, Gas Limit 達(dá)到 60 ,超過區(qū)塊 Gas Limit ,這個(gè)區(qū)塊會(huì)被網(wǎng)絡(luò)拒絕。
4. Gas Price 的高低
礦工總是希望獲得更多的挖礦獎(jiǎng)勵(lì),在打包交易的同時(shí),交易費(fèi)用越高,越容易被打包。
交易費(fèi)用 = GasPrice * GasUsed
因此,Gas Price 越高,礦工將會(huì)優(yōu)先打包,交易會(huì)被更快確定;如果 Gas Price 設(shè)置過低,礦工的報(bào)酬降低,交易的確認(rèn)時(shí)間將會(huì)延長。
這些復(fù)雜的術(shù)語小編終于理清楚了,你呢?