警惕質押風險:如果你用 Geth 進行質押,真的可能會失去所有資產



文章強調了Geth客戶端在以太坊網路中佔據的超多數地位以及由此帶來的潛在風險。

撰文:Labrys

編譯:深潮TechFlow

本文討論了以太坊網路中執行客戶端Nethermind遇到的一個故障,導致所有使用Nethermind的驗證器(約佔網路的10%)離線。文章強調了Geth客戶端在以太坊網路中佔據的超多數地位以及由此帶來的潛在風險。儘管Geth是穩定且可靠的客戶端,但如果出現嚴重故障,由於其在網路中的普遍使用,可能對整個網路造成重大影響。文章呼籲社區重視執行客戶端的多樣性,以降低網路面臨的集中化風險。

介紹

本週,以太坊網路的一個執行客戶端Nethermind經歷了一個故障,導致所有運行Nethermind的驗證器(約佔網路的10%)離線。

這是一個較小的事件,因為Nethermind是少數利益相關者運營的。以下是我自己運行Nethermind的驗證器的總餘額的圖表。你可以看到在當地時間凌晨4點左右,當故障首次發生時,驗證器就離線了。團隊在大約4小時後發佈了一個補丁,等我安裝好後,驗證器在當地時間上午9點左右恢復運行。在此期間,我的驗證器受到的懲罰與它獲得的獎勵相同。在同一天下午1點,驗證器的餘額高於宕機前。總的來說,這是一個小的故障。

警惕質押風險:如果你用 Geth 進行質押,真的可能會失去所有資產插图1

許多人錯誤地假設,當運行Geth時,如果發生類似的故障,懲罰會類似。這不是真的。這與Geth或Geth的構建方式無關,而與運行Geth的人數有關。

根據ClientDiversity.org的數據,以太坊上約 84% 的驗證器都在運行 Geth。現在這些持有者的辯護是,Geth無疑是最好、最穩定的客戶端。雖然像Nethermind這樣的少數客戶端本週受到了故障和停機的困擾,但Geth自合併以來(甚至在此之前)一直運行良好。根據我自己的經驗,當從 Geth 轉換到少數派客戶端時,我發現驗證器需要更多的資源,遺漏的驗證也更多。

這篇文章並不是對Geth的攻擊。我非常尊重他們的團隊。不幸的是,由於Geth的廣泛使用,我們需要誠實地討論當 Geth 持有絕大多數質押時運行 Geth 的風險。

警惕質押風險:如果你用 Geth 進行質押,真的可能會失去所有資產插图3

如果他們知道自己更有可能經歷更多錯過的證明和更多的停機時間,那麼沒有人願意離開 Geth,尤其是那些依賴於正常運行時間來宣傳最高收益的商業模式,比如專業的質押運營商。

截至去年 9 月,估計最大的運營商 Lido 在 Geth 上運行約 76% 的驗證器。

警惕質押風險:如果你用 Geth 進行質押,真的可能會失去所有資產插图5

但我很高興我在運行一個少數的客戶端,即使我失去了一些額外的獎勵,不是因為我是利他主義者,為了網路的去中心化犧牲個人利益,而是因為我知道我的ETH會因此免於大多數bug的影響。

如果Geth出現bug,會發生什麼?

這取決於bug本身。

因為超過三分之二的以太坊驗證器運行Geth,任何Geth中的嚴重故障都會立即阻止鏈的最終確定。這並不意味著鏈停止或中斷。只要其他客戶端仍在運行,鏈就會繼續運行。大約84%的區塊將被遺漏,這意味著每隔約 75 秒才會提出一個新區塊,而不是約 12 秒的區塊時間。這些區塊將容易發生重組,因此當鏈再次完成時,這些區塊中包含的交易不保證仍然存在。這聽起來很糟糕,但讓我們記住,多年來以太坊在合併前從未有過最終確認的概念,位元幣今天也是如此——這就是為什麼交易所讓你等待 6 個以上的區塊確認才能存款,以降低發生重組和損失資金的風險。

有些人可能還記得,以太坊在 2023 年 5 月就已經發生過這種情況,當時一些共識客戶端出現了bug。在兩天時間裡,鏈條兩次停止終結,導致許多區塊被遺漏,一度只有 40% 的網路仍在運行。網路恢復後,大多數 DApp 用戶除了交易區塊確認速度稍慢外,沒有發現任何問題。

警惕質押風險:如果你用 Geth 進行質押,真的可能會失去所有資產插图7

但驗證器會怎麼樣呢?

非活動洩漏

當少數客戶端失敗時,懲罰是以與獲得它的速率相同的速率失去ETH(正如您在我上面的驗證器圖中看到的),但如果Geth失敗,因為它會立即阻止鏈最終確定,所以懲罰會更加嚴厲。這種增加的懲罰被稱為非活動洩漏(The inactivity leak),當鏈停止最終確定 4 個週期(約 25 分鐘)或更長時間時,它會應用於離線驗證器。這種更嚴厲的懲罰旨在鼓勵離線驗證器儘快恢復在線,或者在最壞的情況下,銷毀離線驗證器的權益,直到他們的權益佔總權益的1/3以下,從而允許在線驗證器完成鏈的確認。

警惕質押風險:如果你用 Geth 進行質押,真的可能會失去所有資產插图9

在非活動洩漏期間,驗證器僅需離線2天就會損失其權益的0.6%,或相當於2個月的權益獎勵!

僅需離線5天,就會消耗掉整整一年的質押獎勵(3.5%)!這意味著需要超過 2 年多的質押才能恢復驗證者在事件發生前擁有的餘額。

在離線1周內,10%的權益,或3年的獎勵,將會丟失。在大約20天內,50%的權益將會丟失,在大約40天內,90%的權益將會丟失。

相比之下,由於少數客戶端故障而離線的驗證器在40天內僅會損失其權益的0.4%。

不活躍的懲罰將持續多久?

這取決於bug。

如果bug能被修補,那麼懲罰將持續到 Geth 團隊修補bug並將其應用到您的驗證器所需的時間(或切換到其他執行客戶端所需的時間)。

實際上,我們預計這個問題可以在幾個小時或最多幾天內得到解決。如果修復bug所需的時間與最近的Nethermind事件相同,驗證器將損失0.004%的權益,這不是什麼大問題。

如果bug導致驗證器產生無效區塊,並且Geth將其視為有效並對其進行認證,情況就會變得糟糕。這將導致鏈分叉。鏈將分成兩個分支,一個包含無效區塊的分支(Geth鏈),另一個忽略無效區塊的分支(非Geth鏈)。運行Geth的驗證器將認為這兩個分支都是有效的,因此決定在權重最重的鏈上構建。84%的驗證器將其權益認證給Geth鏈,僅有16%的驗證器將其權益認證給非Geth鏈。因此,Geth驗證器將選擇Geth鏈作為權重最重的鏈,並繼續在其上構建。

警惕質押風險:如果你用 Geth 進行質押,真的可能會失去所有資產插图11

當然,一旦所有這些問題解決了,Geth鏈上的區塊將被棄用(這將引起自己的問題),但更大的問題是Geth鏈將擁有足夠的權益(大於2/3)來確認無效鏈。

一旦Geth鏈最終確定,如果一個驗證器對Geth鏈進行了認證,它就不能參與非Geth鏈的建設(直到非Geth鏈也被確認),否則會被削減。本質上,運行Geth的驗證器已經承諾使用無效鏈,並被鎖定在該鏈上,直到非Geth鏈被確認。這正是許多人誤解的關鍵風險所在。

由於Geth驗證器被困在無效鏈上,他們在非Geth鏈上被視為不活躍,並將遭受非活動洩漏的損失。沒有任何軟體更新或bug修補可以拯救這些驗證器。他們將被耗盡,直到他們的權益佔網絡的1/3以下,從而讓非Geth鏈得以確認。

目前網路上有 28,976,695 ETH 處於質押狀態。其中84%(約2400萬枚ETH)可歸因於運行Geth的驗證器,16%(約500萬枚ETH)歸於不運行Geth的驗證器。為了讓非Geth鏈得以確認,運行Geth的驗證器需要將其權益銷毀,直到其所佔的剩餘總權益少於1/3。這意味著需要從這些驗證器中銷毀約2150萬枚 ETH(約佔總權益的90%),將Geth權益減少到約25萬枚 ETH,少於總量的1/3(250萬枚+ 500萬枚ETH)。非Geth驗證器控制的約500萬枚ETH現在將代表多於2/3的權益,使他們能夠確認鏈。

這將是一個極其痛苦的過程,大約需要40天時間來完成。它將導致所有 ETH 的總供應量減少約 18%,,使總供應量低於1 億枚ETH。

警惕質押風險:如果你用 Geth 進行質押,真的可能會失去所有資產插图13

爭奪出口

這裡的一個重要點是,處於無效鏈上的驗證器不太可能坐視不管。他們仍然有選擇退出他們的權益的選項,如果他們不這麼做,網路將在他們的有效餘額達到16 ETH時強制將他們驅逐出去。但這並不意味著他們的損失僅限於16 ETH。

當你退出一個驗證器(即使是被強制退出)時,你會進入退出隊列,而你在退出隊列中時,你仍會流失ETH!

我們知道,在最壞的情況下,需要約40天的時間,非活動洩漏才能允許有效鏈重新開始確認。那麼退出隊列需要多長時間呢?

退出隊列有一個流失限制,限制每個時期可以退出網路的驗證者數量(約 6.4 分鐘)。流失限制定義如下:

警惕質押風險:如果你用 Geth 進行質押,真的可能會失去所有資產插图15

當前的退出率為每6.4分鐘退出13個驗證器,如果每個運行Geth的驗證器都想退出,至少需要約260天才能讓所有驗證器退出。鑑於90%的權益將在約40天內被銷毀,大多數驗證器的餘額將在他們能夠退出鏈之前就被耗盡。

最初2%的Geth驗證器發起退出的將在前5天內退出,損失的最大值約為1年的質押獎勵。

你需要成為前3%的退出驗證器,才能將損失控制在你權益的10%以下。

只有前8%的退出驗證器才能將損失控制在其權益的50%以下。此時,任何未手動發起退出的人將被強制退出,並添加到退出隊列中,有效餘額為16 ETH。

在40天后,當他們的90%權益被銷毀時,超過85%的驗證器仍將在隊列中。

退出的能力將無法拯救你,你的下行風險不僅限於你被強制退出的損失(16 ETH)。

那麼削減呢?

一些人錯誤地認為,如果出現bug,運行Geth的質押者不僅會遭受非活動洩漏,還會被削減。這是錯誤的。

削減懲罰只適用於雙重簽名事件,這完全由共識客戶端控制。Geth中的bug不應該導致共識客戶端犯下可削減的錯誤。Geth產生無效區塊不是可削減的錯誤。

只有非活動洩漏的懲罰適用於Geth的bug。

你應該怎麼做?

當今運行Geth的質押者可能並不完全瞭解運行絕對多數執行客戶端相關的風險。許多人錯誤地假設,一旦出現bug,將在幾小時內發佈補丁解決問題,並且在此過程中損失的以太幣很少。

許多人並不瞭解,證明一個無效區塊的風險會讓他們被鎖定在一個無效的最終鏈中,幾乎可以肯定他們大部分ETH將被銷毀。這是一個有可能成為現實的真實風險。

質押以太坊並非無風險收益。你是否會向最大潛在收益為每年 3.5% 的工具投資至少 75000 美元?但有可能產生 100%的損失?可能不會,但這正是今天84%的以太坊質押者所做的。

通過轉向少數客戶端(假設相同的bug不會在多個客戶端中出現),你可以將損失最大限制在年化3.5%。

有了這些知識,任何人仍在運行Geth看起來都是瘋狂的。我只能假設那些運行Geth的人並沒有完全理解這個風險。

如果你持有LST(例如stETH、cbETH等),並且LST在其驗證器上運行Geth,請理解你的以太坊處於風險中,並考慮取消質押或切換到另一個LST,直到Geth不再佔據超主流地位。

聯系郵箱:0xniumao@gmail.com