一個故事告訴你,EIP-1559 解決了什麼問題?

作者|Micah Zoltu

一個使用者的故事

假如你是以太坊的新使用者。你剛剛安裝了Coinbase錢包並且提交了你的第一筆Uniswap交易。Coinbase錢包告訴你交易會在在幾分鐘內進行確認,需要你耐心地等待。然而幾分鐘過去了,卻沒有任何變化發生,這時候你一定認為是出現了錯誤。所以你關閉了所有程式並重新嘗試,但是這樣類似的問題又發生了,你的交易還是停留在等待狀態。

沮喪之餘,你認為一定是你使用的應用程式出了問題,所以你轉到另一個以太坊應用程式,嘗試傳送交易。不幸的是,同樣的問題再次發生了。然後你想到了一個很棒的主意,想透過給自己傳送一些以太坊來測試問題是否出在Coinbase錢包上,但可惜這種方式也會卡住。

最後你已經到了窮途末路的時候,你決定去尋求幫助。首先你嘗試聯絡Coinbase,但他們的支援響應時間相當長,所以你反而決定去你最初嘗試使用的應用的Discord伺服器。在描述你的問題並與工作人員分享你的以太坊地址後,他們向你解釋你有六個待處理的交易,在第一筆交易透過之前,後續的幾筆交易都不會提前透過。他們告訴你這是一個可以解決的問題,並詢問你使用的是什麼錢包。

當告訴工作人員你正在使用Coinbase錢包時,他們的回答是😢,並很不幸的告訴你Coinbase錢包沒有提供必要的工具來糾正這種情況。你唯一的選擇是等待並希望gas prices下降,或者換成使用其他更高階的錢包,如MetaMask。這是你第一次聽說 "gas prices",你問工作人員那是什麼,這導致了長達10分鐘的對話,但是最終你也沒有真正明白。

然後你去安裝MetaMask,它會詢問你的助記詞。工作人員告訴你把Coinbase錢包裡的助記詞放進去,但Coinbase錢包給了你非常明確的指示,永遠不要把你的助記詞給任何人!你的助記詞是什麼?你聯絡了你的信任網路,幾個小時後能夠驗證MetaMask是合法的,把你的助記詞放到MetaMask中是相當安全的,但你可能應該在這件事結束後建立一個新的錢包。

設定好MetaMask後,然後會告訴你給自己傳送0個以太坊,並進入高階gas設定(這個名詞你還是不太懂),設定為70。支援人員給你發了一個網站的連結,上面顯示了一些每15秒左右就會變化的數字,他們告訴你在提交交易之前,將MetaMask中的gas prices設定為網站上的第一個數字。

你認真地按照這些指示去做,你的交易就成功了! 然後,您檢視您的賬戶餘額,看看是否一切正常,您發現您比您預期的少了不少以太坊,而且您還注意到,您想做的事情都沒有實際發生。工作人員耐心地解釋說,在清除堵塞後,你的所有其他交易緊接著都透過了。他們告訴你,每一筆失敗的交易都花費了你損失了一些gas s(又是那個你不太理解的名詞!),這就是為什麼你的ETH餘額下降的原因。

你被告知你的賬戶現在已經正常工作,你可以再次嘗試你的交易,但顯然你應該觀察這個網站。無論你想做任何交易,你都應該將 "gas prices "先設定為與它所顯示的數字相匹配。

僅僅是一次性問題?

不幸的是,以上是使用者非常常見的情況,雖然很容易歸咎於Coinbase,但幾乎所有錢包的使用者都會出現同一類問題,包括MetaMask等高階錢包。這個問題在日益擁堵的時候最為常見(當錢包估算出錯誤的gas prices時),不過在不擁堵的時候也會出現類似的問題,原因是gas prices估計軟體中的漏洞。

一個圓滿的結局

現在想象一下,如果我們生活在一個不需要預測未來以太坊區塊空間需求的世界裡。使用者只需要設定自己願意支付的最高額度就可以獲得交易的收錄,而不用擔心支付過高的費用。比起讓使用者在等待交易時陷入無盡的絕望深淵,使用者只需要表明自己願意為納入交易支付的最大金額,他們可以相信自己永遠不會支付超過這個金額。這是一個不需要了解/預測gas prices的市場。

這就是EIP-1559所提供的。它使Coinbase Wallet可以可靠地確保其使用者的所有交易都被納入區塊鏈,而不需要他們的客戶支付過高的費用,也不需要為了準確估算費用而開發先進的交易和預測演算法。

它使得MetaMask可以讓使用者指定他們願意支付的最高費用,而不是讓他們預測未來。

它使使用者不再陷入需要專家才能擺脫的境地。

它讓使用者最終不會在過高的gas費上浪費大量的金錢。

它使得使用者介面不再會因為一個簡單的輸入錯誤就平白無故的花費大量金錢。

出了什麼問題?

在上面使用者的故事中,Coinbase試圖向使用者隱瞞gas prices,因為這是一個非常複雜的話題,絕大多數使用者都不理解。相反,他們會代替使用者估算gas prices,大多數情況下這種效果不錯。但是,當gas prices波動很大時,他們的演算法有時會發生錯誤(不是他們的錯),此時使用者的交易就會陷入僵局。一旦交易受阻,它將阻止所有未來的交易,直到交易透過為止,不管這些未來交易的gas prices是多少。這就是導致使用者透過試圖自己解決問題,相反卻將自己挖進了一個越來越深的洞。

不幸的是,一旦挖好了洞,就沒有什麼靈丹妙藥可以讓你脫身。你可以使用像MetaMask這樣的自定義nonces的高階工具(假設你的錢包支援助記詞)來清除這一筆交易,但這樣一來,你的其他所有交易(很可能包括重複的交易、過期的交易等)都會氾濫成災,無謂花費gas costs。相反,你可以按照相反的順序去取消所有的交易,但這對終端使用者來說是一個非常複雜的過程,需要一個專門的支援人員和你坐在一起10-15分鐘來指導你完成整個過程。即使在這種情況下,你仍然會花費gas costs,只是比你在取消所有其他交易之前清理堵塞交易要花費的少。

過去的業績不能保證未來的結果

這裡的問題根源在於,gas prices的估算真的很難。有很多工具試圖操控它,但終究是一個無法解決的問題,因為未來的gas prices是區塊空間需求的函式,並且每時每刻都在變化。有些事件期間,人們可以預測需求的增加,比如ICO啟動、新的熱門專案啟動、oracle價格feed更新等,但要跟蹤所有這些幾乎是不可能的。即使你跟蹤了,也不可能對任何特定事件帶來的需求量有強有力的保證。

最後,gas prices的估算者一般都是依靠歷史資料,並在此基礎上對未來的gas prices進行預測。這一方法在某些時候非常有效,但是在gas prices上漲或下跌的時候就行不通了。更糟糕的是,你總是要支付你預估時的全額gas price,即使你高估了油價! 這意味著大家都有強烈的願望,試圖低報油價,希望得到優惠。即使你不想低價,往往也希望至少不要多付一大筆錢,所以你會選擇一個能讓你快速列入區間的中間數。

解決的辦法是什麼呢?

EIP-1559。大多數人知道這個EIP是因為以太坊的供應減少,但在我看來,1559的真正價值在於以太坊可用性的提高。在以太坊包含EIP-1559的世界裡,這一類問題幾乎會完全消失。雖然讓自己陷入這樣的“窟窿”仍然有可能,但錢包幫助你從一開始就避免“窟窿”變得容易得多。

有了EIP-1559,Coinbase和其他錢包不需要以極高的準確度來猜測未來以太坊的需求,並在使用者估算錯誤的情況下導致使用者支付不必要的費用。而是可以加入一個能被大多數礦工接受的固定礦工賄賂(很可能是1納幣的量級),並將費用上限設定為當前基本費用加礦工賄賂的2倍。有了這些設定,使用者的交易不會被包含在未來6個區塊內的唯一方法是,如果未來6個區塊對區塊空間的需求比目前翻了一倍,那麼所有的區塊都會被包含!

EIP-1559的巨大勝利在這裡是微妙的,人們經常會忽略它,但它是至關重要的。如果你高估了區塊的基本費用,無論你高估了多少,你仍然只需要為你所包含的區塊支付基本費用! 這意味著,如果你將費用上限設定為1000,礦工賄賂為1,但你被包含在一個基礎費用為10的區塊中,你將只支付11的汽油費。這與今天的以太坊形成了相當大的反差,如果你設定的汽油價格為1000,你將支付1000美元/gas,即使11也會讓你被包含在區塊中!

另一個可用性難題是,平均而言,區塊將是半滿的,這意味著幾乎總是有空間用於支付基本費用的任何交易。因此在區塊空間上幾乎沒有競爭,理論上即使是待定池也應該在大多數時間內是空的。

這意味著那些希望從終端使用者那裡提取gas prices錢包(這是一個勇敢的目標)可以做到這一點,而不必成為猜測汽油價格的專家(即使是最熟練的以太坊專家有時也會失敗)。以太坊gas prices的這一相當小而微妙的變化,使得以太坊新使用者最常見的挫折點之一幾乎完全消失了。我們終於可以實現以太坊的夢想,在那裡終端使用者不需要擔心或考慮gas prices。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读