如果提議者提議區塊的時間晚了,會對見證有何影響?

原文標題:《On Attestations, Block Propagation, and Timing Games》

撰文:Nero_eth

編譯:Tia,Techub News

如今,提議者的時序賽局已經很常見了,很多研究也都在分析這個現象。

本篇文章將帶大家了解提議者時序賽局的演變,並分析其對見證者的影響。透過Lido、Coinbase 和Kiln 的節點營運商的案例研究,我們將深入探討區塊提案的時序博弈及其對以太坊共識的影響。

截至2024 年8 月,區塊建構市場在很大程度上被外包處理,其中約90% 的區塊是由mevboost 區塊建構者建構的。其中, Titan Builder 和Beaverbuild 建構了大約80% 的區塊。

Kiln 是推動時序博弈的主要實體之一,在單一slot 內,其將區塊提案推遲了3-3.5 秒。

在目前的mevboost 環境中,區塊傳播主要透過中繼器完成。雖然提議者在從中繼器接收到區塊後仍會傳播它,但中繼器通常具有更好的網路連接,因此可以更快地完成傳播。然而,時序仍然由提議者控制,他們可以延遲其“getHeader”調用以進行時序博弈。

這張圖表展示了時序博弈的演變。我們可以看到,隨著時間的推移,Kiln 驗證者提議的區塊在slot 內是相對滯後的。

如果提議者提議區塊的時間晚了,會對見證有何影響?

這會對網路產生影響:由Kiln 提議者提出的區塊,錯過/錯誤的區塊頭投票率顯著更高。

如果提議者提議區塊的時間晚了,會對見證有何影響?

先前的分析顯示,等待時間越長,錯過區塊頭投票的預期數量越高(「80% 的見證發生在slot 中的第5 秒」)。 Kiln 在非常晚的時候提議區塊,導致一些見證者錯過它們,並且反而投票給父區塊。每個slot 大約會分配32,000 個驗證者,這將導致約10% 錯誤的區塊投票率。

讓我們來看看三個大型節點運營商的見證行為,並比較它們如何對不同時間內提議的區塊做出反應。下圖顯示了slot 內正確及時的區塊頭投票分佈秒數。

如果提議者提議區塊的時間晚了,會對見證有何影響?

對於早期區塊,我們觀察到Lido 和Coinbase 在投票模式上呈現出一種獨特的「U」形,這可能是由於不同的地理位置或客戶端軟體造成的。相比之下, Kiln 顯示出一個明顯的峰值,比Coinbase 和Lido 的第一個峰值略有滯後。然而,對於較晚的區塊,Kiln 的見證者也顯示出「U」形模式。

當區塊在slot 中第4 秒首次出現時(由於是P2P 網絡,每個節點接收到區塊的時間不同),Lido 見證者比Kiln 或Coinbase 見證者提前最多2 秒進行見證。這種模式並不一定表示Kiln 在執行「個人策略」。相反,這可能歸因於客戶端的不同或地理位置的不同。

到底是誰影響了誰?

在下圖中,我們比較了不同提議者下節點業者的表現。例如,y=1 上方的綠色部分錶明,當Kiln 作為提議者提議區塊時,Lido 見證者將更容易錯過區塊頭投票。然而,當Lido 作為提議者時,Lido 見證者在見證區塊最及時。虛線1 表示所有實體作為提議者時錯過區塊頭投票的平均份額。低於1 的長條圖意味著與平均值相比,特定實體與各自提議者聯合時錯過的區塊頭投票較少。

值得注意的是,節點運營商在處理其自己提議的區塊時表現最佳。

快速總結一下我們看到的內容:

  • 當其他業者作為提議者提議區塊時,大多數業者表現都相對穩定。

  • 在Kiln 作為提議者提議區塊時,Figment、Lido、Kraken 和EtherFi 表現較差。

  • 在Kiln 作為提議者提議區塊時,只有Kiln 和Binance 表現更好。

Kiln 作為見證者表現得很好。早期分析表明,在涉及高效能驗證者時,Kiln 表現優異。有關Kiln 見證表現的更多詳細信息,請參閱這篇分析。

但Kiln 引發了壓力。現在我們知道,Kiln 提議的區塊給其他見證者帶來了壓力,但並未給Kiln 的見證者帶來壓力。

目前,很難對「How」作出解釋。一個可能的解釋是Kiln 的驗證者高度集中,共址運行,或具有非常密集的對等連接。另一個原因可能是透過客製化的對等網路/私人網路或透過其他額外的通訊層連接它們的驗證者進行協調行為。後一種被認為更具中心化特性,因為它更強調規模經濟。

當我們觀查Lido 和Coinbase 在各自作為提議者提議區塊時的(正確且及時的)見證時間時,我們可以觀察到類似的模式。

如果提議者提議區塊的時間晚了,會對見證有何影響?

有趣的是,Kiln 開發了一種從3.8 秒到6.1 秒的「U」形分佈用於它們自己的晚期區塊,而Lido在4.2秒出現一個峰值,Coinbase在slot 中的第4秒開始出現一個高原,並在第6秒出現一個小的峰值。

防止自己的提議的區塊被重組

讓我們將注意力轉向被重組的區塊。從節點運營商的角度來看,一個策略可能是永遠不要為重組自己的區塊投票。簡單地說,「如果提議者是我,永遠不要將父區塊投票為區塊頭」。

在接下來的部分中,我將使用“本地區塊”來代表“自己提議的區塊”。

下圖是為重組區塊投票的見證者與為父區塊投票的見證者的百分比。紅色部分顯示了該實體投票給重組區塊的見證者的百分比。

如果提議者提議區塊的時間晚了,會對見證有何影響?

Kiln 表現出了異常行為。當大多數節點運營商的見證者誠實地為正確的區塊頭投票而不是本地區塊時,Kiln 的見證者並不這麼做。超過10% 的Kiln 見證者試圖透過為本地區塊投票來將其保持在鏈上。如果採用這樣的策略,它們可能會因為為錯誤的區塊頭投票而產生損失。然而,這些策略通常在以太坊社群中受到鄙視:「不要玩弄共識」。

該圖表使用了365天的數據。因此,如果在過去一年內實施了一些複雜的策略,紅色部分的比例會相應較小。

但我們如何看待其他層面的協作?

關於見證的協作,作為一個社區,我們似乎接受了運行在同一節點上的驗證者為相同的checkpoints 投票的事實。

我們可能不希望採取任何跨越實體機器邊界的努力來提高驗證者之間的協作。這應當是每個人都可以建造的。這種協作可能有不同的形式:

  • 等級1 – 回退機制與靜態對等連接:為多個實體機器提供一個中央備用/備份節點。這也可以是一個斷路器,一些特別容錯的機器,作為資訊的私人中繼器。具有改進對等連接、私人網路或類似設定的設定也可能屬於此類。

  • 等級2 – 如果-否則規則:在某些slot 中等待更長時間的硬編碼規則。那些將安裝在多個實體機器上,允許它們基於預定義規則「協作」。

  • 等級3 – 殭屍網路:有一個中心化的預言機與所有驗證者通信,並提供投票的checkpoints 以及它們應在何時發布的時間戳。

在我看來,後兩種形式的協作(級別2和3)是有問題的,節點運營商應承擔責任。最後,對於涉及靜態對等連接和私人網路的策略可能存在灰色地帶。

這樣的設定可能會被用於運行(惡意)策略,例如:

  • 確保跨多個實體機器從不對不同的checkpoints 投票。

  • 確保永遠不會對重組自己提議的區塊投票。

  • 基於連續的提議者進行協作(誠實重組客戶端(y/n))。

  • 審查某方的見證。

  • 不為某方的區塊投票。

  • 其他。

在討論協作時,區分兩種類型是重要的:

  • 協作行為發生在從同一台實體機器運作的驗證者之間。

  • 協作行為源自於執行相同的修改後的客戶端軟體或依賴相同的中心化預言機。

反對複雜協作驗證者行為的潛在解決方案是EIP-7716:反相關處罰,該提案建議根據驗證者之間的相關性來調整處罰。

Total
0
Shares
Related Posts