Eth1.x 檔案:EIP-1559 和以太坊的改進之路

買賣虛擬貨幣

撰文:Griffin Ichiba Hotchkiss

翻譯:Unitimes_David

最近我一直在思考世界末日後的荒原,特別是電影《瘋狂的麥克斯:狂暴之路》中的這一幕,主角們剛剛逃脫了第一波追捕,領先於潛在的追捕者。他們需要繼續前進,但仍然需要維護電影的核心部分:一輛將他們送往安全地帶的巨大“戰車”卡車。所以女主角 Charlize Theron 需要在卡車行駛過程中爬到駕駛室下面進行一些維修:

在一輛還在行駛中的複雜大卡車上進行維修,這個想法非常適合這部電影的高強度劇情。當我看到這種情況時,我意識到對於 EIP (以太坊改進提案) 的過程和核心開發者的工作來說,這是一個很恰當的比喻。

對以太坊協議的更改是實時發生的,許多謹慎的、複雜的工程設計會進入到精心打造的升級中,以便所有事情、所有人 (如果可能的話) 都能在升級過程中繼續前行。在區塊鏈荒地的道路上仍有顛簸,但總的來說,以太坊仍然遙遙領先於其他劫掠車輛 (技術債務)——只要卡車保持前進步伐,不停止向地平線移動。新的提案在短期內可能會對現狀造成一些破壞,但總體而言,它們通常是對協議有價值的改進。

我今天要討論的升級屬於“Eth2.x”的範疇,但不是無狀態以太坊工作的一部分,而是一個全新的 Gas 費用市場/區塊大小機制。相關的提案已經成為社羣和開發人員反饋改進以太坊的一個非常有趣的案例研究。透過觀察 EIP 如何隨著時間的推移吸引更多的開發者討論併產生變化,我認為我們可以從中學到很多對於以太坊發展有著建設性意義的討論,並有希望獲得一些明確的見解 (或者至少是一些不太明確的格言警句) 來幫助指導對無狀態以太坊 (stateless Ethereum) 計劃之外的重大變更的討論。

通常在本系文章列中,我試圖非常有條理地“深入討論”,但在本文中,我想把更多的重點放在圍繞這些提案的討論的內容和特點上,而不是其中包含的技術細節。在我們對相關討論的進展以及我們當前的情況進行論述之前,讓我們非常簡單地看看EIP-1559和 “Escalator”這兩個提案。

EIP-1559

我們先來看一下最初的EIP-1559[1]提案的動機,這是個很好的起點。此提案最初的動機相當簡單:

“當前以太坊的“最高價拍賣”費用模式效率低下,對使用者來說成本高昂。此 EIP 提出了一個取代這種機制的方法,即根據網路需求來對一個基本網路費用進行調整,從而建立更好的費用價格效率,並降低用於避免支付不必要的高額費用所需的客戶端軟體的複雜性。”

在當前的以太坊系統中,新提交的交易必須等待被某個礦工打包進入下一個區塊,但這些交易可以透過增加 gasPrice 引數使其高於網路平均水平,以此來激勵礦工打包自己的交易。如果礦工是理性的,那麼他們將總是會希望將那些包含最大交易費的交易打包進入新區塊中,因此預計被打包進入下一個區塊中的交易總是那些有著最高 Gas 價格的交易。

這種最高價拍賣模式的問題在於,在交易需求旺盛的時期,情況可能會很快失控。當區塊接近達到滿塊時,使交易被打包進入下個區塊的成本(交易費)可能會急劇上升,因為使用者會試圖以比其他人更高的價格來讓自己的交易被打包。

儘管當前礦工們有一定的能力(備註:比如增加區塊 gas 上限)來增加在單個區塊中打包的交易筆數,但這一上限無法很快得到改變,且實際上礦工們更樂於使用較小的滿塊,而不是將區塊 gas 上限越推越高(對於礦工來說,由於存在叔塊率,更大的區塊帶來更高的風險)。尤其是如果你的錢包使用了 gas 定價演算法,從而使你的交易在一個特定的時間框架內被打包,那麼你可能最終會支付一筆相當高昂的交易費[2]來讓你的交易被打包進入下一個 (幾乎) 滿了的區塊。

EIP-1559 引入了 gas 費用的 “base fee”(基本費)概念,這筆費用被設定為會動態地調整,從而使單個區塊的 gas 總使用量接近當前的 1,000 萬 gas 的上限。這筆“基本費”不會流向礦工的口袋,而是會被銷燬。為了激勵礦工打包交易,使用者還將設定一個“Tip”(小費)引數,並設定一個他們為了讓自己的交易被打包進入區塊而願意支付的最大金額,礦工將獲得這筆“Tip”(小費)。

由於“基本費”不會根據網路需求的瞬息變化而劇烈波動,因此使用者在一定程度上遠離了“最高價拍賣”模式帶來的低效率問題 (“Tip”費用仍然是最高價模式 ),因為“基本費”會被銷燬,而不是給礦工,這樣礦工就不會有動機去嘗試操控交易費了。重要的是,此機制也試圖解決錢包開發者在自動預估網路交易費方面遇到的一個重大問題,使交易費預估變得更加可預測。

更多有關 EIP-1559 的資訊,我推薦你閱讀 Vitalik 釋出的EIP-1559 FAQ[3],如果你想要更深入地瞭解,可以閱讀 Barnabe Monnot 釋出的這個Jupyter notebook[4]。

一個新的挑戰性提案出現了:Escalator

當前以太坊交易費的“最高價拍賣”體系的低效性問題是沒有爭議的事實,且明確指出這一點是很重要的:當前這個交易費機制可以變得更好,沒有人會對此提出異議,而且找到另一種替代最高價拍賣模式的機制無疑將有利於整個以太坊網路—— 最終這將有利於開發者和終端使用者。我們都能夠而且應該在這一點上達成一致。

然而,EIP-1559 中提議的新機制與當前的機制執行方式不同,對其進行更改將導致一些問題,尤其是對於任何為使用者搭建和提交以太坊交易的軟體來說更是如此。錢包尤其需要做出重大改變,以適應這一新機制。即便從長遠來看,事情最終變得對所有人都更好,但短期來看,EIP-1559 提案給那些需要適應此變更並防止軟體崩潰的開發者們帶來了巨大的負擔。

EIP-1559 在其最初的湯池中漂浮一段時間之後,以太坊社羣開始權衡,包括受此提案影響最大的錢包開發者。錢包開發者們沒有抵制此提案,而是選擇了一條有趣的討論路線:他們重新考慮了此提案的核心動機 (即改善以太坊交易的使用者體驗),並將此提案置於該情境中,本質在他們表示“如果無論如何我們都將要做所有這些工作,那我們從一開始就應該瞭解這對於使用者來說將是什麼樣子,且我們應該將之用於幫助指導此提案中提議的內容。”

這簡要地解釋了 Dan Finlay 反對 EIP-1559 而提出的提案:The Escalator Algorithm[5]。此提案與 EIP-1559 的機制存在許多類似之處,且動機和目標也幾乎相同。但 Escalator 機制是作為另一種改進提案而提出的,推動社羣對單獨提出的這兩種機制進行更細緻的討論。

“為了推動社羣對 gas 費用市場進行更加富有成效和更具體地討論,我認為提出一個明顯優於現狀的替代性方案是很重要的,這樣 EIP-1559 提案中聲稱的任何特性都可以與一個可行的替代性改進相比較。”

這個 Escalator 機制與當前的單一價格拍賣模式類似,但有著一些重要的改變:

使用者不提交有著固定競價的交易,而是提交“逐步上升的”出價,並明確他們願意使交易被打包而支付的最大金額。所有的出價都會被放入一個“escalators” 佇列中,這個佇列將以同樣的速率逐步地、可預測性地增加佇列中的所有出價。礦工在檢視所有 escalators 的佇列時,會選擇那些有著最高出價的交易,不管這些交易在哪個 escalator 之上。當某筆交易被打包進入某個區塊中時,該使用者將會支付該列隊中僅次於最高出價的“第二高價格”,而不是支付使用者當前的出價。

Escalator 機制的主要優點是它能夠實現高效的價格發現。,同時透過在排隊時收取第二高價格來防止使用者支付過高費用。它也有一些與 EIP-1559 相同的優勢,使使用者更容易選擇正確的費用,即使在網路擁堵的時候。值得注意的是,Escalator 機制本身不會改變決定區塊大小的機制。

Escalator Algorithm 提案本身就很有意思,我強烈推薦閱讀此提案的“user strategy(使用者策略)” [6]部分,以便對三種不同的交易處理模型有一個高層次的比較。如果你對此感興趣,這篇介紹 Escalator Algorithm 的論文[7]也很值得深入研究,但我有些跑題了...

在一次 EIP-1559 實施者的電話會議上,Dan Finlay 給出了一些模型,展示了錢包中各種引數向使用者呈現的方式,強調了這些如何可以根據所需的使用者干預級別來隱藏或者顯示這些引數。見下圖:

該設計旨在作為社羣討論的參考,並幫助我們從使用者的角度來考量 EIP-1559 和 Escalator Algorithm 這兩個提案。

透過引入一個合理的替代方案並重新定義開發者的批評來優先考慮使用者的挑戰,EIP-1559 / Escalator 的討論已經非常巧妙地為改善以太坊費用市場這一最終目標創造了新的探索空間。這方面還遠未為下一場硬分叉升級做好準備,但它像《瘋狂的麥克斯》中的大卡車,仍在前進。

以太坊的未來

我認為EIP-1559 / Escalator 是一個值得以太坊社羣關注和學習的重要問題,特別是因為這與無狀態以太坊的另一個更遙遠 (且更引人注目) 的改進,即Oil/Karma EVM semantic changes[8],具有許多相同的特徵。就像在費用市場一樣,其中一些提議的修改將對開發者和使用者產生重大的二階影響。同樣在 EIP-1559 的例子中,需要在使用者體驗方面有著明確的支援,進而有機會與理解使用者體驗的開發者協調,以幫助以太坊改進提案保持勢頭,最終成功升級。

改進以太坊 (Eth2.x) 和其他公鏈是一個艱鉅的旅程。正確的討論路線應該是一條保持那些有意義的改進提案仍然在地平線上的道路,而且確保最受影響的開發人員和使用者的聲音被聽取,並整合他們的關注點。因為最終我們都要開著同一輛大卡車前往瓦爾哈拉殿堂的大門...呃,也就是 Serenity (以太坊2.0)。走在以太坊狀態膨脹問題[9]的前面,意味著我們要不斷有建設性地提出建議、批評和修正變化,同時不喪失動力,我們的生存依賴於此!

參考連結:

[1]https://eips.ethereum.org/EIPS/eip-1559

[2]https://etherscan.io/txs/label/high-transaction-fee

[3]https://notes.ethereum.org/Wjr1SnW-QaST7phX9C5wkg?view

[4]https://github.com/ethereum/rig/blob/9de2ecbba130fba13011eca2b229979b0adcba52/eip1559/eip1559.ipynb

[5]https://github.com/danfinlay/EIPs/blob/Escalator/EIPS/eip-x.md

[6]https://github.com/danfinlay/EIPs/blob/Escalator/EIPS/eip-x.md#user-strategies-under-various-conditions-and-algorithms

[7]https://agoric.com/papers/incentive-engineering-for-computational-resource-management/full-text/

[8]https://ethresear.ch/t/meta-transactions-oil-and-karma-megathread/7472

[9]https://blog.ethereum.org/2019/12/10/eth2x-files-fast-sync/

免責聲明:

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

推荐阅读

;