買以太坊 買以太坊
Ctrl+D 買以太坊
ads

以太坊:以太坊網絡 Finalize 延遲事件分析報告_以太坊硬幣可以賣錢么

Author:

Time:1900/1/1 0:00:00

概述

5 月 11、12 日連續兩天晚上,以太坊共識層短暫異常,imToken 分析該異常主要某幾種以太坊共識層客戶端節點負載過高,使得 Validator 宕機離線,直接導致 Epoch 投票無法達到 2/3,共識層無法確認最終性,但短時間過后以太坊網絡自我恢復正常,imToken 認為這表明以太坊 PoS 共識算法具備韌性和自我修復的能力。

事件及背景

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

第一次發生在 5 月 11 日,Epoch 的敲定被延遲了 3 個 Epoch,約 20 分鐘。

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

在事件發生期間,以太坊網絡仍然持續產生區塊并處理交易。然而,由于 Validator(驗證節點)的投票率不足,Epoch 無法敲定(即 Epoch 得到以太坊 PoS 網絡共識級別安全保證)。Epoch 未能敲定意味著在絕大多數 Validator 作惡并出現分叉的情況下,epcoh 可能被回滾,從而導致交易被回滾。

V神:合并完成,這是以太坊生態系統的重要時刻:金色財經報道,以太坊創始人Vitalik Buterin(V神)在社交平臺表示,以太坊合并完成!這是以太坊生態系統的重要時刻。每個幫助實現合并的人都應該感到非常自豪。[2022/9/15 6:58:29]

實際上,在事件發生的期間,以太坊網絡并未出現分叉,而 Validator 也未進行惡意投票,只因大量 Validator 離線導致投票率不足,從而使得 Epoch 在期間無法被敲定。

經過觀察,離線的 Validator 出現 CPU 過載的異常情況,被認為是 Validator 離線的直接原因。

在第二次事件中,Epoch 敲定被延遲了 8 個 Epoch,由于敲定延遲大于MIN_EpochS_TO_INACTIVITY_PENALTY (=4) 從而觸發了以太坊共識算法 Inactivity leak 的處理機制。

· 懲罰離線的 Validator,削減其質押資金,罰沒了約 28 個 ETH。

· 取消 Attestation 的獎勵,導致約 50 個 ETH 未被發行。

· 該機制保證在線 Validator 最終能掌握以太坊總質押資金的  ?,從而使得網絡狀態最終能被敲定

比特幣期貨本周累漲5.6% 以太坊期貨本周累漲超15%:金色財經報道,行情顯示,周五(8月12日)紐約尾盤,CME比特幣期貨BTC主力合約報24275美元,較周四紐約尾盤漲0.12%,盤中交投于23600-24315美元區間,本周累漲約5.60%。

CME以太幣期貨DCR主力合約報1941.50美元,較周四漲1.89%,盤中交投于1857.50-1941.50美元區間,本周累漲15.15%。[2022/8/13 12:23:04]

imToken 的節點服務也偵測到了此次事件,通過實時監控以太坊共識層 Validator 投票的情況,從而在 Epoch 未能正常敲定前,提前預警以太坊共識網絡的異常。下圖是第一次事件發生時的節點狀態。

PoW 機制下,交易的成功是認定交易在多少連續區塊后大概率不會被回滾,PoS 則是以 Safe Head 返回的塊高作為交易成功的判定。而目前的規范中則是以 Justified Checkpoint 作為 Safe Head 的狀態認定,因此以前一 Epoch 的狀態來看,可能存在有 6.4 分鐘之久的判定延遲,這對用戶而言是很糟糕的體驗。

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

以太坊2.0多客戶端測試網Schlesi挖出首個測試區塊:以太坊2.0多客戶端測試網Schlesi今天挖出首個測試區塊。此前消息,Schles是繼最近Eth2.0客戶端團隊Prysmatic Labs發布首個具有Eth2.0階段0主網配置的單客戶端測試網Topaz之后,以太坊社區首次迎來的一個多客戶端測試網。據Schlesi的GitHub文檔顯示,當前Schlesi多客戶端測試網已經支持了Lighthouse和Prysm這兩個Eth2.0客戶端,其他Eth2.0客戶端(Cortex、Lodestar、Nimbus、Teku、Trinity)將逐步添加進來。[2020/4/30]

原因分析

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

當收到指向陳舊區塊的見證(Attestation)時,節點需要重新計算信標鏈狀態以驗證這些見證,而該過程需要消耗大量的 CPU 以及內存資源。

當同時收到大量指向陳舊區塊的見證時,節點的 CPU 以及內存資源被耗光,從而導致這些 Validator 宕機離線。

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

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

動態 | 昨日以太坊共計發生555318筆鏈上交易:據Tokenview數據顯示,昨日以太坊共計發生555318筆鏈上交易,今日以太坊算力148.61 TH/s,單筆交易手續費均值為0.0683美元。目前以太坊交易均值為5.068美元,單個區塊交易金額中位數為288.64 ETH。[2019/1/31]

· 見證指向一個陳舊的 Slot

· 見證指向一個節點從未見過的 Checkpoint

然而,我們仍需持續觀察以太坊主網敲定的情況以確認 patch 的有效性。

共識層客戶端 Teku 以及 Prysm 的 patch 版本:

· Prysm:v4.0.3-hotfix

· Teku:v23.5.0

以太坊設計優勢

在此次事件中,以太坊保證可用性仍持續產生區塊并處理交易,而僅推遲 Epoch 敲定的關鍵在于兩點:

1. 以太坊客戶端的多樣性

2. Gasper 算法的設計

以太坊客戶端的多樣性

在此次事件中,雖然共識層客戶端 Teku 以及 Prysm 的實現出現了問題,但不影響其他共識層客戶端的正常運作。像是 Lighthouse 客戶端本次并不受影響,由于不同客戶端在實現的設計上并不相同,因此仍有 Validator 正常在運作。

巴西政府正設法使用以太坊區塊鏈提高效率:巴西政府正設法將以太坊區塊鏈應用在目前效率較低的選民請愿工作上,目前在巴西,一些重要的決定需要1.45億選民進行投票達成共識,傳統處理手段效率較低。[2018/1/8]

以太坊客戶端的多樣性保證了:即使某些客戶端出現問題(甚至導致 Epoch 不能敲定),也不會影響正常的客戶端產生區塊并處理交易,使得以太坊的可用性得到保持。

以太坊 Gasper 共識算法對可用性的設計

保證以太坊的可用性是以太坊共識算法 Gasper 的設計出發點之一,其把以太坊區塊生產與敲定分離。因此,即使區塊敲定受阻,區塊的產生并不會隨之終止。考慮到大部分情況下,區塊敲定最終會恢復(產生的區塊最終仍會被敲定),那么對用戶影響其實會很低。對比其他 BFT 的共識算法:若區塊敲定失敗,共識節點會停止產出下個區塊。從而,導致期間整個區塊鏈不可用,即俗稱的「區塊鏈掛了」。

另外,第二次事件還觸發到了 Inactivity Leak 的機制,其主要是為了保證以太坊在極端情況(大量 Validator 長時間離線)下仍能重新敲定區塊。

經驗與啟示

以太坊多客戶端的挑戰

當前,以太坊客戶端多樣性現狀如下圖所示:

來源: https://clientdiversity.org/#distribution

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

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

· 把出問題客戶端的 Validation key 安全地遷移到正常的客戶端之上

· 由于以太坊共識有 Slash 的規則,需要保證舊客戶端與新客戶端的行為的一致性而不被 Slash。例如:

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

o 新舊客戶端在同一個 Slot 產出不同的區塊,從而被 Slash

以太坊共識的監控

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

以太坊共識算法的科普

這次事件暴露了科普以太坊 PoS 共識機制的必要性。在此次事件中,很多用戶誤以為「以太坊掛了」,從而造成不必要的恐慌。然而,實際上,以太坊網絡持續產生區塊并處理交易。以太坊共識層和執行層的組合為以太坊交易交易確認帶來雙重保障,在共識層 Epoch 無法敲定的情況下,執行層的區塊處理并不受影響,且 Epoch 敲定的異常狀況也在以太坊共識算法中有相應處理設計。面向用戶的區塊鏈知識科普仍然是從業者們需要持續努力的方向。

對以太坊應用的啟示

雖然以太坊網絡足夠健壯,但是偶爾的不穩定會對應用有著一定的影響。同時,應用要正確處理這些不穩定的場景。

· Layer1 -> Layer2 的存款時間會變長。Layer2 在 mint 的時候,一個重要前提是需要保證 L1 存款交易不會被回滾。因此,當以太坊網絡 Epoch 敲定被推遲的情況下,L1->L2 的存款時間也會相應變長。

· 類似的,交易所也需要防止鏈上充值交易被回滾的情況,因此其充值時間也會相應變長。

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

· 在此次事件中,Uniswap 不顯示余額、只能買入不可賣出,而 dYdX 暫停了存款。

總結

在這次事件中,我們可以看到以太坊 PoS 共識算法的韌性與自我修復的能力,也看到客戶端很快在發生事故后,即時響應與修正錯誤。對以太坊整個生態而言,還需在以下方面持續投入:增加客戶端多樣性,優化對網絡狀態的實時監控與預警,深度用戶教育(不僅面向普通用戶,也需面向從業者),生態參與者在網絡異常時的緊急預案準備。

參考鏈接

· Finality issue updates May 2023

· https://twitter.com/robplust/status/1657044364382846978

· https://twitter.com/superphiz/status/1656780594326405121

· https://twitter.com/terencechain/status/1657021042110631936

imToken

企業專欄

閱讀更多

金色薦讀

金色財經 善歐巴

迪新財訊

Chainlink預言機

區塊律動BlockBeats

白話區塊鏈

金色早8點

Odaily星球日報

MarsBit

Arcane Labs

Tags:以太坊BSPNBSPOC以太坊硬幣可以賣錢么BSPAY價格NBS幣Pocket Bomb

火幣APP下載
FEX:目前流行的三大BRC20和DeFi 項目盤點_BRC

作者:Seth;來源:作者推特@SethCryptoSerch最近在研究 BRC20 上面比較火的 DeFi 類項目,雖然目前都沒有實現,但是確實都提出了概念,并且都在有序進行中.

1900/1/1 0:00:00
DAO:DAO 為什么需要法律包裝_MLAND

DAO 作為一種適合 Web3 的全新人類組織形式,在經歷了前期百花齊放的發展之后,為愛發電的大部分 DAO 友們熱情不再,各種以 DAO 名義拉起的“組織”大多在前期大起之后不了了之.

1900/1/1 0:00:00
SPA:一文梳理 ParaSpace「內斗」大戲始末_ENEX.SPACE

5月10日下午,多位 KOL 紛紛發文預警 NFT 借貸協議 ParaSpace 團隊內部出現矛盾,并建議用戶盡快撤資,此事在社區內速發酵.

1900/1/1 0:00:00
BRC:BRC-20炒作終將落幕 比特幣擴容迫在眉睫_brc20幣sats幣怎么樣

來源:Bankless 編譯:比推BitpushNews Mary LiuMemecoin (模因幣)熱潮正在蔓延!一種稱為 BRC-20 的新代幣類型吸引了開發人員.

1900/1/1 0:00:00
ETH:Crypto匿名做空大師GCR的30條交易心得_nbs幣前景

原文作者:VIKTOR  原文編譯:Peng SUN,Foresight NewsGCR 是一個匿名交易員,他在 2021 年牛市爆紅,因為其對交易走勢似乎了如指掌.

1900/1/1 0:00:00
ETH:金色早報 | 趙長鵬正尋求途徑減持幣安美國的股份_以太坊最新價格行情分析

▌趙長鵬正尋求途徑減持幣安美國的股份據知情人士透露,加密貨幣交易所幣安美國(Binance.US)創始人、大股東兼董事長趙長鵬一直在尋求減持該公司股份的方法.

1900/1/1 0:00:00
ads