您現在的位置是:首頁 > 手機遊戲首頁手機遊戲

以太坊轉賬擁堵費用高,教你一招省錢的實用技巧

簡介綜上,以太坊擁堵的根本原因是其底層的架構有問題,如果有大量轉賬湧入,就會導致有大量轉賬處於等待狀態,網路就會擁堵,礦工費也會隨之上漲

如何快速獲得以太燃料

最近以太坊網路又雙叒叕出事情了,整個網路堵成狗了,造成礦工費用奇高,高到什麼地步呢?——有小夥伴為了快速轉賬,居然花了1個多以太的礦工費用!這年頭咋連轉個賬都這麼費勁呢?其實所謂ETH轉賬擁堵,具體表現為如果是預設的Gas設定,轉賬後一直在等待打包,遲遲不能到賬,而且還無法判斷能否到賬。結果轉個賬,一上午都在等待打包,等不及的你,還不能調高礦工費重新轉賬。

還記得去年12月份以太貓事件,當時就是因為這種基於以太坊的寵物遊戲,把以太坊搞垮了,最後不得不讓小貓的出生速度降下來,才緩解了整個網路的擁堵。現在的以太坊就像是條寬度有限的公路,平常開開車還行,一旦遇到早晚高峰,那可就慘了,堵在路上動都動不了。

以太坊轉賬擁堵費用高,教你一招省錢的實用技巧

以太坊網路從2013年年底釋出白皮書至今,已經發展近5年了,按理說技術應該很成熟,為啥還經常會堵呢?以太坊底層技術更新迭代了多次,而且現在智慧合約技術也非常穩定,基於以太坊的DAPP也在陸續開發,整個生態發展的也相當不錯,然而擁堵這個問題卻一直困擾著我們,這其實和以太坊網路的底層架構有關。

以太坊為何經常會擁堵

我們嘗試透過現象去挖掘背後的本質,來分析擁堵的問題。首先來回顧以太坊網路出現過哪些大規模的擁堵事件。上一次大規模的擁堵是在去年12月份,因為加密貓火熱,導致以太坊網路擁堵;最近這次是因為啥呢?想必大家都知道最近非常火熱的新興交易所Fcoin,它用“挖礦即交易”的玩法,強行上位,一度成為交易量最大的交易所,成為幣圈焦點。

Fcoin火起來之後,推出了自己獨特的上幣機制,不需要上幣費,但是需要各專案方社群成員去註冊Fcoin交易所,然後充值相關代幣,哪個代幣充值的賬戶多,就可以獲得上幣機會。就是因為這個舉措,導致以太坊網路的擁堵:由於Fcoin火爆,專案方都想上幣,那麼就要鼓動社群成員去存幣,所有人都這麼玩,以太坊因此就堵了。

以太坊擁堵的原因套用這句話再合適不過了:以太坊網路本不擁堵,用的人多了,便被堵死了。以太坊的共識演算法是工作量證明,這種演算法最大的弊端就是網路中的所有節點需要去逐步驗證每一筆交易。假設現在以太坊網路有100筆交易,那麼所有節點去驗證這100筆交易資訊;如果交易筆數越多,那麼就需要更多的時間去驗證這些交易。更關鍵得是,以太坊中的每個區塊能承載的轉賬資訊是有限的,當突然湧入這麼多轉賬的時候,很多轉賬都上不了這個區塊的車,那麼就只能繼續等下個區塊,甚至是下N個區塊。於是網路就擁堵了。

最後,礦工都是逐利的,誰給的手續費多,礦工就選擇讓誰上“區塊之車”,為啥你的轉賬總是失敗呢,是因為其他人給的礦工費高,礦工費給低了的你到當然“上不了車”。

綜上,以太坊擁堵的根本原因是其底層的架構有問題,如果有大量轉賬湧入,就會導致有大量轉賬處於等待狀態,網路就會擁堵,礦工費也會隨之上漲。

遇到擁堵了,我們該怎麼辦

那麼問題來了,道理我都懂,下次遇到擁堵該怎麼辦呢?現在咱們來科普幾個概念,以太坊網路的每步操作都需要消費Gas,這些Gas是用ETH來支付的。那麼Gas的價格應該怎麼算呢?Gas由兩個部分組成:Gas Limit(限制)* Gas Price(價格)。簡單地說,Gas Limit 相當於汽車需要加多少汽油, 而Gas Price相當於每升汽油的價格。

Gas Price的單位是Gwei,而且1ETH=1e9Gwei(10的9次方)。Gas Limit的含義是使用者願意為執行某個操作或確認交易支付的最大Gas量。以太坊為防止某些錯誤或者惡意的智慧合約消耗掉使用者大量手續費,所以對預設Gas上限做了限制。但是有些合約的確會消耗大量的Gas,所以需要手動設定上限。

舉例來說,下面這個轉賬中,設定的Gas Limit是90558,Gas Price是41Gwei,根據上述公式,我們就可以算出執行這個智慧合約,我們需要花費的Gas是:1e9gwei *90558* 41=0。003712878個ETH。

在以太坊網路遇到擁堵的時候,我們最關心的問題就是自己的轉賬什麼時候能夠打包成功,有時候看到轉賬一直處於待打包的狀態,心裡就會非常著急卻很無奈。那麼如何才能知道網路狀況呢?透過Ethereum Pending Transactions Queue這個網站,就可以看到當前整個網路中轉賬打包的情況。而且在網路擁堵的時候,除非確認了該筆轉賬交易失敗,否則不要重複傳送交易。

另一個大家最為關心的問題:需要花費多少Gas費用,才能保證自己的轉賬能及時到賬且不浪費礦工費呢?你的轉賬是否會被記賬礦工及時打包,取決於你支付的礦工費是否足夠高。用大白的話說就是:記賬礦工就是“區塊之車”的“檢票員”,誰出的票價高就讓誰上車先走。這樣的話當然礦工費給的越高,先走的機率越大,雖然著急想先走,但是還是擔心票價買高了,這時候我們就想知道前面一班車能上車的票價是多少,就能比較準確的預測當前市場上比較合理的優先上車票價了,我們透過 etherchain。org/tools/gasPriceOracle,就能預估出比較合理的礦工費用,而且還可以根據你想要的到賬時間,來設定礦工費。

除了設定礦工費,還有啥辦法呢

雖然我們可以透過調整礦工費,來完成轉賬,但這都是治標不治本的方法。如果網路真的擁堵了,必須提高礦工費,你的交易才可能被及時打包。關鍵問題在於,以太坊的這種擁堵方式,很難被用於主流場景。於是,從本質來看,我們需要解決的是以太坊的擴容問題。說到擴容,現在的解決方案主要有以下三種。

首先是分片技術,如果說以太坊堵是因為“路不夠寬”,那麼多修幾條路,同時給車走,是不是就能緩解擁堵問題?就像上文所說,以太坊上節點的驗證是線性的,而分片可以讓節點同時執行,因此提高了整體區塊鏈可以處理的每秒交易。有了分片,以太坊網路可以分成很多組節點。每組都是一個分片,並且每個分片都會處理組內的交易。這就可以讓分片同時地處理不同的交易。現在以太坊是想用分片來作為擴容方案,而最近非常火的專案Zilliqa也是分片界的高手。

其次是Plasma,分片可以認為是直接在鏈上進行擴容,那麼Plasma可以算是鏈下的擴容。交易並不是在以太坊主網上進行。Plasma可以讓很多區塊鏈子鏈從原來的區塊鏈上分離出來。因此,每個子鏈都能處理和維護它自己的轉賬記錄,當然這是基於根鏈的底層安全性。這種方案可以使所有子鏈分配區塊鏈上的所有轉賬資訊,從而使得速度和效率可以最最佳化。想象有一根大樹,樹幹上有很多分支,這些分支都可以獨立地進行運算,最終只需要將結果保留到主要的樹幹上就行,而不是將任何事情都丟給樹幹,如此當然可以大幅度地提高計算速度。

再就是雷電網路。雷電網路是另一種鏈下擴容的解決方案,它可以讓兩個節點之間開通一個“狀態通道”,這是使用者間的雙向通道。交易資訊會在兩個節點之間進行,同時會由各方簽名來保證交易的不可篡改性。雷電網路是專門為經常性支付使用的,對於日常支付而言,是非常有好處的,而且可以大幅度地降低每筆交易的燃料費用。

除了在以太坊上進行修改,當然也有另起爐灶的解決方法。最典型的例子,就是EOS。既然問題在於底層演算法,那我們就改了唄。於是EOS提出了DPOS演算法,透過將網路中的節點縮小到21個,來大幅提高每秒轉賬數量,現在EOS的TPS峰值可以達到1000以上,遠超以太坊每秒20筆的確認速度。除了EOS,現在很多公鏈專案會提出各種創新的共識演算法,來解決此問題,以太坊自己也提出了改進的權益證明演算法Casper,希望使用完全的權益證明,來徹底解決以太坊擁堵問題

Top