Eth 1.x: EIP 1559與以太坊改良之路

買賣虛擬貨幣

最近我的腦中總是浮現世界末日之後的荒原。就像電影《瘋狂的麥克斯:狂暴之路》中的一個場景。主角們剛剛逃脫了第一波追捕,並領先於可能的追捕者。他們需要繼續前進,但也需要對電影中的關鍵部分進行維護:一輛能夠幫助他們逃出生天的巨型“戰車”。因此,主角Charlize Theron在途中爬到車底進行維修:

在行進過程中對一輛巨大的、複雜的卡車進行維修,太符合這部電影驚心動魄的劇情設定了。當我看到這個場景時,發覺正好可以用來比喻EIP修訂過程與核心開發者工作之間的關係。

針對以太坊協議的更改是實時進行的,許多謹慎細緻的工程實現會被納入,以便所有事情、所有人 (如果可能的話) 都能在升級過程中繼續前行。在區塊鏈荒地的道路上仍有顛簸,但總的來說,以太坊仍然遙遙領先於其他劫掠車輛 (技術債務)——只要卡車保持前進步伐,不停止向地平線移動。

新的提案在短期內可能會對現狀造成一些破壞,但總體而言,它們通常是對協議有價值的改進。

本文要討論的升級屬於“Eth2.x”的範疇,但卻並不是無狀態以太坊的一部分工作,而是一個全新的Gas費用市場/區塊大小機制。

EIP1559已經成為社羣與開發者針對以太坊改良反饋的一個頗具趣味的案例研究。透過這個EIP的歷史發展程序與關注度的提升,我認為我們可以從中窺探到許多針對以太坊發展的建設性討論,並且希望獲得一些明確的見解,能夠指引無狀態以太坊框架之外的重要發展。

之前在同系列文章中,我試圖做到有條有理地抽絲剝繭,但在本文中,我不會深入討論本EIP的技術細節,而是更多地關注提案內容本身,及其引發的討論。在此之前,我們先來簡單聊聊 EIP-1559 和‘Escalator’這兩個提案的內容,圍繞著這兩個提案又產生了哪些討論,目前現況如何。

EIP 1559

EIP 1559的初衷是一個不錯的切入點,其動機十分簡單:

“以太坊目前的“最高價競爭”費用模式效率低下,並且伴隨著不必要的高昂使用者成本。此EIP提出了一個替代方案,即根據網路需求調整基本網路費用,從而提升費用價格效率,同時降低客戶端軟體為了避免支付非必要高費用所需的複雜度。

在當前系統中,新提交的交易必須等待被礦工打包進新區塊,但交易方可以透過提高 gasPrice引數到網路平均水平之上,激勵礦工優先打包自己的交易。按照理性的礦工邏輯,他們總是會傾向於打包高手續費的交易,以此最大化自己的收益,因此,我們可以推斷首先被打包進新區塊的交易伴隨著最高的gas費。

這種最高價競爭模式的問題在於,當交易需求膨脹時,局面很快就會失控。當區塊即將達到最大容量時,將交易打包進下一個區塊的費用可能會大幅攀升,因為使用者希望透過付出高價使得自己的交易被優先打包。

儘管目前礦工們具備一定的能力來增加單個區塊的交易容量,但並不能非常快速地改變上線,而且實際上礦工們更樂意透過將小容量區塊來獲取收益,而不是提高區塊的gas上限 (考慮到叔塊率,區塊越大礦工面臨的風險就越大)。

尤其是如果使用者的錢包使用了價格演算法以使自己的交易在一定期限內被打包,那麼最終可能會支付天價手續費將交易打包進一個幾乎快滿了的區塊。

EIP 1559引入了gas費用的‘base fee’(基本費) 概念,該費用被設定為動態調整,使得區塊中的gas總使用量接近當前的一千萬gas上限。這筆‘基本費’不會進入礦工的口袋,而是會被銷燬。

為了激勵礦工打包交易,使用者還能設定一個‘Tip’(小費) 引數,並給出一個自己願意為交易打包所支付的最高費用,礦工將獲得這筆消費。

由於基本費不會因網路需求的即時變化而劇烈波動,因此使用者在一定程度上避免了最高價競爭所帶來的低效問題 (但小費模式延用最高價競爭)。此外,由於基本費會被銷燬,而不是支付給礦工,如此一來礦工就沒有動機嘗試操縱費用了。更重要的是,該機制還試圖解決錢包開發者的一大難題:透過使費用更具預測性,錢包就能自動估算網路費用。

如果讀者想進一步瞭解EIP 1559,我建議閱讀Vitalik的EIP 1559 FAQ以及Barnabe的Jupyter筆記。

Escalator: EIP 1559的新對手

當前以太坊交易費的最高價競爭機制存在低效問題,這是不爭的事實,而且我們需要明確一點:當前費用機制還有最佳化空間,對此沒有人有異議,制定最高價競爭機制的替代方案對整個以太坊網路來說是大有裨益的,開發者和終端使用者最終都能從中受益。我們能夠並且應該就此達成一致意見。

然而,EIP 1559中提出的新機制與當前的執行方式大相徑庭,如果採用的話會引發一些問題,尤其是會影響為使用者建立並提交以太坊交易的軟體。錢包需要進行巨大的調整來適應這一新機制。

雖然從長遠來看,所有相關方都能從中受益,但就短期來說,為了適應新機制並且防止軟體崩潰,採用該提案會對開發者造成巨大的工作負擔。

EIP 1559保持其原始狀態一段時間之後,以太坊社羣開始權衡,包括受此提案影響最大的錢包開發者。錢包開發者們沒有抵制此提案,而是從一個有趣的切入點來進行討論。

他們重新衡量了此提案的核心動機 (即提升以太坊交易的使用者體驗),並帶在該語境中代入EIP 1559,他們表示“如果無論如何我們都要實現這些工作,那我們從一開始就應該瞭解這對使用者來說會是怎樣的,並且本著這個初衷來考慮提案內容。

這就是Dan Finlay提出EIP 1559替代方案的簡要背景——The Escalator Algorithm。此提案與EIP 1559中的機制有許多相似之處,動機和目標也大抵相同。但Escalator機制是作為替代改進提案提出的,使得大家圍繞這兩種機制進行更為細緻的討論。

“為了推動社羣針對gas費用市場進行更高效更具體的探討,我認為給出一個明顯優於現狀的替代方案是有必要的,如此一來就可以將EIP 1559中涉及到的所有特性與另一個合理替代方案進行對比。”

Escalator機制與當前的最高價競爭模式有些相似,但提出了一些重要改變:

相比在提交交易時設定固定價格,使用者可以給出“逐步上調”的價格,並設定一個他們願意為了使交易被打包而支付的最高價。所有的出價都會被置於‘escalators’佇列中,佇列將按照同等速率逐步地、可預測地提高佇列中的所有出價。礦工在檢視所有escalators的佇列時,會選擇最高價格的交易,不管這些交易位於哪個escalator中。當某筆交易被打包進區塊時,該使用者不會按照當前出價進行支付,而是支付佇列中的下一個最高價。

Escalator機制的主要優勢是能夠高效展現價格,同時透過收取佇列中的第二高價格,防止使用者支付過高費用。

該機制也有一些優勢與EIP 1559相似:即使發生網路堵塞,使用者也能更簡便地選擇適當的價格。值得注意的是,Escalator機制本身不會對區塊大小的決定機制產生任何影響。

Escalator Algorithm提案本身就很有意思,我強烈推薦閱讀此提案的‘user strategy’ (使用者策略) 部分,以便對三種不同的交易處理模型進行高層次的比較。如果讀者對這個話題感興趣,這篇介紹Escalator Algorithm的論文也很值得深入研讀,但我好像偏題了……

在一次EIP 1559實現者電話會議中,Dan給出了一些模板,展現錢包中的不同引數在使用者看來是怎樣的,他還強調了如何透過使用者的需求隱藏或顯示這些引數。

這些設計旨在為社羣討論提供參考,幫助我們從使用者的角度衡量EIP 1559和escalator演算法。

透過提出一個合理的替代提案,並且將開發者關於使用者體驗的意見重新納入考慮,EIP 1559/Escalator的相關討論非常巧妙地為最佳化費用市場這一最終目標創造了新的探索空間。費用市場還遠遠沒有為下一次硬分叉做好準備,但它就像《瘋狂的麥克斯》中的戰車,仍然在前進。

以太坊未來可期

我相信EIP 1559/Escalator對於以太坊社羣來說是觀察和學習的重要物件,尤其是這與無狀態以太坊未來的一大變化有著許多相同的特徵:Oil/Karma EVM semantic changes.

與費用市場類似,其中的一些提議對以太坊開發者和使用者將產生重大的二級效應。如同EIP 1559,需要明確考慮到如何支援使用者體驗,因此也有機會和理解使用者體驗的開發者進行協作,確保提案有足夠的動能支撐起成功的升級。

改進以太坊 (1.x) 以及其他公鏈是一段艱辛的旅程。有效的討論路線應該是朝著有意義的改進建議,並且進一步保證聽到受影響最大的開發者和使用者的聲音,將他們的顧慮納入討論。因為我們終將駕駛著同一輛戰車駛向Serenity。

要走在以太坊狀態膨脹問題的前面,意味著我們要不斷地提出有建設性的方案和批判,在保持動能的前提下進行改變,這是我們賴以生存的根基!

免責聲明:

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

推荐阅读

;