作者:Georgios Konstantopoulos, Mike Neuder
4 月 2 日,惡意的 Ethereum 網絡參與者利用 MEV-Boost 中繼中的漏洞從一個 MEV 搜索者那裏竊取了 2000 萬美元(請參閱 Flashbots 的報告)。接下來幾天,开發者通過發布五個補丁來解決這個漏洞。這些補丁,加上網絡延遲和驗證器策略,導致 Ethereum 網絡在 4 月 6 日出現了短暫的波動。重組區塊對網絡健康會產生不利影響,因爲它們減緩了區塊的生產速率並降低了結算保障(settlement assurances)。
在這篇文章中,由於搜索者受到攻擊且網絡暫時不穩定,我們探討了 MEV-Boost 與共識之間的相互作用,分析了 Ethereum 的權益證明機制的微妙之處,並列舉了一些可能的前進路徑。
MEV-Boost 是由 Flashbots 和社區設計的一個協議,旨在減輕最大可提取價值(MEV)對 Ethereum 網絡的負面影響。
MEV-Boost 中有 3 個參與者:
1. 中繼——相互信任的拍賣者,連接出塊者和區塊構建者
2. 構建者——構建區塊的復雜實體,以最大化自己和出塊者的 MEV
3. 出塊者——Ethereum 的權益證明驗證者
每個區塊的大致事件序列是:
1. 構建者通過從用戶、搜索者或其他(私人或公共)訂單流接收交易創建一個區塊
2. 構建者將該區塊提交給中繼
3. 中繼驗證塊的有效性並計算它向出塊者支付的金額
4. 中繼向當前 slot 的出塊者發送空白標題和支付值
5. 出塊者評估他們收到的所有出價,並籤署與最高付款相關聯的空白標題
6. 出塊者將此已籤名標題發送回中繼
7. 中繼使用它們的原生信標節點發布區塊,並將其返回給出塊者。獎勵通過區塊內的交易和區塊獎勵分配給建設者和提議者。
中繼是一個受信任的第三方,促進出塊者公平交換區塊空間和構建者用於 MEV 提取的交易排序。中繼通過保護構建者免受 MEV 偷竊,避免出塊者復制構建者交易以取走 MEV 而不分配給發現它的搜索者/構建者來保護構建者。中繼通過確認構建者區塊的有效性、代表出塊者處理每個 slot 上的數百個區塊以及確保出塊者支付的准確性來保護出塊者。
MEV-Boost 是關鍵的協議基礎設施,因爲它使所有出塊者都能夠民主地訪問 MEV,而無需與構建者或搜索者建立信任關系,這有助於 Ethereum 的長期去中心化。
在探討攻擊和響應之前,我們先來看看 Ethereum 的權益證明機制和相關的分叉選擇規則。分叉選擇規則允許網絡就鏈頭達成共識,《Ethereum 合並後的重組》這篇文章中對其做出了定義:
「分叉選擇規則是一個由客戶端評估的函數,它用已看到的區塊和其他消息作爲輸入,並向客戶端輸出「規範鏈」。分叉選擇規則十分重要,因爲可能有多個有效的鏈可供選擇(例如,如果同時發布具有相同父塊的兩個競爭塊)。」
分叉選擇規則也與時間相關,這對出塊有重大影響。
在 Ethereum 的權益證明機制中,時間被分割爲每 12 秒爲一組的 slot。權益證明算法隨機分配驗證者在該 slot 內提出塊的許可證;這個驗證者被稱爲出塊者。在同一 slot 內,其他驗證者被分配爲根據其本地視圖應用分叉選擇規則來爲鏈頭進行驗證(投票)的任務。這 12 秒的 slot 被細分爲三個階段,每個階段消耗 4 秒。
在 slot 中發生的事件如下所示,其中 t= 0 表示 slot 的开始。
在 slot 期間,最關鍵的時刻是在 t= 4 時的認證截止時間。如果認證驗證者在認證截止時間前沒有看到區塊,他們將會投票給鏈上先前被接受的頭部(根據分叉選擇規則)。一個區塊被提出的時間越早,它就有更多的時間傳播,從而積累更多的認證(因爲更多的驗證者在認證截止時間前看到它)。
從網絡健康的角度來看,區塊發布的最佳時間是 t= 0 (根據規範規定)。然而,由於區塊價值隨着時間單調遞增,出塊者有動機推遲其區塊的發布,以便更多的 MEV 積累。有關詳細信息,請參見 Timing games in Proof-of-Stake 和本討論 。
以前,出塊者可以在認證截止時間後(甚至接近 slot 的結束)發布區塊,只要下一個驗證者在建立其後續 slot 的區塊之前觀察到該區塊即可。這是由於子區塊繼承父區塊的權重,分叉選擇規則在葉節點終止。因此,推遲區塊發布沒有任何副作用。爲了幫助將理性行爲(推遲區塊發布)轉向誠實行爲(按時發布),實施了「誠實重組」(honest reorg)。
兩個新的概念被引入到共識客戶端中,對認證截止時間有關鍵的影響。
1. 出塊者獎勵機制——旨在通過授予出塊者等同於 40% 全部認證權重的分叉選擇「獎勵」來盡量減少重組平衡攻擊。重要的是,這個獎勵僅持續整個 slot。
2. 誠實重組——利用出塊者加速,允許誠實的出塊者強制重組認證權重低於 20% 的區塊。這已經在 Lighthouse 和 Prysm 中實現(從 v 4.0 - Capella 發布版开始)。這個改變是可選的,因爲它是出塊者作出的決策,不影響認證驗證者的行爲。因此,我們不用將其同時應用於所有客戶端,它也沒有與任何特定的硬分叉相關聯。
需要注意的是,在一些特殊情況下會避免使用誠實重組:
1. 在 epoch 邊界區塊期間
2. 如果鏈沒有最終確定
3. 如果鏈頭不是重組前 slot 的頭部
情況 3 確保誠實重組只會從鏈中刪除一個區塊,這起到了斷路器的作用,使得鏈能夠在極端網絡延遲期間繼續生成塊。這也反映了提案者對網絡的看法的信心降低了,因爲他們無法確定其提議增強的塊是否將被視爲規範。
下圖展示了如何改變誠實行爲以實施重組策略。
在這種情況下,讓 b 1 代表一個遲到的塊。由於延遲,b 1 只有第 n 個 slot 的 19% 的證明權重。剩余的 81% 的證明權重分配給父塊 HEAD,因爲許多證明者沒有在證明截止期之前看到 b 1 。
如果沒有誠實的重組,第 n+ 1 個 slot 的提案者會將 b 1 視爲鏈的頭並構建子塊 b 2 。提案者沒有努力重組 b 1 ,盡管它只有 19% 的證明權重。在第 n+ 1 個 slot,b 2 具有提案者的增強,假設它按時交付,b 2 將通過積累該 slot 的大多數證明成爲規範。
有了誠實的重組,情況大不相同。現在,第 n+ 1 個 slot 的提案者看到 b 1 的 19% 證明權重低於重組閾值,因此他們建立一個以 HEAD 爲父塊的塊,並強制重組 b 1 。當我們到達第 n+ 1 個 slot 的證明截止期時,誠實的證明者將比較 b 1 (19% )與 b 2 (來自提案者增強的 40% )的相對權重。所有客戶端都實現提案者增強,因此 b 2 將被視爲鏈的頭,並將積累第 n+ 1 個 slot 的證明。
在 4 月 2 日的 unbundling 攻擊中,提案者利用中繼漏洞向中繼發送了一個無效的籤名頭。在接下來的幾天裏,中繼和核心开發團隊發布了許多軟件補丁,以減輕重復攻擊的風險。五個主要更改如下:
中繼更改: 檢查數據庫中已知的惡意提案者(僅由超聲波中繼在生產中使用,並已被刪除)。 檢查中繼是否已將完整塊傳遞到 P2P 網絡中的某個 slot。 在塊發布之前引入 0-500 ms 範圍內的均勻隨機延遲(已從所有中繼中刪除)。
信標節點更改(僅適用於中繼信標節點): 在廣播之前驗證信標塊。 在發布區塊之前檢查網絡是否存在錯誤確認。 這些更改的結合導致了共識不穩定性,這一問題加劇了由於大部分驗證者現在使用上述誠實重組策略而產生的影響。
上述的五項更改都在中繼塊發布的熱路徑中引入了延遲,這增加了中繼塊在確認截止時間之後廣播的概率。下圖顯示了這五項檢查的順序以及引入的延遲如何導致區塊發布超過確認截止時間。
在實施這些檢查之前,大量滯後於 t = 0 (例如 t = 3 )的已籤名頭部通常不會產生問題。由於中繼的开銷非常低,因此它將在 t = 4 之前發布區塊,而無需等待確認截止時間。
然而,由於這五個修補程序的延遲引入,中繼現在可能部分負責遲延廣播。讓我們看看下面的假設性區塊發布過程。
中繼在 t = 3 時從出塊者處接收到已籤名頭部。到了 t = 4 ,中繼仍在執行檢查,因此廣播將在確認截止時間之後進行。在這種情況下,出塊者發送的延遲已籤名頭部和中繼引入的一些額外延遲的結合導致了未能在確認截止時間之前廣播。如果沒有誠實的重組,這些區塊很可能已經進入鏈上。如圖 2 所示,接下來 slot 的誠實出塊者不會因爲這些區塊遲到而故意進行重組。然而,如果錯過了確認截止時間,則這些區塊將被下一個出塊者重組。
因此,在攻擊後的幾天中,分叉塊的數量急劇增加。
Metrika 的兩周數據顯示,在最壞的情況下,一小時內可能會有 13 個區塊(4.3 %)被重新組織,這是正常情況的約 5 倍。隨着中繼器推出各種更改,分叉塊的數量急劇增加變得明顯。感謝中繼操作員和核心开發人員的偉大社區努力,一旦了解到影響,許多更改被撤回,網絡恢復到了健康狀態。
截至今天,最有用的更改是信標節點塊驗證和發出之前的抵賴檢查。惡意的出塊者不能再通過向中繼發送無效頭部並確保中繼信標節點在發布之前不看到抵賴塊來執行攻擊。盡管如此,中繼仍然面臨着 MEV-Boost 和 ePBS 中提出的更一般的抵賴攻擊。
在這篇文章中,我們強調了 MEV-Boost 的工作原理以及它對 Ethereum 共識的關鍵性。我們還對與時間有關的 Ethereum 分叉選擇規則中的一些較少知道的方面進行了詳細分析。通過使用「解綁」攻擊和开發人員的反應作爲案例研究,我們強調了分叉選擇規則與時間有關的方面的潛在脆弱性以及其對網絡穩定性的影響。
考慮到這一點,研究界應該評估什么是「可接受」的重新組織次數,並考慮抵賴攻擊的更一般曝光情況,以確定是否應該實施緩解措施。
此外,目前正在積極探索多個未來方向:
1. 實施頭鎖機制,以保護 MEV-boost 免受等價錯誤攻擊。這還需要更改共識客戶端軟件並可能需要規範更改以擴展證明提交期限。
2. 增加 MEV-Boost 軟件的漏洞賞金計劃的數量和傳播力度。
3. 擴展模擬軟件以探索 sub-slot 定時如何影響網絡穩定性,這可以用於評估如何調整證明提交期限以減少重組。
4. 優化中繼上的區塊發布路徑以減少不必要的延遲——這已經在探索當中。
5. 承認 MEV-boost 是核心協議功能,並將其納入共識客戶端,即「enshrined-PBS (ePBS)」。兩個 slot 的 ePBS 容易受到明顯的攻擊,因此實施「頭鎖機制」仍然是一種選擇。
6. 通過圍繞延遲和認證截止時間的問題加入更多的 hive 和/或 spec 測試。
7. 通過構建中繼規範的其他實現,鼓勵中繼客戶端的多樣性。
8. 考慮調整對於明顯攻擊的懲罰,但要記住即使進行完整的 32 個 ETH 的懲罰,也可能無法阻止在極大的 MEV 機會存在時的惡意行爲。
9. 重新審視 sub- slot 計時,並考慮調整區塊傳播階段(例如,將認證截止時間從 t= 4 調整到 t= 6 )。
總的來說,我們對 MEV 和 mev-boost 生態的再次興起感到興奮。通過解綁攻擊和緩解措施,我們已經了解了延遲,MEV-boost 和共識機制之間的關鍵關系;我們希望協議能夠繼續加強以應對這種情況。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
標題:全面解讀MEV-Boost工作原理及Ethereum分叉選擇規則
地址:https://www.torrentbusiness.com/article/37165.html
標籤:MEV