以太坊有多個可互操作的客戶端,由獨立團隊用不同的語言開發和維護。這是一項重大成就,通過將漏洞或攻擊的影響限制在運行受影響客戶端的網絡部分,可以為網絡提供彈性。然而,只有當所有用戶大致均勻地分布在各個可用的客戶端上時,才能實現這種優勢。目前,絕大多數以太坊節點運行單個客戶端,給網絡帶來不必要的風險。
以太坊將很快經歷自成立以來其架構最重要的一次升級——從工作量證明 (PoW) 到權益證明 (PoS) 的合并。這將從根本上改變該網絡對區塊鏈的真實狀態達成共識的方式,并維護網絡安全。這種新架構將帶來安全性、可擴展性和可持續性方面的好處,但同時也放大了與這種由單個客戶端占主導地位有關的風險。這篇文章將探討其中的緣由...
信標鏈是一條 PoS 區塊鏈。它目前與以太坊主網并行運行,但兩者很快將“合并”在一起。合并之后,現有的以太坊主網客戶端 (“執行客戶端”) 將繼續托管以太坊虛擬機 (EVM),并驗證和廣播交易,但將停止參與工作量證明 (PoW) 挖礦,并放棄對區塊鏈鏈頭 (頂端區塊) 達成共識的責任。相反,這種共識將成為“共識客戶端”的責任,“共識客戶端”負責把來自“執行客戶端”的交易與共識所需的信息一起打包進“信標區塊”中,這些信標區塊就構成了信標鏈。“礦工”將被“驗證者” (validators) 取代,這些驗證者需要將 ETH 存入某個以太坊智能合約中 (這一過程稱為“質押”(staking))。驗證者質押的 ETH 將作為抵押品,以激勵他們正確地完成驗證工作。不履行驗證工作 (比如因為離線) 或進行惡意行為的驗證者,將導致其質押的 ETH 的一部分被銷毀。另一方面,如果驗證者行為得當,那么將會獲得 ETH 獎勵。
1. 驗證者的職責
對于驗證者來說,良好的行為意味著參與驗證從其他驗證者那里接收到的信標區塊,并對區塊鏈鏈頭進行投票。如果驗證者接收到的區塊是有效的,那么驗證者將對區塊進行“證明”(attest),實際上就是投票支持將該區塊添加到區塊鏈中。一個節點將不定期地被要求提議一個新區塊,其他驗證者將“證明”該區塊。當區塊鏈有多個分叉時,只有那條在其歷史上積累了最多“證明”(attestations) 的鏈才是正確的區塊鏈。
驗證者還將不定期地參與到某個同步委員會 (sync committee) 中,同步委員會是一個由隨機選擇的 512 名驗證者組成的小組,這些被隨機選中的驗證者將對區塊頭 (block headers) 進行簽名,這樣輕客戶端就可以檢索這些被驗證過的區塊,而無需訪問整條歷史鏈或整個驗證者集。
2. 合理化?& 被敲定
信標鏈為網絡設定節奏。這種節奏被組織成兩個時間單位:slot 和 epoch。slot 是將區塊添加到信標鏈的機會,每 12 秒出現一次。某個 slot 可能沒有區塊,但當系統以最佳方式運行時,區塊會添加到每個可用的 slot 中。epoch 是以 32 個 slot (約 6.4 分鐘) 為單位的。slot 和 epoch 設定了以太坊區塊鏈的節奏。
在每個 epoch 期間,第一個 slot 中的區塊是一個檢查點 (checkpoint)。檢查點是非常重要的,因為檢查點被用于使區塊鏈賬本上的記錄變得永久和不可逆轉——這是一個分為兩個階段的過程:首先,如果所有活躍驗證者質押的 ETH 余額中至少有 2/3 (即“絕對多數”) 證明了最近的兩個檢查點 (當前的被稱為“目標檢查點”,前一個被稱為“源檢查點”),那么這兩個檢查點之間的這段區塊就被“合理化” (justified) 了。“合理化”是邁向成為以太坊權威鏈上永久記錄的第一步。一旦某個被“合理化”的檢查點之后新出現了另一個被“合理化”的檢查點,那么前一個檢查點就是“被敲定” (finalized) 了,也即使其具有了永久性和不可逆轉 (即這個檢查點之前的所有記錄都成為了區塊鏈上永久不可篡改的記錄)。
數據:Polygon每日活躍用戶總數超過以太坊、Solana:金色財經報道,根據DeFiLlama的數據,過去24小時內Polygon區塊鏈上的活躍用戶總數為405,084人。相比之下,以太坊同期日活躍用戶總數為332,000人。這意味著與以太坊相比,Polygon目前的每日活躍用戶數量多了50,000多。它還領先于競爭對手Arbitrum(擁有172,968名用戶)和Solana(擁有122,570名每日活躍用戶)。[2023/7/21 11:09:44]
這個“合理化”和“敲定”的過程要求驗證者進行的“證明”(attestations) 實際上要比上文闡述的要更復雜一些。有兩種類型的證明:一種是 LMD GHOST 投票,用于證明區塊鏈的鏈頭 (LMD GHOST 是分叉選擇算法);第二種是用于對兩個檢查點進行證明的 FFG 投票 (FFG 是“最終性小工具” (finality gadget),對區塊鏈進行合理化和最終敲定)。所有驗證者都會對每個檢查點進行 FFG 投票,而只有一個隨機選中的驗證者子集在每個 slot 進行 LMD GHOST 投票。
3. 驗證者的質押獎勵、懲罰和罰沒
獎勵
如前所述,驗證者質押的 ETH 用于作為“抵押品”,以激勵驗證者的誠實行為。隨著驗證者因為參與到保護網絡中而獲得獎勵,這些被質押的 ETH 將隨著時間的推移而增加。當驗證者進行的 LMD-GHOST 投票和 FFG 投票與大多數其他驗證者一致時,那么驗證者就會獲得證明獎勵。當驗證者被選中作為“區塊提議者”(block proposer) 時,如果其提議的區塊被“敲定”, 那么該驗證者也將獲得獎勵。區塊提議者也可以通過將有關其他驗證者行為不當的證明打包進自己提議的區塊中,從而增加自己獲得的獎勵。這些獎勵是鼓勵驗證者誠實行事的“報酬”。
懲罰
驗證者可能受到的“懲罰”是以各種機制的形式來銷毀一部分驗證者質押的 ETH。當驗證者未能提交一個 FFG 投票、提交延遲了或者提交了錯誤的 FFG 投票時,都會受到證明懲罰 (attestation penalties)。但如果驗證者錯過了進行 LMD-GHOST 投票,則不會受到懲罰,只是錯過了本可以通過對鏈頭進行投票而獲得的獎勵。驗證者余額被削減的數額,等同于如果他們提交正確的證明而本可以獲得的獎勵數額。這意味著,一個誠實但“懶惰”的驗證者,他因為錯過了證明而遭受到的最大懲罰,就是損失他如果以完美的方式進行證明時本可以獲得的獎勵金額的 3/4。此外,當驗證者被分配至“同步委員會”(sync committee) 時,如果該驗證者未能簽名區塊,那么其受到的懲罰將等同于如果他成功地簽名區塊時本可以獲得的 ETH 價值。
總的來說,這些懲罰是溫和的,驗證者持續的怠惰 (inactivity) 僅會使其質押的 ETH 受到一個相當緩慢的削減。
罰沒
罰沒 (slashing) 是一種更嚴重的行為,這會導致驗證者被強制從網絡中移除,并導致相關的 ETH 質押金損失。有三種方式會導致驗證者被罰沒,所有這些都相當于驗證者進行了不誠實的區塊提議或區塊證明:
數據:比特幣Ordinals NFT數量超600萬枚:5月13日消息,Dune 數據顯示,使用 Ordinals 鑄造的 Inscriptions(類似于 NFT)數量已突破 600 萬枚,截至目前累計費用收入為 1,226.6595 BTC,約合 32,443,040 美元。此前 Ordinals 銘文鑄造總量于 5 月 10 日突破 500 萬。[2023/5/13 15:01:13]
在同一個 slot 提議和簽名兩個不同的區塊;
對“環繞”某個區塊的另一個區塊進行證明 (實際上就是更改區塊鏈歷史);
通過對同一個區塊的兩個候選區塊進行“雙重投票”(double voting)。
如果檢測到上述這些操作,驗證者就會罰沒。這意味著相當于其質押的 ETH 的 1/64 (最高可達 0.5 ETH) 將立即被銷毀,然后一個為期 36 天的移除期開始了:在此期間,驗證者的質押金將逐漸被削減;且在這段期間的中間點 (第18天),該驗證者還將受到額外的懲罰,懲罰大小將與此次罰沒事件發生之前的 36 天內所有被罰沒的驗證者的 ETH 質押總額成比例。這意味著,當更多的驗證者被罰沒時,此次罰沒的量級將會增加。最大的罰沒是所有被罰沒的驗證者的全部有效余額 (也即,如果有大量驗證者被罰沒,那么他們可能損失全部的質押金)。另一方面,一個單獨的、獨立的罰沒事件只會銷毀驗證者一小部分的質押金。這種隨著被罰沒驗證者的數量而變化的中間懲罰被稱為“串謀懲罰”(correlation penalty)。
Inactivity Leak 機制
如果信標鏈已經有超過 4 個 epoch 都沒有被敲定,那么一個稱為“inactivity leak”的經濟機制將被激活。Inactivity leak 的最終目的是創造條件使區塊鏈重新恢復敲定。如上文所解釋的,“敲定”(finality) 需要 2/3 的 ETH 總質押金對“源檢查點”和“目標檢查點”達成共識。如果超過 1/3 的驗證者離線或未能提交證明的證明,那么就不可能有 2/3 的絕對多數驗證者來敲定檢查點。此時,Inactivity leak 機制會讓屬于這些不活躍的驗證者的 ETH 質押金逐漸被削減,直到這些驗證者控制的質押金少于網絡中總質押金的 1/3,從而允許剩余的活躍驗證者對區塊鏈進行敲定。無論這些不活躍的驗證者數量有多大,剩余的驗證者最終都將控制 >2/3 的總質押金。這種質押金的削減將是一個強烈的刺激因素,激勵不活躍的驗證者盡快重新激活!
信標鏈設計中的獎勵、懲罰和罰沒鼓勵了個體驗證者正確行事。然而,從這些設計選擇中出現了一個系統,它強烈地激勵了驗證者在多個客戶端之間的平等分配,并強烈地抑制這種由單個客戶端占主導地位的情況。這是因為,“絕對多數制”對于信標鏈來說非常重要,單獨一個惡意驗證者對網絡而言是相當無害的,但大量惡意驗證者將可能造成嚴重破壞。讓我們來看看一些潛在的場景......
這種資產激勵共識客戶端多樣性是有風險的。通過在多個客戶端之間均勻分布驗證者,可以大大減少針對特定客戶端的攻擊或漏洞帶來的影響,而單一客戶端占主導地位則會增加這種風險。這種風險倍增效應會隨著單個主導性客戶端占據的網絡份額多少而變化。
STEPN官推發布配有GNT文字的圖片,疑似將發行新代幣:3月13日消息,STEPN官方推特今日發布了一副配有GNT文字的meme圖片,疑似將發行新代幣。[2023/3/13 13:01:20]
我們可以通過一些假設的 (但可能實際會發生的) 場景來獲得更多的直覺感知。讓我們假設一個 bug 意外地被引入到一個共識客戶端中,這個 bug 可以直接導致該客戶端進行不正確的證明,或者暴露一個漏洞,使得惡意攻擊者能夠迫使客戶端進行不正確地證明。那么,客戶端多樣性會如何影響這種 bug 帶來的后果呢?
場景1:受影響的客戶端控制了少于 1/3 的 ETH 質押金
這種情況為信標鏈提供了最大的彈性,因為仍有 2/3 被質押的 ETH 仍在進行正確地證明,允許信標鏈正常地進行敲定。因此,從網絡的角度來看,這種場景的后果是可以忽略的。受影響的驗證者將受到怠惰懲罰,因為他們提交了不正確的證明。這些損失相對較小,受影響的驗證者可以等待客戶端被修復或者切換到另一個客戶端。無論哪種方式,驗證者都可以以最小的經濟后果和不會破壞信標鏈的方式繼續進行正確的證明。
場景2:受影響的客戶端控制了超過 1/3 的 ETH 質押金
這種情況的問題要大得多,因為只剩不到 2/3 的 ETH 質押金在正確地進行證明,即沒有絕對多數的驗證者來正確地達成共識。這意味著信標鏈無法實現敲定,且 Inactivity Leak 機制將被激活。此時,這個 bug 對整個網絡造成了影響。對于搭建在以太坊之上的交易所和 Dapps (去中心化應用) 而言,區塊鏈被敲定 (finality) 是至關重要的,如果區塊鏈無法被敲定,那么就不能保證交易是永久性和不可篡改的。對于使用了這個受影響的客戶端的個體驗證者來說,相關的懲罰要嚴重得多,因為 Inactivity Leak 機制的激活意味著個體驗證者質押的 ETH 將逐步被銷毀,直到這個受 bug 影響的客戶端控制了少于 1/3 的 ETH 總質押金,且只有到那個時候信標鏈才會恢復敲定。這種 ETH 的銷毀可能實際上會在信標鏈恢復之后持續一段時間,從而為驗證者數量的較小變化提供緩沖。只有當一個受影響的客戶端控制了超過 1/3 的 ETH 總質押金時,信標鏈的敲定才會處于危險之中。
在這種場景中,正常運行其他替代性客戶端的驗證者在 Inactivity Leak 機制被激活期間不會收到任何獎勵。這是一種安全機制,用于防止攻擊者蓄意啟動 Inactivity Leak 機制,從而提高該攻擊者控制的其他以正確方式運行的驗證者獲得的總獎勵。這些都是很小的懲罰,但關鍵是,沒有人能從一個控制著超過 1/3 的 ETH 總質押金的客戶端的共識 bug 的負面后果中逃脫。
場景3:受影響的客戶端控制著 1/2 的 ETH 質押金
這種情況可能導致信標鏈中出現不可恢復的分叉。如果有共識 bug 的客戶端分叉到它自己的鏈上,那么原始的鏈和新的分叉鏈都無法實現敲定,因為新舊兩條鏈都缺失了大約一半的驗證者,并且都將激活 Inactivity Leak 機制。此時,這兩條鏈上缺失的驗證者的 ETH 質押金將會逐漸被銷毀,直到他們控制的質押金少于 1/3 的網絡 ETH 總質押金,此時每條鏈上的驗證者才可以再次開始進行敲定。這個過程在兩條鏈上花費的時間相同,因為恢復敲定需要銷毀的 ETH 數量是相等的。這兩條鏈將使用不同的檢查點來獨立完成敲定。這兩條鏈可能永遠不會合并成為一條單獨的“權威鏈”。解決方法將需要以太坊社區對哪條鏈是“權威鏈”達成共識,這個過程肯定會在上很難處理和引發分歧,導致一半的社區由于切換區塊鏈而產生的經濟損失 (這還不包括 ETH 可能貶值)。也許更糟糕的是,社區可能只是繼續分裂下去 (類似于 The DAO 事件導致以太坊經典的產生)。
WazirX:仍正常開放存取款服務,正評估進一步行動計劃:8月6日消息,印度加密交易平臺 WazirX 發推稱,盡管印度執法局對其采取了行動,但目前交易所仍正常開放存取款服務,目前正在評估進一步的行動計劃。
此前,印度執法局對 WazirX 加密貨幣交易所董事進行了搜查,凍結了其價值 6.467 億盧比(約 815.6 萬美元)的銀行資產。[2022/8/6 12:06:11]
為了避免信標鏈的永久分裂,使用受影響的客戶端的驗證者將必須與 Inactivity Leak 賽跑進行客戶端切換,或者在區塊鏈開始敲定之前修復他們的客戶端。可能有 3-4 周時間,在此期間開發者將爭相拯救以太坊。在這個場景中,對于大量的驗證者來說,無法逃避重大的經濟損失。
場景4:受影響的客戶端控制著超過 2/3 的 ETH 質押金
對于信標鏈來說,這是噩夢般的情況,因為受影響的客戶端控制著一個超級多數的驗證者,并且能夠敲定自己的鏈。這樣,不正確的信息就很有可能永遠被固定在以太坊的歷史記錄中。在區塊鏈開始敲定非法區塊之前,客戶端團隊將有大約 13 分鐘的時間來確定該共識 bug、修復它,并將客戶端更新信息廣播給受影響的驗證者。
對于這種情況,唯一可行的緩解方法是讓受影響的驗證者取出他們質押的 ETH 并從區塊鏈中退出。如果在 bug 修復之后,這些受影響的驗證者試圖重新加入那條正確的區塊鏈中,他們將由于“串謀懲罰”而被罰沒,因為他們此時證明的檢查點是與他們之前證明的檢查點相矛盾,而且是集體進行這樣的操作。Inactivity Leak 機制將由于大量驗證者離去而被激活,這意味著這些受影響的驗證者將在他們等待取款 (退出) 時不斷損失他們的 ETH 質押金。由于有大量驗證者要退出,因此等待的隊伍將很長、緩慢和昂貴。
唯一的其他選擇是,剩下的未受影響的客戶端接受該 bug,加入新的鏈,并同意該 bug 從此成為以太坊共識層的預期行為。這將與 staking (質押) 社區的核心原則背道而馳,而且會造成極大的分裂。這些少數客戶端將在新鏈上受到怠惰懲罰,即使他們的行為得當。
兩種選擇都不是好的選擇。前一個選擇對于受影響的驗證者來說非常昂貴,并且在邏輯上難以糾正。后一種選擇將嚴重破壞對以太坊的信任,并導致我們接受一個永久被玷污的鏈。
其他風險
逆轉最終性
如果單個客戶端控制著超過 2/3 的 ETH 總質押金,那么該客戶端的開發者就有能力選擇哪個版本的區塊鏈歷史是正確的。比如,如果該客戶端的開發者變得惡意,他們可以花費一些 ETH (比如通過某個交易所套現,或者橋接到另一個區塊鏈網絡),然后這些開發者集體投票,使用另一個不包含這筆花費交易的鏈版本來代替當前這個已經被敲定的鏈。這是一種“雙花”,因為該客戶端控制著絕大多數驗證者使其能夠逆轉最終性和重寫歷史。與此同時,誠實的少數驗證者會因為他們不一致的證明而受到懲罰。一個惡意的控制了絕對多數 ETH 總質押金的攻擊者也可以威脅做出這樣的行為,并控制網絡索要贖金。即便是一個控制著 1/3 ?的 ETH 總質押金的惡意團隊也可以威脅停止鏈的敲定并激活 Inactivity Leak 機制。
以太坊L2網絡總鎖倉量為47.6億美元:金色財經消息,L2BEAT數據顯示,截至5月26日,以太坊Layer2上總鎖倉量為47.6億美元。其中鎖倉量最高的為擴容方案Arbitrum,約26億美元,占比54.66%。其次是dYdX,鎖倉量9.44億美元,占比19.85%。Optimism占據第三,鎖倉量4.96億美元,占比10.43%。[2022/5/26 3:43:37]
共同的責任
前一點對客戶端開發團隊的看法有些悲觀,不是因為這是合理的,而是因為惡意行為是可能的,因此需要防范。然而,這些開發人員最有可能永遠是好人,他們自己需要抵制單個客戶端占主導性地位,不僅僅是因為他們很可能是以太坊用戶 (以及 ETH 持有者或質押者),還因為網絡安全的責任不應該集中在一個小團隊的肩上。開發者的行為對整個以太坊的健康造成了巨大的影響,他們的壓力和心理健康是真正的代價。客戶端多樣性通過在多個獨立團隊之間分擔責任來避免這種情況。
中心化
即使客戶端開發團隊由完全出于善意的開發者組成,當他們控制了大部分的 ETH 質押金時,他們仍然保留了以太坊運作方面的過度權力。去中心化是以太坊的一個核心原則,這必須包括開發者、用戶和托管商的去中心化。跨多個客戶端的開發團隊的去中心化,通過均勻分配 ETH 質押金,從而限制了單個客戶端團隊對諸如分叉內容和時間等做出關鍵決策,從而限制了他們對以太坊哲學方向的影響。客戶端多樣性確保了在開發者層面做出去中心化的決策。
對一條誠實鏈的社交恢復 (social recovery)?是一個充滿的問題。以太坊的共識機制應該基于編碼到其客戶端的規則來確定——這是它的主要目標。干預這一過程可能會導致以太坊社區的分裂,導致不同的用戶在哲學上、倫理上和技術上對于緩解某個主要客戶端的共識 bug/攻擊有各種各樣的觀點。治理決策將是笨拙的、破壞性的,而且可能過于緩慢而無法達到最大的有效性。
上述場景發生的概率相對較低。開發者在研究和測試他們軟件的每一個更新時都是一絲不茍的,沒有理由懷疑任何客戶端團隊的職業操守。然而,這些場景也不是純粹的假設。已經有真實例子表明,客戶端多樣性拯救了以太坊主網,使其免于永久損壞,且一些共識 bug 也破壞了以太坊測試網。下面將介紹其中的一些例子。
上海攻擊
2016年9月,在上海 DevCon 會議期間,黑客攻擊了以太坊,利用客戶端軟件中的幾個漏洞,導致網絡速度顯著放緩。攻擊者堅持不懈,迅速部署新的類似攻擊,而客戶端開發人員則競相對這些攻擊進行逆向工程和修補。最終,攻擊者在 Geth 客戶端中發現了一個無法修補的漏洞,使得硬分叉成為必然。即使在硬分叉升級之后,攻擊者仍然發現了一個拒絕服務漏洞,該漏洞利用之前攻擊所導致的膨脹狀態,迫使客戶端在每個區塊中進行數萬次緩慢的磁盤I/O操作。客戶端多樣性贏得了勝利,因為當開發人員努力修復 Geth 中的漏洞時,以太坊能夠繼續使用替代性的 Parity 客戶端,該客戶端沒有遭受同樣的漏洞。
由于有多個客戶端,上海攻擊是可以恢復的,但如果一個類似的 bug 影響了多數共識客戶端,情況可能會截然不同。如果一個“共識客戶端”與當時 Geth 被攻擊時有著相同的主導性地位,那么以太坊量將無法實現敲定,因為此時大多數驗證者將無法對區塊進行證明。Inactivity Leak 將被激活,因為只有少于 1/3 的 ETH 質押金可用于進行證明。
Insecura 鏈
“遠程攻擊”的可行性最近在 Pyrmont 測試網得到了證明。其想法是建立一組驗證者來證明一個備用的區塊鏈歷史。然后,這些驗證者被用來誘騙新的驗證者加入這條不誠實的“Insecura”鏈,從而逐漸增加被影響的驗證者的數量,最終達到中斷區塊鏈敲定、激活 Inactivity Leak 并耗盡誠實多數驗證者的 ETH 質押金的程度。最終,這可能導致受影響的客戶端最終敲定自己版本的區塊鏈。雖然所需要的時間和金錢的投入使這種行為不太可能成為攻擊向量,但類似的動態可能導致一個占主導地位的共識客戶端中的一個 bug 感染網絡的大部分。
Medalla 測試網
此前由于 Prysm 客戶端的時鐘問題,Medalla 測試網的活躍驗證者數量突然下降。這條鏈無法進行敲定,因為太多的驗證者退出了網絡,以至于 2/3 絕大多數被質押的 ETH 已經不再可用于進行證明。其恢復是漸進的,因為這依賴于驗證者將客戶端從 Prysm 切換到其他少數客戶端上。然后,真實的時間與 Prysm 客戶端錯誤的時鐘時間趕在一起,之前無效的證明突然間變得有效了。這導致 Prysm 客戶端陷入停滯,同時 Teku 和 Lighthouse 客戶端也因突然處理大量的證明而遭遇了巨大的狀態膨脹。如果 Prysm 是 Medalla 測試網的唯一客戶端,那么整個網絡都已經停滯了;如果 Prysm 客戶端控制了少于 1/3 的 ETH 總質押金,那么許多混亂就可以避免了。
Prysm 的存款根 bug
2021 年初,Prysm 客戶端遇到了一個與 Eth1 存款根驗證相關的 bug。當時,Prysm 客戶端能夠生成無效的存款根 (deposit root),并將其傳遞給其他 Prysm 節點。因為 Prysm 擁有如此大的驗證者份額,這種無效的存款根很快在網絡中傳播,且由于 Prysm 遵循絕大多數投票機制而非在每個區塊中顯性地驗證存款根,因此加速了其傳播。雖然該 bug 帶來的影響很小,沒有中斷信標鏈的敲定,也沒有對驗證者帶來重大的經濟懲罰,但這個事件從兩個方面證明了客戶端多樣性的重要性:首先,如果 Prysm 客戶端有著較小的驗證者份額,那么就會限制該 bug 在整個網絡的傳播,減少其影響;其次,該事件發生后的分析文章描述了如何使用替代性客戶端實現作為基準,幫助開發人員快速識別和修復該 bug。顯然,如果沒有多個積極維護的客戶端,這是不可能實現的。
上圖為當前以太坊客戶端的多樣性情況:左邊為執行客戶端的占比情況,右邊為共識客戶端的占比情況。
上面的兩個餅狀圖顯示了以太坊執行層和共識層的當前客戶多樣性的快照 (截至 2022 年 1 月撰寫本文時):執行層由 Geth 客戶端主導,OpenEthereum 客戶端遠遠排在第二,Erigon 客戶端排第三,Nethermind 排第四,其他客戶端只占不到網絡的 1%。共識層上最常用的客戶端 Prysm 雖然不像執行層的 Geth 客戶端那樣占主導地位,但仍然擁有了超過 60% 的網絡,Lighthouse 和 Teku 分別占 20% 和 14%,其他客戶端則很少使用。
執行層數據于 2022 年 1 月 23 日通過 Ethernodes 網站 (ethernodes.org/) 獲取;共識客戶端的數據來自 Michael Sproul (github.com/sigp/blockprint)。共識客戶端數據要更難獲取,因為信標鏈客戶端并不總是具有可以用來識別它們的明確蹤跡。這些數據是使用一種分類算法生成的,這種算法有時會弄錯一些少數客戶端。然而,很明顯,共識層的大部分網絡節點都在運行 Prysm。Prysm 的優勢有時更高,超過 68%。盡管只是快照,但圖中的占比情況提供了客戶端多樣性的當前狀態的良好總體認識。
執行層的客戶端多樣性包含在上圖中,因為影響執行客戶端的 bug 可能也會傳播到共識層,這是由于合并之后,共識層和執行層將耦合在一起,且執行客戶端生成的執行負載 (execution payload) 將是信標區塊的核心組件。
個人質押者 & 質押池
解決客戶端分配不平衡的問題,需要主要交易所和押注池 (stking pools) 采取行動。然而,個人質押者也可以通過選擇運行非 Geth/Prysm 客戶端組合來發揮作用。搭建少數客戶端的說明須知可以在這個 clientdiversity.org 頁面找到:
https://clientdiversity.org/
對于持有量少于 32 ETH 或者不想要承擔運行驗證者的責任的質押者來說,有一些質押服務提供商可以使用。一些主要的中心化交易所提供 ETH 質押服務,但他們的質押池中的客戶端分布情況通常是隱秘的,而且這些交易所提供的 ETH 質押代幣的可交易性是有限的。出于這些和其他的原因,不建議使用這些中心化的服務商。
一個更好的選擇是使用更去中心化的流動性押注服務提供商,如 Lido 或 Rocketpool。這些服務商提供 ETH 質押服務,同時還提供了一種流動性代幣 (比如用戶通過 Lido 協議質押 ETH 將獲得具有流動性的 stETH 代幣),這些流動性代幣的價值將隨著驗證者累積的獎勵而增加。這些代幣可以進行交易,或者用于賺取 DeFi 收益。這些流動性質押平臺的客戶端分布情況也要更加透明,比如 Lido 會發布季度更新,而 Rocketpool 現在也發布了他們的季度更新。對于不能或不愿意運行自己的驗證器者的用戶,這些服務是實現更好的客戶端多樣性的途徑。
信標鏈的獎罰協議直接激勵了客戶端多樣性。單個客戶端占主導地位將是對以太坊的潛在威脅,當單個主導性客戶端表現良好時,這種威脅是無形的,但當該客戶端出現共識 bug 時,這種威脅可能是災難性的。擁有多個客戶端是以太坊的獨特優勢,也是開發者社區勤奮努力的證明。然而,當一個客戶端控制了大部分 ETH 質押金時,這種 (以太坊開發者社區的) 努力就會被削弱。理想的情況是在至少 4 個客戶端上平均分配 ETH 質押金,給每個客戶端最多 1/4 的 ETH 質押金。通過使用現在可用的生產就緒的客戶端,這是很容易實現的。
撰文:Joseph Cook
編輯:南風
小佛爺說 《哈佛商業評論》英文版總編輯殷阿笛最近與微軟CEO薩提亞·納德拉,展開了一場關于未來的對話.
1900/1/1 0:00:00長期以來,加密市場都有著“四年一個周期”的說法,這一理論背后的依據眾說紛紜,有觀點認為是出于比特幣4年減半的規律,也有觀點認為是每4年一次的美國大選會刺激行情,無論個中緣由為何.
1900/1/1 0:00:00在Arbitrum鏈上,除了Uniswap、Sushiswap等主流DeFi協議的部署外,還有哪些應用?本文將會盤點Arbitrum鏈上的應用現狀.
1900/1/1 0:00:002 月 15 日,摩根大通發布了一篇名為「Opportunities in the metaverse」的研究報告(本文是速讀翻譯版本,譯者有刪減),探討企業如何在元宇宙中尋找機會.
1900/1/1 0:00:00Dmitry Buterin 回憶起 2013 年的一天,當時他的兒子 Vitalik 在多倫多的家中向他展示了以太坊白皮書.
1900/1/1 0:00:00隨著 DeFi 和 NFT 社區規模的巨大增長,如何管理去中心化協議變得更加重要。現在和未來幾年,這些社區面臨的最緊迫的挑戰之一是解決治理問題——即管理集體決策以優化資金和運營.
1900/1/1 0:00:00