EIP-7732 的背景及動機
由於 MEV 的問題很難從根源解決,所以採取公平競爭的措施是避免造成安全隱患的必經之路。在以太坊合併之後,爲了保持公平,減輕大型質押池對 MEV 提取的規模效應,Flashbots 推出 MEV-Boost,通過採用 PBS(Proposer-Builder Separation)機制來減少驗證者直接參與 MEV活動的機會,將 MEV 利益相關者多樣化。目前 MEV-Boost 區塊佔比已經超過 90%。
隨着 MEV-Boost 的廣泛採用,以太坊社區開始擔憂依賴這種第三方服務可能帶來的安全風險,因此,便產生了在以太坊協議內實施 PBS 的想法,稱爲 ePBS(Enshrined Proposer-Builder Separation)。最近,ePBS 被賦予了正式的 EIP 編號:EIP-7732。EIP-7732 是共識層的更改,無需更改執行層。核心是將執行驗證從共識驗證中邏輯上和時間上分離出來,將執行驗證推遲至共識驗證完成後進行。
EIP-7732 的提出,除了解決驗證者依賴第三方(如 MEV-Boost)構建執行有效負載的問題,還旨在優化驗證過程中的效率。當前驗證者必須在極短的時間(4 秒內)完成所有共識和執行狀態轉換功能,這對計算資源和網絡帶寬的要求極高。在這個窗口期內,驗證者需要驗證和確認大量的交易信息,並更新區塊鏈的狀態,這不僅增加了單個節點的計算負擔,也加大了出錯的可能性。通過將執行驗證和共識驗證分離,確保在關鍵的 4 秒窗口內,節點只需要完成相對較少的任務,從而減輕了計算負擔,加快網絡傳播速度。
EIP-7732 的核心內容
EIP-7732 創建了新的角色「構建者」,這是驗證者的一種新的可選職責,任何擁有足夠資金在信標鏈上進行質押和有能力執行區塊構建任務的驗證者都可以成爲構建者。構建者負責構建和提交執行有效負載的承諾。驗證者現在可以將執行有效負載的構建任務外包給構建者,自己則更專注於共識層面的任務。
執行有效負載(Execution Payload)是區塊中最核心的部分,包含了所有的交易和狀態變更信息。構建執行有效負載的過程包括從內存池中選擇交易、排序交易、依次執行交易、所有信息打包形成執行有效負載。
爲了實現這一分離,EIP-7732 移除了 ExecutionPayload 字段,該字段包含了與交易執行相關的所有數據,比如交易列表和狀態轉換結果等。通過移除這個字段,執行內容的創建和驗證被從信標塊的創建和驗證中分離出來。作爲替代,EIP-7732 引入了新的數據結構 SignedExecutionPayloadHeader,它包括了構建者對未來將揭示的執行有效負載的承諾。
整體流程
構建者的任務:構建者負責創建執行有效負載,並生成即將公開執行有效負載的一個承諾。該承諾被封裝在 SignedExecutionPayloadHeader的數據結構中,其中包括執行有效負載的哈希和對此哈希的數字簽名,以確保數據的不可篡改性和來源的驗證性。這個承諾表示構建者將在未來某一確定時間內公開完整的執行有效負載,並規定了支付給信標塊提議者的金額,以激勵信標塊提議者包含此承諾。
信標塊提議者的任務:信標塊提議者(驗證者)與構建者合作,在創建新的信標塊時不需要直接處理交易的執行細節,而是包括由構建者提供的承諾,然後將整個信標塊廣播到以太坊網絡,以達成共識。只包含承諾可以減輕網絡的負擔,加速信標塊的傳播和共識驗證過程。處理了構建者的承諾後,承諾里的小費將從構建者的信標鏈餘額中扣除,並記入信標塊提議者。在信標塊提議者成功地廣播了含承諾的信標塊後,構建者需要在規定的時間窗口內公開完整的執行有效負載。
PTC 驗證:爲了監控構建者是否及時公開執行有效負載,信標鏈網絡隨機選出的一組驗證者組成有效負載及時性委員會(PTC)。PTC 負責檢查構建者是否在規定的時間窗口內公開了與承諾相匹配執行有效負載。如果構建者未能及時且正確地公開,PTC 將廣播一個負面的結果,構建者會面臨削減質押的懲罰。如果 PTC 驗證通過,則執行有效負載的完整驗證被推遲到下一個信標塊期間單獨處理,也就是延遲驗證。
除此之外,提案還引入了針對 PTC 的監管規則和新的懲罰機制,以確保整個驗證過程的嚴格性和公正性。同時,由於執行有效負載和信標塊的分離,分叉選擇邏輯也進行了調整,以適應新的驗證流程,這些改變預計將顯著提高網絡的安全性和效率。通過一系列的設計,EIP-7732 改善了以太坊的處理效率,降低了網絡延遲。