警惕潛在風險:用Geth進行質押,可能會失去所有資產?
原文作者: Labrys
原文編譯:深潮 TechFlow
本文討論了以太坊網絡中執行客戶端 Nethermind 遇到的一個故障,導致所有使用 Nethermind 的驗證器(約佔網絡的 10% )離线。文章強調了 Geth 客戶端在以太坊網絡中佔據的超多數地位以及由此帶來的潛在風險。盡管 Geth 是穩定且可靠的客戶端,但如果出現嚴重故障,由於其在網絡中的普遍使用,可能對整個網絡造成重大影響。文章呼籲社區重視執行客戶端的多樣性,以降低網絡面臨的集中化風險。
介紹
本周,以太坊網絡的一個執行客戶端 Nethermind 經歷了一個故障,導致所有運行 Nethermind 的驗證器(約佔網絡的 10% )離线。
這是一個較小的事件,因為 Nethermind 是少數利益相關者運營的。以下是我自己運行 Nethermind 的驗證器的總余額的圖表。你可以看到在當地時間凌晨 4 點左右,當故障首次發生時,驗證器就離线了。團隊在大約 4 小時後發布了一個補丁,等我安裝好後,驗證器在當地時間上午 9 點左右恢復運行。在此期間,我的驗證器受到的懲罰與它獲得的獎勵相同。在同一天下午 1 點,驗證器的余額高於宕機前。總的來說,這是一個小的故障。
許多人錯誤地假設,當運行 Geth 時,如果發生類似的故障,懲罰會類似。這不是真的。這與 Geth 或 Geth 的構建方式無關,而與運行 Geth 的人數有關。
根據 ClientDiversity.org 的數據,以太坊上約 84% 的驗證器都在運行 Geth。現在這些持有者的辯護是,Geth 無疑是最好、最穩定的客戶端。雖然像 Nethermind 這樣的少數客戶端本周受到了故障和停機的困擾,但 Geth 自合並以來(甚至在此之前)一直運行良好。根據我自己的經驗,當從 Geth 轉換到少數派客戶端時,我發現驗證器需要更多的資源,遺漏的驗證也更多。
這篇文章並不是對 Geth 的攻擊。我非常尊重他們的團隊。不幸的是,由於 Geth 的廣泛使用,我們需要誠實地討論當 Geth 持有絕大多數質押時運行 Geth 的風險。
如果他們知道自己更有可能經歷更多錯過的證明和更多的停機時間,那么沒有人愿意離开 Geth,尤其是那些依賴於正常運行時間來宣傳最高收益的商業模式,比如專業的質押運營商。
截至去年 9 月,估計最大的運營商 Lido 在 Geth 上運行約 76% 的驗證器。
但我很高興我在運行一個少數的客戶端,即使我失去了一些額外的獎勵,不是因為我是利他主義者,為了網絡的去中心化犧牲個人利益,而是因為我知道我的 ETH 會因此免於大多數 bug 的影響。
如果 Geth 出現 bug,會發生什么?
這取決於 bug 本身。
因為超過三分之二的以太坊驗證器運行 Geth,任何 Geth 中的嚴重故障都會立即阻止鏈的最終確定。這並不意味着鏈停止或中斷。只要其他客戶端仍在運行,鏈就會繼續運行。大約 84% 的區塊將被遺漏,這意味着每隔約 75 秒才會提出一個新區塊,而不是約 12 秒的區塊時間。這些區塊將容易發生重組,因此當鏈再次完成時,這些區塊中包含的交易不保證仍然存在。這聽起來很糟糕,但讓我們記住,多年來以太坊在合並前從未有過最終確認的概念,比特幣今天也是如此——這就是為什么交易所讓你等待 6 個以上的區塊確認才能存款,以降低發生重組和損失資金的風險。
有些人可能還記得,以太坊在 2023 年 5 月就已經發生過這種情況,當時一些共識客戶端出現了 bug。在兩天時間裏,鏈條兩次停止終結,導致許多區塊被遺漏,一度只有 40% 的網絡仍在運行。網絡恢復後,大多數 DApp 用戶除了交易區塊確認速度稍慢外,沒有發現任何問題。
但驗證器會怎么樣呢?
非活動泄漏
當少數客戶端失敗時,懲罰是以與獲得它的速率相同的速率失去 ETH(正如您在我上面的驗證器圖中看到的),但如果 Geth 失敗,因為它會立即阻止鏈最終確定,所以懲罰會更加嚴厲。這種增加的懲罰被稱為非活動泄漏(The inactivity leak),當鏈停止最終確定 4 個周期(約 25 分鐘)或更長時間時,它會應用於離线驗證器。這種更嚴厲的懲罰旨在鼓勵離线驗證器盡快恢復在线,或者在最壞的情況下,銷毀離线驗證器的權益,直到他們的權益佔總權益的 1/3 以下,從而允許在线驗證器完成鏈的確認。
在非活動泄漏期間,驗證器僅需離线 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 鏈上的區塊將被棄用(這將引起自己的問題),但更大的問題是 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。
爭奪出口
這裏的一個重要點是,處於無效鏈上的驗證器不太可能坐視不管。他們仍然有選擇退出他們的權益的選項,如果他們不這么做,網絡將在他們的有效余額達到 16 ETH 時強制將他們驅逐出去。但這並不意味着他們的損失僅限於 16 ETH。
當你退出一個驗證器(即使是被強制退出)時,你會進入退出隊列,而你在退出隊列中時,你仍會流失 ETH!
我們知道,在最壞的情況下,需要約 40 天的時間,非活動泄漏才能允許有效鏈重新开始確認。那么退出隊列需要多長時間呢?
退出隊列有一個流失限制,限制每個時期可以退出網絡的驗證者數量(約 6.4 分鐘)。流失限制定義如下:
當前的退出率為每 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 不再佔據超主流地位。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。