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