作者:Chaskin OnChain,加密KOL;翻譯:金色財經xiaozou
1、我們是如何走到這一步的
以太坊最初的設計理念是由一方來處理區塊創建的整個過程。這需要聚合記憶體池交易,製作區塊頭,然後要么在工作量證明中找到黃金隨機數(golden nonce),要么在權益證明中簽署區塊頭。在最初的幾年裡,區塊創建很簡單:挖礦節點從它們的記憶體池中提取交易,按照gas價格(表示每筆交易的計算工作量)對交易進行排序,並保持在每個區塊的gas限制內。然而,隨著去中心化金融(DeFi)的興起,這種區塊創建的方法發生了重大變化。
(1)MEV的中心化風險
在DeFi中,交易排序的順序會帶來很大影響。假設記憶體池中有一個待處理交易,該交易目的是在UniSwap上用1枚ETH兌換BITCOIN(當然,我指的是HarryPotterObamaSonic10Inu)。你收到的BITCOIN數量是基於目前UniSwap池中的ETH與BITCOIN的兌換率。如果其他人的交易(用2枚ETH兌換BITCOIN)在你的交易之前被處理,你最終得到的BITCOIN會更少,因為ETH與BITCOIN的兌換率發生了變化。考慮到交易順序的重要性,以及交易順序是由礦工控制的,便導致了我們所謂的MEV(礦工/最大可提取價值)的出現。 MEV代表了礦工透過選擇包含、排除或重新安排哪些交易可以獲得的潛在利潤。
MEV乍看之下似乎是無害的。它甚至還可以作為網路安全的助推器,挖礦或驗證會有更多激勵,對嗎?除了通常的區塊獎勵和交易費,現在還有MEV可供爭奪。但現實遠非無害。如果不加以控制,MEV可能會成為一股強大的中心化力量。有一個故事可以說明這一點:想像一下,你剛剛聽說了這個MEV遊戲,並且聽說驗證者因此獲得了超過10%的APR。很誘人,對吧?你拼了!你將32枚ETH送到質押合約啟動驗證者節點。但等一下……你只見到了4%的回報。當輪到你提議區塊時,交易只是按照它們的gas價格排列。你沒看到任何的MEV魔法。你沒有複雜的演算法和策略來開採MEV黃金。不通曉其中的門道,你就會被困在預設情況下:以gas價格排序交易。
這就是中心化力量發揮作用的地方。即使你是電腦專家,你所使用的那個簡簡單單的電腦遠遠比不上他們運行下一級MEV提取遊戲的超級電腦。顯然,遊戲結局就是關閉你的驗證者節點,將你的ETH發送給這些承諾分享MEV蛋糕的超級強大的設定。你可能會看到幾個這樣的巨頭在運行網絡,這是一個真正令人不安的中心化結果。如果這就是未來的發展方向,那麼以太坊的基本目標就失敗了。那樣的話,一個由少數人控制的網路也可能是中心化資料庫。
(2)Flashbots的出生
康乃爾大學智能合約安全專業的博士生Phil Daian是最早發現MEV問題的人之一。 2017年8月,他發表了一篇題為「0x和EtherDelta去中心化成本」的博文,文章的靈感來自於他在0x ICO期間發現的搶先交易漏洞。
搶先交易是指在內存池中發現一個欲將代幣A兌換為代幣B的交易。然後,一個搶先交易者編程啟動一個類似的交易,提供更高的gas價格。此策略確保搶先交易者的交易在初始交易之前得到處理。在初始交易被處理後,搶先交易者可以立即將代幣B兌換回代幣A,最終獲得比一開始更多的代幣A。這種策略有時被稱為三明治攻擊,因為用戶的交易被夾在搶先交易者發起的兩個交易之間。因此,當搶先交易者獲得利潤時,發起初始交易的人收到的代幣B則更少。雖然三明治攻擊很常見,但人們可以使用各種策略來有效地提取MEV。
在ICO熱潮期間,Phil和一個團隊部署了一個機器人,年收益約為100萬美元。在我之前提到的部落格文章分享了他們的方法之後,又出現了幾個類似的機器人,創造了競爭局面,機器人會進行gas競價,以獲得交易優先權。這促使Phil部署了全域節點,捕捉即時交易資料。這項研究在他著名的「Flash Boys 2.0」一文中得以完成,
這是Phil做客Chopping Block時分享的一個有趣的相關故事。在UniSwap的創辦人Hayden Adams在ethresear.ch.分享了他的設計後(UniSwap是目前最受歡迎的去中心化交易所),Phil立即向V神和Hayden提出了他的擔憂。 Phil認為,UniSwap的設計將導致大量的MEV,使其成為被利用的主要目標,並使用戶面臨交易重新排序和三明治攻擊的風險。 V神回應說,這些可以被視為使用區塊鏈的額外費用機制。 Phil對這樣的反應非常生氣,他認為像高盛這樣強大的金融實體會像當今的金融體系一樣擠壓個體散戶。然而,隨著時間的推移,Phil慢慢理解了V神的觀點。
認識到MEV領域的重要性與挑戰,Phil與合作夥伴共同創立了Flashbots,專注於MEV領域的研究與解決方案。 Flashbots意識到MEV將會持續存在,Flashbots的任務是確保MEV的存在不會導致形成這樣一個系統:在這個系統中,成為一個壞人或創造負面外部性對你個人來說更有利,比做好人更加有利可圖。 TradFi中就有這樣的例子,最賺錢的策略通常利用了系統優勢。同時,Flashbots認為可能有一種方法可以讓用戶利用MEV的能量,並補貼那些保護網路安全的人,同時補貼網路上的交易,讓人們獲得更優的價格,在這些系統中提供給他們想要的執行。若設計得當,MEV或可成為加密貨幣超越傳統系統的助力。
(3)利用MEV:拍賣與提議者-建造者分離
Flashbots意識到,礦工對交易訂單的壟斷是一種寶貴的資源。他們的MEV民主化的第一步是創造一個交易排序權的拍賣系統。這導致了MEV GETH的誕生,它首次引入了提議者-建造者分離(PBS)概念。以太坊基金會的Barnabé Monnot將PBS描述為:「一種設計理念,協議參與者可能會在達成共識的過程中使用第三方服務。」在此之前,礦工擁有完全的控制權:他們決定交易順序,進行哈希計算,然後添加區塊。但是MEV GETH改變了這一切。它引入了被稱為搜尋者(searcher)的外部參與者,他們付費獲得了將自己的交易包包含在礦工區塊中的權利。
有了MEV GETH,礦工們就有了一個新的端點。他們可以從搜尋者那裡收到針對MEV優化的交易包。每個交易包還會包含一個向礦工付費的交易,激勵他們選擇這個交易包。自然,礦工們選擇了能提供給他們費用最高的交易包。當搜尋者在公共記憶體池中競爭MEV機會時,他們的出價自然會因為這種競爭而上漲。這種競爭確保了礦工獲得最大份額的MEV利潤。
讓我們用一個例子來詳細解釋這個問題:假設Alice是一個搜尋者,並發現了兩個去中心化交易所之間的套利機會。她可以透過在UniSwap上購買代幣X,然後立即在SushiSwap上以更高的價格售出,從而獲利0.07 ETH。因此,她創建了一個針對0.07 ETH MEV機會進行優化的交易包,並願意向礦工支付0.05 ETH,以便在下一個區塊中優先處理她的交易。另一位搜尋者Bob也發現了同樣的機會。他創建了一個類似的交易包,但為礦工支付0.06 ETH,以獲得相同的特權。 Alice和Bob都將他們的MEV優化交易包發送給礦工。在另一端,礦工接收這些交易包,然後決定將哪一個包含在下一個區塊中。礦工自然會選擇Bob的交易包,因為費用更高,可以讓礦工獲得最大的利益。這是一個雙贏的局面。礦工捕獲了大部分MEV機會,從0.07 ETH的機會中獲得了0.06 ETH。同時,搜尋者獲得了0.01 ETH的淨利潤,這個利潤是他們無法以其他方式取得的。 MEV GETH機制的實質就是競價。 Alice和Bob相互競爭,為礦工提供激勵,從而確保礦工獲得MEV收益相當大一部分份額。
然而,如果他們可以為任何人打開一個端點來向礦工發送交易包,那麼惡意行為者可能會利用這種開放性來超載他們的系統,有可能發動DOS攻擊。為了解決這個漏洞,Flashbots引進了Flashbots Relay。這個中繼起著至關重要的篩選作用:它根據礦工的潛在盈利能力、交易的有效性和提供的費用來評估傳入的交易包。只有最優的交易包才會轉送給礦工。這種方法確實引入了一定程度的中心化因素,因為該過程依賴Flashbots Relay來篩選不受歡迎或可能有害的流量。有趣的是,礦池業者和缺勤之間已經存在一定程度的PBS。通常情況下,運營商會建立區塊體,包括中繼發送的交易包,對區塊頭進行一次哈希計算,然後將其分發給曠工繼續進行哈希計算找到黃金隨機數。
2、當前形勢
當以太坊從工作量證明(PoW)過渡到權益證明(PoS)時,交易驗證和區塊提議格局發生了重大變化。 PoW依靠礦工和計算能力(哈希率)來驗證和添加新的區塊到區塊鏈中,PoS將這一責任轉移給了驗證者,他們質押自己的ETH成為區塊提議者。
幾乎所有礦池都在使用MEV GETH,但隨著以太坊向PoS的轉變,系統需要調整。 PoS的設計是為了滿足獨立質押者的需求:在低資源設備(如Raspberry Pi)上操作的個別驗證者。 PoS的設計目標是確保一個平衡的局面:無論你是一個獨立質押者還是一個龐大的質押池的一部分,在驗證過程中任何參與者都沒有固有的優勢。在轉變為PoS之前,少數礦池主導了哈希率。這允許在這些池和Flashbots Relay之間建立信任關係。任何不誠實的行為,例如礦池從搜尋者那裡竊取MEV,都可能危及這種關係。假設一個礦工從一個搜尋者那裡收到了一個三明治攻擊交易包。如果礦工進一步將搜尋者的交易夾在自己的交易之間,將帶來短期收益,但也將切斷與Flashbots的聯繫,使他們失去未來的MEV收益,因為他們將無法訪問Flashbots Relay。
(1)MEV Boost
與大型礦池不同,獨立質押者可能沒有維持信任的長期動機。在某些情況下,他們可能會發現,利用建造者的MEV,然後從網路中消失,會更加有利可圖。這項行為將導致他們被完全罰沒,失去所有的32枚ETH,但在某些情況下,竊取MEV的潛在利潤可能超過這種損失。這種情況確確實實在4月就有發生,當時一個惡意驗證者在關閉驗證節點之前從三明治機器人那裡竊取了2000萬美元。
為了應對這種新的攻擊,Flashbots推出了MEV Boost,這是一個專為獨立質押者環境設計的系統。
MEV Boost的機制:
-
Relay(中繼):先前的系統只有Flashbots充當中繼,與之不同的是,MEV Boost進行了民主化。現在,任何人都可以成為一個中繼節點,擴大參與和安全。 Flashbots也開源了他們的relayer程式碼。
-
建設者:一個新的角色出現了-建設者。這些實體從搜尋者收集交易包,並將它們組合成完整區塊。
-
拍賣系統:建造者競價以包含他們的完整區塊並提交給中繼。中繼執行一個關鍵的驗證步驟來確保區塊的有效性。
-
驗證者互動:中繼將從競爭建設者收到的最高出價連同相應的區塊頭轉發給驗證者,驗證者將向以太坊網路提議一個區塊。
-
區塊承諾:指定的驗證者簽署區塊頭,這是一個承諾。一旦簽名,他們就被綁定到該區塊。如果他們試圖簽署另一個區塊,這將被視為惡意行為,他們將被罰沒。
-
最終提議:有了承諾,中繼將完整的區塊細節發送給驗證者,向網路發送正式提議。
這種設定引入了信任問題:
-
建造者-中繼信任:建造者需要相信中繼不會竊取他們的MEV。請設想這樣一種場景:中繼從建造者接收到一個區塊後,在三明治交易中將建造者的地址換成自己的地址。然後他們把被操縱的區塊頭傳遞給提議者。
-
提議者-中繼信任:另一方面,提議者必須相信他們簽署的區塊頭是有效的。提議一個無效區塊會導致區塊獎勵喪失,因為網路會拒絕無效區塊。
PBS設計看到了一個反覆出現的挑戰:雖然提議者和交易排序參與者之間的互動是給定的,但顯然需要一種機制,其中:
-
提議者可以在不知道區塊內容的情況下提交建造者的區塊,但仍可保證區塊的有效性。
-
建造者可以安全地將他們的區塊發送給提議者,確信他們的MEV不會被盜。
在深入研究MEV Boost之前,有必要了解以太坊在不使用MEV Boost的情況下創建區塊的預設方式是什麼。這種設定依賴於驗證者Execution Client(執行客戶端)和Consensus Client(共識客戶端)之間的協作。執行客戶端接收交易後,它會檢查交易格式,將其新增至記憶體池中,但不處理該交易。同時,共識客戶端處理PoS共識,選擇一個驗證者來創建下一個區塊。然後,所選驗證者的執行客戶端根據gas價格將交易安排為新的區塊,然後將其轉發給共識客戶端並提交給網路。其他驗證者證明區塊的準確性,驗證完成後,它立刻成為區塊鏈最新的一環。
如果驗證者選擇使用MEV Boost,則此過程將會變更。當他們提議一個區塊時,他們不再依賴自己的執行客戶端,而是連接到一個中繼網路。驗證者可以選擇連接到哪個中繼。
MEV Boost是可選的,但是95%的驗證者都在使用它。基本上,除了V神運行的驗證節點外,幾乎每個驗證者都將區塊創建委託給第三方。這種委託表明,以太坊協議的核心功能——區塊創建——現在主要是在以太坊系統本身之外進行的。這種設定中的一個關鍵角色就是中繼,中繼的角色與以太坊的基本原則形成了某種對比。目前,大約有9個活躍中繼,但其中只有6個中繼的區塊中繼份額超過9%。
信任成為一個問題,是因為中繼與建造者、中繼與驗證者之間的關係並不是無需信任的。另外還有對抗審查性的擔憂。在中繼拍賣過程中,中繼有權決定區塊的有效性。這種自由裁量權允許他們排除包含與受制裁地址相關的交易的區塊。一個恰當的例子是,OFAC對Tornado Cash制裁後,一些中繼行使了這種權力。最近的數據顯示,由於這種中繼施加的審查,過去一周有38%的區塊遵循了OFAC準則。
3、展望未來
以太坊正在製定策略,以重新整合目前在其核心協議之外操作的過程。目標是強制提議者從建設者那裡獲得區塊,本質上是讓協議來處理中繼的當前職責。目前的中繼系統存在弱點。例如,中繼可能無法正確地驗證區塊,錯誤地驗證與提議者付款相關的建設者競價,甚至延遲交付區塊或交付區塊失敗。最重要的是,運行中繼並不便宜。到目前為止還沒有可持續的融資模式。使用率最高的Ultrasound Relay表示,其營運成本估計在每年7萬至8萬歐元之間,這還不包括軟體維護等其他費用。中繼目前是作為公共設施運作的。
同樣值得注意的是,由於MEV Boost是由一家公司(Flashbots)開發的外部軟體,因此它沒有像協議內的軟體那樣經過嚴格的測試。這從Shapella升級後的Prism客戶端可以明顯看出:MEV Boost的整合錯誤引發了提議者簽章問題,導致了slot遺失和罰沒。將此過程整合到以太坊協議中的目的是解決這些挑戰,確保即使提議者和建造者之間的協議破裂,提議者仍然可以得到補償。因此,如果建造者提供了一個有缺陷的區塊,提議者仍然可以獲得完整的出價,而讓建造者承擔後果。雖然這種整合的具體細節(稱為ePBS)仍在研究中,可能還需要幾年的時間才能實現,但已經出現了許多同的實現想法了。
(1)如何enshrine提議者-建造者分離
要了解潛在的ePBS實現,首先必須了解以太坊PoS演算法的一些基本元件。在以太坊中,時間被分割成12秒的間隔,稱為slot。 32個這樣的slot合在一起就形成了一個epoch。在每個slot中,隨機選擇一個驗證者來提議一個區塊。同時,指定一個委員會來證明他們認為符合以太坊PoS分叉選擇規則的區塊是有效的,理想情況下是驗證最新提議的區塊作為區塊鏈的頭。如果一個區塊在給定的slot中沒有被提議,那麼4秒過後,負責證明的驗證者將對前一個區塊進行驗證。
現在,我們來看看ePBS的設計。這個最受歡迎的模型跨越兩個slot。首先是競價階段,在此階段,建造者將他們的出價發送給驗證者。然後Slot 1開啟,提議者選擇一個出價,並透過發布一個提交該建設者出價的區塊來提交它。然後,一群驗證者投票支持該區塊,確保其在鏈中的位置。在Slot 2中,建造者看到在提議者的提交區塊中提交的出價及其證明。考慮到提議者的提交是不可逆轉的,出價被選中的建設者發布了他們的區塊,並保證他們的MEV不會被竊取。最後,驗證者來驗證這個新區塊。
新發布的模型類似於兩個slot的方法,但引入了一個payload-timeliness committee(有效負載時效性委員會)。首先,建設者的出價由提議者選擇並提交,然後驗證者委員會給出證明。隨後,建造者揭露區塊的有效負載(其交易),有效負載時效性委員會確認有效負載是按時提供的及有效負載的有效性。這兩種方法之間的另一個差異在於以太坊權益證明的操作規範,但這部分內容不在本文的討論範圍內。
另一個設計圍繞著slot拍賣的概念。在這個設計裡,建造者在競價期間承諾epoch中的一個slot,而不指定區塊。他們基本上承諾在分配的slot內創建一個區塊,並為此支付一定的價格。這提供了適應性,特別是對於需要即時操作的跨域MEV。
到目前為止,所有的ePBS設計都授予建造者對區塊交易的完全控制權。一個潛在的解決方法是使用包含清單。這個清單(由提議者發送給建設者,理想情況下是所有當前在內存池中或不必在內存池中的所有交易)包含必須成為建設者區塊一部分的交易,如果有空間的話。如果建設者區塊已滿,則必須指出這一點,確認他們已確認該清單。這種方法增強了網路的抗審查能力。如果建造者想要審查交易,那麼隨著時間的推移,這樣做將變得非常困難和昂貴。由於EIP 1559,連續填充的區塊將導致基礎費用呈指數級增長。因此,如果建造者透過在區塊中填充虛擬交易來繼續審查交易,那麼不斷上升的成本將使這種做法不再可行。
在某些情況下,提議者可能希望對區塊創建產生一些影響。另一個ePBS特性可能會讓提議者創建區塊的一部分(起始或末尾),並將其餘部分委託給建造者。所有這些設計和特性並不是相互排斥的,重點是如何平衡它們的優點和缺點。
(2)Optimistic Relaying(樂觀中繼)方法
ePBS的另一種做法是利用我們現有的可信中繼。想法是逐步減少中繼的職責,直到它主要用作優化器,而不是關鍵組件。在第一階段,我們放棄了中繼驗證區塊有效性這項職責。這大大降低了中繼的運作成本,因為不再需要進行區塊模擬來確保其有效性。此外,還簡化了中繼的作用,在與提議者和建設者的通信中減少了大約100到200毫秒的延遲。那麼,如果一個區塊被證明是無效的,我們如何確保提議者得到他們的補償?在競價時,建造者將被要求提供與其出價等額的抵押品。如果區塊無效,抵押品將支付提議者本應得到的補償。這個概念被稱為Optimistic Relaying(樂觀中繼)V1。
將樂觀中繼進一步推向V2,我們可以消除中繼下載區塊的需求,再減少50到100毫秒的延遲。
最終,樂觀中繼的遊戲結局開始看起來會很像我上文提到的有效負載時效性委員會模型。順序如下:建造者在點對點層上提交他們的出價。提議者接受出價,並附上已簽署的標頭。然後,建設者推出區塊。在這個階段,中繼的唯一工作是監督點對點層的記憶體池,基本上是在發生不同活動時進行記錄。中繼的角色變得非常輕量級,它只需要監視記憶體池。這使得中繼很像有效負載時效性委員會。所有這些步驟都是為了將來中繼被有效負載時效性委員會所取代,從而簡化整個協議。
(3)利用建設者進行額外的協議增強
PBS的出現是Flashbots對MEV中心化效應的回應,旨在試圖利用MEV取得正面成果。考慮到以太坊中專門從事區塊建設這一新角色,這些實體有機會像超級電腦一樣運行,與輕量級驗證者形成鮮明對比。利用這些強大的建設者的協議設計正在浮出水面。這樣做的目的是保持驗證者的簡單和直接,而建造者(沒有這樣的限制)可以在更高的計算等級上運行。這些強化的建設者主要應用於擴展。
以太坊研究人員Dankrad Feist的Danksharding設計表明,這些高資源密集型建造者可以建立一個包含所有數據的大區塊。然後,資料被分割並由多個KZG承諾提交。創建這個區塊需要大量的資源,但是驗證它們相對便宜些。然後,輕量級驗證者可以應用資料可用性抽樣(Data Availability Sampling)來檢查區塊的一小部分,並幾乎確定整個資料集的可訪問性,從而使Proto-Danksharding的資料吞吐量增加約16倍。 Danksharding很複雜,這裡不做介紹,但關鍵是這些高級建設者可以被委託更多角色,以進一步增強網路能力。
利用建造者的另一個想法是based rollup的潛在實現。幾年前,V神討論了rollup排序模型,並為其中一種模型創造了一個術語叫做Total Anarchy,在這種模型中,任何人都可以發布一個rollup區塊,第一個到達鏈的序列就是正式的區塊。這種方法有很多缺點,例如鏈上垃圾郵件和獲勝序列的模糊性。然而,Justin Drake最近關於based rollup的文章強調了一種利用建造者的更有效的策略。在這個模型中,第一層的建造者就像rollup排序器一樣,挑選最優的序列包含入鏈。這確保了只有最優的序列才能被包含。
除了rollup之外,引入強大的建設者還可以刺激其他創新結構,例如無狀態客戶端。它們使節點能夠像往常一樣運行,但不需要保留過時狀態。這使得節點更加輕量級,並依賴建構者產生特定加密證明的能力。
(4)協議強制提議者承諾(PEPC)
協議強制提議者承諾(PEPC)是以太坊基金會研究員Barnabé Monnot 於2022年10月提出的概念。 PEPC的核心目標是賦予提議者在區塊鏈創建方面更大的權利,他們把整個任務賣給了專門的建設者所以喪失了權利。在PEPC中,除了通常的以太坊要求之外,提議者可以為一個區塊添加額外的條件,使其被視為有效區塊。如果一個區塊不能滿足這些額外條件中的任何一個條件,它就會被認為是無效區塊,驗證者就會拒絕它。這與EigenLayer承諾不同,在EigenLayer承諾中,有額外承諾的驗證者要么因為不合格而損失一些質押ETH,要么因為履行承諾而獲得獎勵。然而,在PEPC中,區塊的有效性與承諾無關。
假設Alice是以太坊網路中的一個提議者。透過PEPC,Alice可以靈活地為即將到來的區塊做出特定的承諾。她可以承諾她的區塊將包含至少三筆與特定智能合約相關的交易,並且她願意為這些交易分配區塊70%的gas。她廣播了這個承諾,它成為她的區塊有效性條件的一部分。現在,建設者Bob看到了Alice的承諾。他將符合Alice標準的交易打包在一起,發送給她。如果Alice的區塊在構建後符合她的承諾(即包含消耗指定gas的指定交易),那麼該區塊將被認為是有效的,可以添加到區塊鏈中。否則,Alice的區塊將不會被接收,這確保了她會履行自己所宣布的承諾。
ePBS和PEPC之間的一個關鍵區別在於承諾性質。在ePBS中,提議者和建造者遵循一個固定的、統一的程序。這是一種一刀切的方法。提議者提交一個特定的區塊哈希,然後建造者產生一個匹配的有效負載。然而,PEPC引入了多樣性。每個提議者都可以設定獨特的條件,提供了更大的靈活性。需要注意的是,PEPC的存在依賴ePBS,它們是相輔相成的。 PEPC的具體工作仍在討論和研究中。
(5)結論
PBS不是一個具體的實現,它是一種設計哲學。它表明,存在勞動分工的激勵機制,協議參與者將把一些責任委託給更專業的外部實體。該協議的目的是提供一個可靠的、盡可能無需信任的接口,以確保這種委託是順利的、公平的和包容的。如果沒有這個無需信任的接口,一些參與者可能會有優勢,導致出現PBS時代之前首次觀察到的MEV中心化問題。 PBS的核心是強調公平和去中心化。雖然要整合到協議中的確切元素將在未來的以太坊更新中才能看到,但以太坊的總體目標仍然很明確:由一組去中心化的輕量級驗證者監督的可訪問、開放、可信的狀態計算。