imToken Labs:以太坊網絡Finalize延遲事件分析報告

avatar
imToken
2年前
本文約1470字,閱讀全文需要約2分鐘
以太坊生態還需在以下方面持續投入:增加客戶端多樣性,優化對網絡狀態的實時監控與預警,深度用戶教育等。

概述

概述

一級標題

事件及背景

一級標題

第一次一級標題

imToken Labs:以太坊網絡Finalize延遲事件分析報告

第二次一級標題

imToken Labs:以太坊網絡Finalize延遲事件分析報告

事件及背景

通常情況下,以太坊PoS 共識網絡狀態會在2 個Epoch 被敲定(Finalized),而上週出現了兩次Epoch 敲定的延遲。

第一次

imToken Labs:以太坊網絡Finalize延遲事件分析報告

發生在5 月11 日,Epoch 的敲定被延遲了3 個Epoch,約20 分鐘。MIN_EpochS_TO_INACTIVITY_PENALTY第二次Inactivity leak發生在5 月12 日,Epoch 的敲定被延遲了8 個Epoch,約51 分鐘。

的處理機制。

imToken Labs:以太坊網絡Finalize延遲事件分析報告

懲罰離線的Validator,削減其質押資金,

罰沒了約28 個ETH

取消Attestation 的獎勵,導致

原因分析

imToken 自研的Safe Head 服務會基於實時的以太坊共識層數據,計算出安全的區塊用於交易確認,在保證用戶交易安全的前提下,縮短交易確認的時長。正常情況下,imToken 的Safe Head 算法返回的塊高(如上圖黃色),會非常貼近最新的區塊高度(綠色),從而提高用戶體驗。

更多關於Safe Head 機制的資料:

以太坊:Safe Head 機制介紹(一)

原因分析

一級標題

  • 原因分析

  • 造成上述事件的直接原因是某幾種以太坊共識層客戶端節點負載過高,使得Validator 宕機離線,從而無法正常進行共識投票。經過分析,這些節點負載過高的原因是:

本來此類問題可以通過基於見證指向區塊的緩存來解決,然而由於Validator 的規模增長以及大量此類attestation 的出現,導致出問題的客戶端實現的緩存被擊穿,節點不得不消耗大量資源重新計算信標鏈狀態。

一級標題

共識層客戶端Teku 以及Prysm 目前推出了patch 版本以解決該問題。具體而言,patch 版本的客戶端實現會過濾掉這些陳舊的見證,即當滿足下列條件,忽略該見證:

見證指向一個陳舊的Slot

一級標題

二級標題

一級標題

以太坊設計優勢在此次事件中,以太坊保證可用性仍持續產生區塊並處理交易,而僅推遲Epoch 敲定的關鍵在於兩點:二級標題

二級標題

以太坊客戶端的多樣性

二級標題

一級標題

二級標題

一級標題

圖片描述

imToken Labs:以太坊網絡Finalize延遲事件分析報告

一級標題https://clientdiversity.org/#distribution

二級標題

二級標題

  • 以太坊多客戶端的挑戰

  • 圖片描述

    可以看到,以太坊客戶端多樣性仍需繼續推廣和宣傳。可以想像,如果客戶端實現足夠多樣,使得Prysm 以及Teku 的佔比小於⅓,那麼這次事件甚至不會發生(⅔ 客戶端正常運作足以敲定Epoch)。另外,當前執行層的客戶端集中在Geth,佔比高達61% 。這實際上存在著潛在風險:如果Geth 運作不當,以太坊會受到很大的影響。

    二級標題

除了以太坊客戶端多樣性需要進一步努力外,以太坊客戶端切換也是此次事件暴露的一個痛點:當某個客戶端實現出問題時,Validator 如何切換到正常的客戶端實現之上。此過程涉及:

新舊客戶端分別對分叉兩側的Checkpoint 進行投票,從而被Slash二級標題

以太坊共識的監控

二級標題

需要類似Safe Head 類似的服務持續監控以太坊PoS 網絡的實時狀態,提前發現並預警該類事件,而非等到Epoch 無法按預期敲定才得知網絡狀態異常。相關的最新研究可見

二級標題

  • Layer 1 ->二級標題

  • 以太坊共識算法的科普

  • Oracle 鏈上報價存在被回滾的風險,因此依賴其的高價值服務要適當暫停。

  • 總結

總結

參考鏈接

參考鏈接

原創文章,作者:imToken。轉載/內容合作/尋求報導請聯系 report@odaily.email;違規轉載法律必究。

ODAILY提醒,請廣大讀者樹立正確的貨幣觀念和投資理念,理性看待區塊鏈,切實提高風險意識; 對發現的違法犯罪線索,可積極向有關部門舉報反映。

推薦閱讀
星球精選