Ultra Sound Relay(@ultrasoundmoney)已經成為MEV-Boost 里市場佔有率最高的Relay 了, 這得益於他們的optimistic relay 機制。
一、Relay 的工作流程
在mev-boost 中一次Block auction 的時間大約是12s,跟以太坊每個Slot 的時間相近。

1) 首先Builder 從交易池選擇交易構造Block,然後將Block 以及Block Bid( 給Proposer 的費用) 發送給Relay
2) Relay 完整的接收到區塊之後會,模擬(simulate) 執行區塊內包含的所有交易成功之後,這個Builder 的Bid 就生效了
3) 在Block Auction 的最後,每個Relay 會將最高出價的Block Bid 的Block Header 發送給當前Slot 對應的Proposer
4) Proposer 從多個Relay 發送的Block Bid 之間選擇一個最高出價的Block Header 進行簽名,並把簽名完的區塊頭髮送回Relay
5) Relay 驗證返回的簽名無誤之後,會通過p2p 網絡把Block Body 廣播給Proposer 同時也廣播給了參與p2p 網絡的其他驗證者
Remark:Relay 不把整個Block 傳給Proposer 簽名是為了避免Proposer 把區塊頭偷走,也避免Proposer 需要承擔較大的網絡開銷。
Relay 是知道所有Builder Block 內包含的交易的,所以實際上Builder 需要相信Relay 不會偷走我的Block。
二、Optimistic Relays
在上面介紹Relay 的工作流程中,我們提到了Relay 實際上是在接受完Builder 給他傳播的Block(Block delivery) 並模擬執行(Block simulation) 這個區塊成功後,這個時候這個Block Bid 才開始生效。
意味著對一個Builder 來說,真正的Block Anction 實際上等於
真實區塊拍賣 = 區塊拍賣 – 區塊交付延遲 – 區塊模擬延遲。
ultralmoney 給出的數據是區塊傳播的延遲是10~100ms 的,模擬執行是100~200ms,
而Optimistic Relay 採用的方式則是通過去掉Block Simulation 來增加Real Block Auction( 異步執行), 這樣以來發送給Optimistic Relay 的Builder 就會比發送給普通Relay 的Builder 更有優勢,因為他們可以更晚的發送區塊

但是去掉Block simulation 階段之後,實際上Relay 不能保證區塊的有效性了,所以它會要求Builder 需要在Relay 這裡質押一筆押金來避免Builder 故意製造無效區塊。
不過這也會帶來一些壞處:
1)當所有relay 都切換成Optimistic Relays 的時候,Builder 需要在多個relay 那裡質押押金,而這又很容易讓Relay 更加中心化
2) 對於builder 來說,因為需要繳納押金,所以多了一部分額外的運營成本
以上屬於已經實現了的優化,以下屬於在Relay 未來還可以進行的優化
@ultrasoundmoney 也提出了繼續優化Relay 工作了流的想法:
減少區塊傳播的延遲
實現方式:
Builder 先給Relay 發送Block Header 和Block Bid,Relay 接收到Block Header 之後Bid 就生效了
然後Block Body(txs) 異步接收,這樣可以進一步提高Builder 的Real Auction Time
這會在EIP4844 引入Blob 數據之後給Builder 帶來更大的競爭優勢,因為那個時候的大區塊顯然回帶來更大的區塊傳播延遲。
三、Optimistic Relay 的數據表現
在過去14 天中Ultra Sound Relay 已經是最大市場佔有率的Relay 了(28.2%)

在Ultral Sound Relay 這里大部分採用Opmistic Submission 的Block 最終贏得了Auction.

除了Ultra Sound Relay 之外其他Relay 並不支持Opmistic Submission,因此目前更多的區塊還是通過non-op 的方式提交的。

四結論
數據表明Optimistic Relay(Submission) 確實可以讓builder 獲得更好的競爭優勢,因為可以更晚的提交區塊從而構造出更高價值的區塊。
但是目前依舊只有Ultra Sound Relay 支持這種方式,我認為未來會有更多Optimistic Relay 的出現,並且Relay 會進一步的中心化,因為Builder 不可能在很多個Relay 那都質押一筆資金。我認為最完美的方式是Builder 可以給自己的Block 構造一個zk proof 來證明區塊,這樣Relay 就只需要輕鬆的驗證下證明的有效性,也沒有模擬執行的延遲和押金的需求。
但是如果採用這種形式的話,每個Builder 都得為自己構建的區塊生成zk proof,這個證明成本實際上並不小,在這個階段也並不現實。