為什么以太坊Gas費(fèi)突然大幅下降?
4月25日,數(shù)據(jù)顯示以太坊Gas費(fèi)降50gwei左右,為2021年以來新低。此前由于gas費(fèi)不斷增高,導(dǎo)致鏈上手續(xù)費(fèi)一度逼近1500gwei。而最近以太坊的gas費(fèi)驟降,原因或與以太坊提升區(qū)塊 Gas Limit 有關(guān)。4 月 22 日,以太坊將區(qū)塊 Gas Limit 從約 1250 萬 Gwei 提升至 1500 萬 Gwei,提升幅度約為 20%。那么到底哪些因素會影響到以太坊的Gas費(fèi)用呢?本文或?qū)⒔o你解答。
注:本文首次發(fā)表于2020年9月23日,其中部分?jǐn)?shù)據(jù)均為當(dāng)時(shí)數(shù)據(jù), 閱讀時(shí)請注意截止今日發(fā)表時(shí)數(shù)據(jù)或有較大變動。
撰文:0x88,律動BlockBeats
在 Uniswap 給 20 多萬個(gè)用戶地址撒錢的時(shí)候,也許不少人在開心之余心里想的都是,「這 gas 費(fèi)也太高了?!?/p>
當(dāng)天是以太坊歷史上值得紀(jì)念的一天,gas 建議最高達(dá)到了 1000 GWEI,這是當(dāng)時(shí)歷史最高點(diǎn)。
在見證歷史、全民領(lǐng)空投的當(dāng)天上午,不少人都遇到了關(guān)于 gas 費(fèi)的問題,gas 費(fèi)貴已經(jīng)不是問題了,問題是 gas 費(fèi)交到錢包建議的最大值也不能在計(jì)劃時(shí)間內(nèi)成交。大家 Metamask 上顯示都是 pending,一圈一圈轉(zhuǎn)得讓人心煩。
為什么你使用了默認(rèn)的 gas 費(fèi)金額,卻依然不能即時(shí)交易?此文將詳細(xì)講解以太坊交易費(fèi)率機(jī)制以及在以太坊上發(fā)起交易會遇到的問題。
Gas 的邏輯
這個(gè)事要先從以太坊賬戶講起。
以太坊網(wǎng)絡(luò)中有兩類賬戶,外部賬戶(Externally Owned Account)以及合約賬戶 (Contract Account)。
外部賬戶是指用戶們所使用的賬戶,由私鑰持有者所控制。合約賬戶是指帶有應(yīng)用邏輯的智能合約,由合約代碼所控制(往往是項(xiàng)目方所有)。用戶們在使用 DeFi 應(yīng)用時(shí),就是在用自己的賬戶與 DeFi 項(xiàng)目的智能合約進(jìn)行交互。
各類賬戶之間可以隨意進(jìn)行交互,錢包間可以進(jìn)行轉(zhuǎn)賬,合約間也可以相互調(diào)用。每一次鏈上交互都需要消耗一定的計(jì)算量,計(jì)算量消耗的大小由計(jì)算難度所決定,而 Gas 就是計(jì)算量的計(jì)量單位。例如加法運(yùn)算較簡單,需要消耗 3 個(gè) Gas,除法運(yùn)算相對復(fù)雜,需要 5 個(gè) Gas。
每一單位的 Gas 都有其對應(yīng)的價(jià)格,也就是 Gas 價(jià)格 (Gas Price),而 Gas 價(jià)格以 Wei 為單位。用戶需要購買 ETH 來支付 Gas 費(fèi)用。1 ETH=1e18 Wei,而我們通??吹降膯挝?GWei 為 1e9Wei。通常,錢包軟件會通過歷史 Gas Price 對用戶將要發(fā)起的這筆交易的費(fèi)用進(jìn)行預(yù)估。
為了避免全節(jié)點(diǎn)趨于集中,追求架構(gòu)去中心化的區(qū)塊鏈會嚴(yán)格限制每單個(gè)區(qū)塊的容量。例如比特幣的 Block Size Limit 以及以太坊的 Block Gas Limit。在律動 BlockBeats 撰文時(shí),以太坊每單個(gè)區(qū)塊的 Block Gas Limit 約為 12,000,000 個(gè) Gas,這也就是每一區(qū)塊總計(jì)算量的上限。平均每 15 秒出一區(qū)塊。當(dāng)交易需求超過區(qū)塊容量時(shí),用戶為了將自己的交易盡快被上鏈確認(rèn),就需要競爭每一區(qū)塊內(nèi)的資源。此時(shí)用戶會對 Gas 進(jìn)行競價(jià),礦工會優(yōu)先將 Gas Price 高的交易納入?yún)^(qū)塊。
通常用戶在進(jìn)行轉(zhuǎn)賬時(shí)還會看到錢包會提高可以調(diào)節(jié) Gas Limit 的選項(xiàng)。與 Block Gas Limit 不同,Gas Limit 是指對于一筆交易,用戶所能接受的 Gas 使用量上限。由于有時(shí)合約內(nèi)可能存在漏洞,一筆交易會不停死循環(huán)地進(jìn)行計(jì)算。如果沒有 Gas Limit,這筆交易會消耗盡用戶錢包內(nèi)所有的 ETH。而礦工通常所收取的費(fèi)用是按實(shí)際執(zhí)行該交易時(shí)消耗的計(jì)算量 (Gas Used by Transaction) 進(jìn)行結(jié)算的,而 Gas Limit 內(nèi)剩余的 ETH 就會回到用戶賬戶中。
所以我們可以得出,所消耗的 ETH 數(shù)量 (Ether Cost)= 交易費(fèi)用 (Gas Fee/Transaction Fee) = 每筆交易所消耗的 Gas 數(shù)量 (Gas Used By Transaction) * Gas 價(jià)格 (Gas Price)。
了解了以太坊的手續(xù)費(fèi)機(jī)制以及賬戶類型,我們來看看用戶在交易時(shí)時(shí)常會碰到的問題。
待確認(rèn)交易 (Pending)/加速交易?
每當(dāng)用戶發(fā)起一筆交易時(shí),交易會被放入一個(gè)交易池 (Mempool) 中。如上文提到,礦工會優(yōu)先打包池子中 Gas Price 最高的交易(礦工的趨利性)。所以用戶設(shè)定的 Gas Price 決定了交易被打包執(zhí)行的速度。在網(wǎng)絡(luò)擁擠的時(shí)候,由于 Gas Price 飆升,用戶的交易可能長時(shí)間處于待確認(rèn)狀態(tài)。為了盡快將待定交易發(fā)出,用戶可以選擇支付更多的 Gas Price 來加速交易(律動注:理解為給礦工更多的酬勞以達(dá)到一個(gè)插隊(duì)的目的)。
加速交易又是怎么操作的呢?為了更加詳細(xì)地理解加速交易的邏輯,我們需要明白另一個(gè)參數(shù):Nonce。每一個(gè)賬戶發(fā)出的交易都會有一個(gè)按順序排列的交易編號--Nonce,從 0 開始,每次發(fā)起一筆轉(zhuǎn)賬,該賬戶的 Nonce 值會增加 1。
當(dāng)用戶想要加速交易時(shí),在以太坊錢包中,用戶可以選擇加速交易選項(xiàng),這時(shí)會被要求支付更高的 Gas 費(fèi)用,用戶同意之后相當(dāng)于發(fā)起了一筆新的交易,而新的交易與待確認(rèn)交易的 Nonce 值相同。
由于以太坊網(wǎng)絡(luò)規(guī)定,Nonce 值是連續(xù)不可跳躍的,且同一個(gè)地址每筆交易的 Nonce 值不可重復(fù),所以礦工會打包新生成的交易,在新交易被打包確認(rèn)之后,之前較低 Gas Price 的交易會廢棄掉。
若用戶不想加速交易,只要此交易還在交易池中未被打包,用戶可以隨時(shí)選擇取消交易。取消交易的邏輯與加速交易相同,用戶發(fā)起一筆 Gas Price 更高,但與待確認(rèn)交易 Nonce 相同的交易,但交易金額變?yōu)?0,所以本質(zhì)上,取消交易的成本與加速交易的成本一樣需要成本。
需要注意的是,在待定交易確認(rèn)完成之前,后面的交易都需要排隊(duì)等候,所以用戶不要由于等候時(shí)間過長重復(fù)發(fā)起多筆交易。
交易失敗 (Fail)
律動 BlockBeats 發(fā)現(xiàn),目前最常見的交易失敗原因是交易 Gas 已用盡 (Out of Gas)。也就是說,這筆交易的計(jì)算量超過了用戶所設(shè)定的 Gas Limit。一般在這種情況下,交易狀態(tài)將會顯示為失敗,并提示 Gas 已用盡,并且所支付的 Gas 不會被退還。
有些用戶可能會認(rèn)為這并不公平,但本質(zhì)上礦工已經(jīng)在做功計(jì)算,只是算到一半 Gas 不夠了,所以礦工只能放棄繼續(xù)作業(yè),但之前的工作需要被支付「工資」,因此之前交的 Gas 費(fèi)不退大概也可以理解了。遇到這種情況,用戶只能重新再發(fā)起一次交易,并將此交易的 Gas Limit 上調(diào)。
另一種交易失敗的情況是,當(dāng)用戶向智能合約發(fā)起交易轉(zhuǎn)賬,但某些錯(cuò)誤導(dǎo)致無法執(zhí)行合約時(shí),交易會返回 Bad Instruction。
比如,當(dāng)用戶參與類似于眾籌活動時(shí),可能會發(fā)生下面這些情況:
額度已滿;
或用戶未被列入白名單;
或用戶超額認(rèn)購代幣等情況。
此時(shí),用戶所設(shè)置的 Gas Limit 將會被全部用盡,最終導(dǎo)致交易失敗。
不過以太坊拜占庭硬分叉后,增添了新的操作符 Reverted (EIP-140)。當(dāng)合約中出現(xiàn)錯(cuò)誤導(dǎo)致交易失敗時(shí),交易將不會耗盡 Gas Limit 所設(shè)定的所有 Gas,合約將停止執(zhí)行并退回剩余 Gas 費(fèi)用,同時(shí)告知用戶錯(cuò)誤原因。
當(dāng)然,如果用戶錢包中 ETH 的數(shù)量不足以支付 Gas 費(fèi)用時(shí),交易也會被判定為失敗。
在沒有熱點(diǎn)的時(shí)候,以太坊網(wǎng)絡(luò)一片祥和,所有的轉(zhuǎn)賬成本,包括時(shí)間和金額都還可控,但當(dāng)風(fēng)口到來,大家在網(wǎng)絡(luò)中就會遇到各種問題,gas 費(fèi)的邏輯是新人使用錢包時(shí)最大障礙。
基本上,在 gas 費(fèi)會遇到的所有問題,這篇文章都覆蓋到了,鏈上交易并不復(fù)雜,說簡單點(diǎn),一切操作有問題,加錢就可以搞定。
這場運(yùn)動目前看來,以太坊上流動性挖礦的熱潮暫時(shí)告一段落,這場運(yùn)動除了創(chuàng)造出一片泡沫之外,也讓更多用戶開始習(xí)慣錢包的使用,錢包終于成了一個(gè)高頻使用工具。
而鏈上交易發(fā)生的問題其實(shí)也在為錢包的優(yōu)化提供空間,為新人提供「一鍵加速」、「一鍵取消」這樣的服務(wù)或許將可以在越來越多的錢包中看到。
以上就是為什么以太坊Gas費(fèi)突然大幅下降?的詳細(xì)內(nèi)容,更多關(guān)于以太坊Gas費(fèi)下降的資料請關(guān)注腳本之家其它相關(guān)文章!
你可能感興趣的文章
-
2021最具潛力百倍數(shù)字貨幣DCR幣種前十匯總
這篇文章主要介紹了2021最具潛力百倍數(shù)字貨幣DCR幣種前十匯總,對于投資者來說,找到具有潛力的百倍數(shù)字貨幣就非常重要了,那么,2021最具潛力百倍數(shù)字貨幣前十有哪些呢?…
2021-04-25 -
哪些數(shù)字貨幣可以挖礦?支持挖礦幣種推薦
這篇文章主要介紹了哪些數(shù)字貨幣可以挖礦?支持挖礦幣種推薦,在幣圈數(shù)字貨幣有很多,這些數(shù)字貨幣有著自己的特色,很多投資者認(rèn)為數(shù)字貨幣只能通過挖礦所得,其實(shí)并不是,…
2021-04-21 -
大算力ASIC礦機(jī)芯動A11量產(chǎn)后以太坊會改變其算法嗎?
這篇文章主要介紹了大算力ASIC礦機(jī)芯動A11量產(chǎn)后以太坊會改變其算法嗎?目前以太坊大算力礦機(jī)的上線并不會改變ETH的算法,但有些品牌礦機(jī)能否像宣傳的那樣真正達(dá)到高算力就…
2021-04-20 -
使用預(yù)言機(jī)將數(shù)據(jù)和api變現(xiàn)的方法
這篇文章主要介紹了使用預(yù)言機(jī)將數(shù)據(jù)和api變現(xiàn)的方法,預(yù)言機(jī)可以幫助數(shù)據(jù)提供商在區(qū)塊鏈環(huán)境中將現(xiàn)有基礎(chǔ)架構(gòu)變現(xiàn)。但是很多投資者不知道如何變現(xiàn),下面跟隨小編一起來參…
2021-04-19 -
RTX3060顯卡不能挖以太坊,還能挖哪些幣?
這篇文章主要介紹了RTX3060顯卡不能挖以太坊,還能挖哪些幣?英偉達(dá)新出的RTX3060真的限制了以太坊挖礦速率嗎?英偉達(dá)RTX3060在BIOS層面對以太坊挖礦進(jìn)行了限制。但還能挖RVN…
2021-04-15 -
以太坊/ETH永續(xù)合約一般做多少倍杠桿?
這篇文章主要介紹了以太坊/ETH永續(xù)合約一般做多少倍杠桿?說到杠桿有哪些,投資者聽的最多的應(yīng)該就是5倍和100倍,其實(shí)除了這兩種之外,還有很多其他倍數(shù),那么,以太坊/ETH…
2021-04-09 -
購買以太坊挖礦機(jī)劃算嗎?以太坊礦機(jī)挖礦真實(shí)收益
這篇文章主要介紹了購買以太坊挖礦機(jī)劃算嗎?以太坊礦機(jī)挖礦真實(shí)收益,以太坊挖礦是指礦機(jī)計(jì)算出來的數(shù)字代碼就是以太坊,購買以太坊挖礦機(jī)劃算嗎?下面小編就來給大家說說…
2021-04-08 -
一文教大家在家運(yùn)行以太坊2.0節(jié)點(diǎn)
這篇文章主要介紹了一文教大家在家運(yùn)行以太坊2.0節(jié)點(diǎn),以太坊 2.0 的發(fā)布提供了多個(gè)客戶端,為驗(yàn)證節(jié)點(diǎn)提供了使用不同客戶端運(yùn)行其節(jié)點(diǎn)的選項(xiàng)。到目前為止,共有 4 個(gè)團(tuán)隊(duì)…
2021-04-08 -
metamask錢包使用教程 以太坊Metamask錢包下載安裝初始化教程
這篇文章主要介紹了metamask錢包使用教程 以太坊Metamask錢包下載安裝初始化教程,MetaMask是一款瀏覽器插件錢包,不需下載安裝客戶端,只需添加至瀏覽器擴(kuò)展程序即可使用…
2024-11-22 -
EOS和比特幣、以太坊有什么區(qū)別?EOS的共識機(jī)制與區(qū)塊生成
這篇文章主要介紹了EOS和比特幣、以太坊有什么區(qū)別?EOS的共識機(jī)制與區(qū)塊生成,通過EOS的體系架構(gòu)對比特幣、以太坊、EOS的對比,了解為什么EOS有超級節(jié)點(diǎn)競選以及EOS的共識…
2021-04-02