以太坊有多個可互操作的客戶端,由獨立團隊用不同的語言開發和維護。這是一項重大成就,通過將漏洞或攻擊的影響限制在運行受影響客戶端的網絡部分,可以為網絡提供彈性。然而,只有當所有用戶大致均勻地分布在各個可用的客戶端上時,才能實現這種優勢。目前,絕大多數以太坊節點運行單個客戶端,給網絡帶來不必要的風險。
以太坊將很快經歷自成立以來其架構最重要的一次升級——從工作量證明(PoW)到權益證明(PoS)的合并。這將從根本上改變該網絡對區塊鏈的真實狀態達成共識的方式,并維護網絡安全。這種新架構將帶來安全性、可擴展性和可持續性方面的好處,但同時也放大了與這種由單個客戶端占主導地位有關的風險。這篇文章將探討其中的緣由...
信標鏈
信標鏈是一條PoS區塊鏈。它目前與以太坊主網并行運行,但兩者很快將“合并”在一起。合并之后,現有的以太坊主網客戶端(“執行客戶端”)將繼續托管以太坊虛擬機(EVM),并驗證和廣播交易,但將停止參與工作量證明(PoW)挖礦,并放棄對區塊鏈鏈頭(頂端區塊)達成共識的責任。相反,這種共識將成為“共識客戶端”的責任,“共識客戶端”負責把來自“執行客戶端”的交易與共識所需的信息一起打包進“信標區塊”中,這些信標區塊就構成了信標鏈。“礦工”將被“驗證者”(validators)取代,這些驗證者需要將ETH存入某個以太坊智能合約中(這一過程稱為“質押”(staking))。驗證者質押的ETH將作為抵押品,以激勵他們正確地完成驗證工作。不履行驗證工作(比如因為離線)或進行惡意行為的驗證者,將導致其質押的ETH的一部分被銷毀。另一方面,如果驗證者行為得當,那么將會獲得ETH獎勵。
1.驗證者的職責
對于驗證者來說,良好的行為意味著參與驗證從其他驗證者那里接收到的信標區塊,并對區塊鏈鏈頭進行投票。如果驗證者接收到的區塊是有效的,那么驗證者將對區塊進行“證明”(attest),實際上就是投票支持將該區塊添加到區塊鏈中。一個節點將不定期地被要求提議一個新區塊,其他驗證者將“證明”該區塊。當區塊鏈有多個分叉時,只有那條在其歷史上積累了最多“證明”(attestations)的鏈才是正確的區塊鏈。
驗證者還將不定期地參與到某個同步委員會(synccommittee)中,同步委員會是一個由隨機選擇的512名驗證者組成的小組,這些被隨機選中的驗證者將對區塊頭(blockheaders)進行簽名,這樣輕客戶端就可以檢索這些被驗證過的區塊,而無需訪問整條歷史鏈或整個驗證者集。
2.合理化?&被敲定
信標鏈為網絡設定節奏。這種節奏被組織成兩個時間單位:slot和epoch。slot是將區塊添加到信標鏈的機會,每12秒出現一次。某個slot可能沒有區塊,但當系統以最佳方式運行時,區塊會添加到每個可用的slot中。epoch是以32個slot(約6.4分鐘)為單位的。slot和epoch設定了以太坊區塊鏈的節奏。
在每個epoch期間,第一個slot中的區塊是一個檢查點(checkpoint)。檢查點是非常重要的,因為檢查點被用于使區塊鏈賬本上的記錄變得永久和不可逆轉——這是一個分為兩個階段的過程:首先,如果所有活躍驗證者質押的ETH余額中至少有2/3(即“絕對多數”)證明了最近的兩個檢查點(當前的被稱為“目標檢查點”,前一個被稱為“源檢查點”),那么這兩個檢查點之間的這段區塊就被“合理化”(justified)了。“合理化”是邁向成為以太坊權威鏈上永久記錄的第一步。一旦某個被“合理化”的檢查點之后新出現了另一個被“合理化”的檢查點,那么前一個檢查點就是“被敲定”(finalized)了,也即使其具有了永久性和不可逆轉(即這個檢查點之前的所有記錄都成為了區塊鏈上永久不可篡改的記錄)。
印度:IMF正在與G20合作制定加密貨幣政策:金色財經報道,印度經濟事務部秘書 Ajay Seth 表示,國際貨幣基金組織(IMF)正在與印度協商起草一份文件,該文件將重點關注貨幣政策的各個方面和加密資產的政策方法。Ajay Seth還表示,在本月晚些時候舉行的 G20 會議期間將舉行 135 分鐘的加密貨幣資產研討會,國際貨幣基金組織正在為此準備文件,該文件將作為基礎。Ajay Seth 稱,計劃將 IMF 起草的文件從 G20 的共識轉移到金融穩定委員會的加密資產工作組,并希望所有國家都接受該政策。[2023/2/3 11:45:33]
這個“合理化”和“敲定”的過程要求驗證者進行的“證明”(attestations)實際上要比上文闡述的要更復雜一些。有兩種類型的證明:一種是LMDGHOST投票,用于證明區塊鏈的鏈頭(LMDGHOST是分叉選擇算法);第二種是用于對兩個檢查點進行證明的FFG投票(FFG是“最終性小工具”(finalitygadget),對區塊鏈進行合理化和最終敲定)。所有驗證者都會對每個檢查點進行FFG投票,而只有一個隨機選中的驗證者子集在每個slot進行LMDGHOST投票。
3.驗證者的質押獎勵、懲罰和罰沒
獎勵
如前所述,驗證者質押的ETH用于作為“抵押品”,以激勵驗證者的誠實行為。隨著驗證者因為參與到保護網絡中而獲得獎勵,這些被質押的ETH將隨著時間的推移而增加。當驗證者進行的LMD-GHOST投票和FFG投票與大多數其他驗證者一致時,那么驗證者就會獲得證明獎勵。當驗證者被選中作為“區塊提議者”(blockproposer)時,如果其提議的區塊被“敲定”,那么該驗證者也將獲得獎勵。區塊提議者也可以通過將有關其他驗證者行為不當的證明打包進自己提議的區塊中,從而增加自己獲得的獎勵。這些獎勵是鼓勵驗證者誠實行事的“報酬”。
懲罰
驗證者可能受到的“懲罰”是以各種機制的形式來銷毀一部分驗證者質押的ETH。當驗證者未能提交一個FFG投票、提交延遲了或者提交了錯誤的FFG投票時,都會受到證明懲罰(attestationpenalties)。但如果驗證者錯過了進行LMD-GHOST投票,則不會受到懲罰,只是錯過了本可以通過對鏈頭進行投票而獲得的獎勵。驗證者余額被削減的數額,等同于如果他們提交正確的證明而本可以獲得的獎勵數額。這意味著,一個誠實但“懶惰”的驗證者,他因為錯過了證明而遭受到的最大懲罰,就是損失他如果以完美的方式進行證明時本可以獲得的獎勵金額的3/4。此外,當驗證者被分配至“同步委員會”(synccommittee)時,如果該驗證者未能簽名區塊,那么其受到的懲罰將等同于如果他成功地簽名區塊時本可以獲得的ETH價值。
總的來說,這些懲罰是溫和的,驗證者持續的怠惰(inactivity)僅會使其質押的ETH受到一個相當緩慢的削減。
罰沒
罰沒(slashing)是一種更嚴重的行為,這會導致驗證者被強制從網絡中移除,并導致相關的ETH質押金損失。有三種方式會導致驗證者被罰沒,所有這些都相當于驗證者進行了不誠實的區塊提議或區塊證明:
烏克蘭央行公布數字格里夫納計劃:金色財經報道,烏克蘭央行公布了其開發央行數字貨幣(CBDC)的概念草案,稱為數字格里夫納或“e-格里夫納”。銀行業監管機構在其概念文件中指出,數字格里夫納將有效地執行貨幣的所有功能,同時“補充格里夫納的現金和非現金形式”。烏克蘭央行認為,為了使CBDC履行其職能,它必須向包括銀行和非銀行金融機構在內的全國所有人口開放。該文件提出來烏克蘭央行目前考慮的CBDC設計的三種可能方案。第一種方案是將電子格里夫納用于零售非現金支付,第二種方案是尋求在數字資產的流通中部署CBDC,最后一個方案是將其用于促進跨境支付。(金十)[2022/12/3 21:19:43]
在同一個slot提議和簽名兩個不同的區塊;
對“環繞”某個區塊的另一個區塊進行證明(實際上就是更改區塊鏈歷史);
通過對同一個區塊的兩個候選區塊進行“雙重投票”(doublevoting)。
如果檢測到上述這些操作,驗證者就會罰沒。這意味著相當于其質押的ETH的1/64(最高可達0.5ETH)將立即被銷毀,然后一個為期36天的移除期開始了:在此期間,驗證者的質押金將逐漸被削減;且在這段期間的中間點(第18天),該驗證者還將受到額外的懲罰,懲罰大小將與此次罰沒事件發生之前的36天內所有被罰沒的驗證者的ETH質押總額成比例。這意味著,當更多的驗證者被罰沒時,此次罰沒的量級將會增加。最大的罰沒是所有被罰沒的驗證者的全部有效余額(也即,如果有大量驗證者被罰沒,那么他們可能損失全部的質押金)。另一方面,一個單獨的、獨立的罰沒事件只會銷毀驗證者一小部分的質押金。這種隨著被罰沒驗證者的數量而變化的中間懲罰被稱為“串謀懲罰”(correlationpenalty)。
InactivityLeak機制
如果信標鏈已經有超過4個epoch都沒有被敲定,那么一個稱為“inactivityleak”的經濟機制將被激活。Inactivityleak的最終目的是創造條件使區塊鏈重新恢復敲定。如上文所解釋的,“敲定”(finality)需要2/3的ETH總質押金對“源檢查點”和“目標檢查點”達成共識。如果超過1/3的驗證者離線或未能提交證明的證明,那么就不可能有2/3的絕對多數驗證者來敲定檢查點。此時,Inactivityleak機制會讓屬于這些不活躍的驗證者的ETH質押金逐漸被削減,直到這些驗證者控制的質押金少于網絡中總質押金的1/3,從而允許剩余的活躍驗證者對區塊鏈進行敲定。無論這些不活躍的驗證者數量有多大,剩余的驗證者最終都將控制>2/3的總質押金。這種質押金的削減將是一個強烈的刺激因素,激勵不活躍的驗證者盡快重新激活!
信標鏈設計中的獎勵、懲罰和罰沒鼓勵了個體驗證者正確行事。然而,從這些設計選擇中出現了一個系統,它強烈地激勵了驗證者在多個客戶端之間的平等分配,并強烈地抑制這種由單個客戶端占主導地位的情況。這是因為,“絕對多數制”對于信標鏈來說非常重要,單獨一個惡意驗證者對網絡而言是相當無害的,但大量惡意驗證者將可能造成嚴重破壞。讓我們來看看一些潛在的場景......
受Alameda與FTX崩盤的影響WBTC脫鉤至0.9852,目前已恢復:金色財經報道,據Lookonchain在社交媒體上稱,受Alameda與FTX崩盤的影響,WBTC在11月10日開始出現脫鉤跡象,11月25日WBTC脫鉤至0.9852。為什么 WBTC 脫鉤?主要有兩個原因:1.Alameda已經鑄造了超過101K的WBTC,是最大的商家。2.11月24日,WBTC贖回的人很多,贖回被推遲了。Alameda發行了 101,746 WBTC,僅銷毀了 29,435 WBTC。Alameda是商家而不是托管人,它只啟動鑄造/銷毀包裹代幣和包裹代幣的過程。11月24日,WBTC贖回延遲超過24小時。WBTC 持有者擔心自己無法贖回而選擇出售自己的 WBTC,因此 WBTC 價格下跌,與 BTC 嚴重脫鉤。不過,目前WBTC的贖回已經恢復正常。而最新的兌換記錄顯示,用時不到2小時。[2022/11/27 20:55:24]
風險場景
這種資產激勵共識客戶端多樣性是有風險的。通過在多個客戶端之間均勻分布驗證者,可以大大減少針對特定客戶端的攻擊或漏洞帶來的影響,而單一客戶端占主導地位則會增加這種風險。這種風險倍增效應會隨著單個主導性客戶端占據的網絡份額多少而變化。
我們可以通過一些假設的(但可能實際會發生的)場景來獲得更多的直覺感知。讓我們假設一個bug意外地被引入到一個共識客戶端中,這個bug可以直接導致該客戶端進行不正確的證明,或者暴露一個漏洞,使得惡意攻擊者能夠迫使客戶端進行不正確地證明。那么,客戶端多樣性會如何影響這種bug帶來的后果呢?
場景1:受影響的客戶端控制了少于1/3的ETH質押金
這種情況為信標鏈提供了最大的彈性,因為仍有2/3被質押的ETH仍在進行正確地證明,允許信標鏈正常地進行敲定。因此,從網絡的角度來看,這種場景的后果是可以忽略的。受影響的驗證者將受到怠惰懲罰,因為他們提交了不正確的證明。這些損失相對較小,受影響的驗證者可以等待客戶端被修復或者切換到另一個客戶端。無論哪種方式,驗證者都可以以最小的經濟后果和不會破壞信標鏈的方式繼續進行正確的證明。
場景2:受影響的客戶端控制了超過1/3的ETH質押金
這種情況的問題要大得多,因為只剩不到2/3的ETH質押金在正確地進行證明,即沒有絕對多數的驗證者來正確地達成共識。這意味著信標鏈無法實現敲定,且InactivityLeak機制將被激活。此時,這個bug對整個網絡造成了影響。對于搭建在以太坊之上的交易所和Dapps(去中心化應用)而言,區塊鏈被敲定(finality)是至關重要的,如果區塊鏈無法被敲定,那么就不能保證交易是永久性和不可篡改的。對于使用了這個受影響的客戶端的個體驗證者來說,相關的懲罰要嚴重得多,因為InactivityLeak機制的激活意味著個體驗證者質押的ETH將逐步被銷毀,直到這個受bug影響的客戶端控制了少于1/3的ETH總質押金,且只有到那個時候信標鏈才會恢復敲定。這種ETH的銷毀可能實際上會在信標鏈恢復之后持續一段時間,從而為驗證者數量的較小變化提供緩沖。只有當一個受影響的客戶端控制了超過1/3的ETH總質押金時,信標鏈的敲定才會處于危險之中。
Tim Beiko:正在等待最終確定,大約需要6分鐘:金色財經報道,以太坊核心開發者Tim Beiko:正在等待最終確定,大約需要6分鐘。[2022/9/15 6:58:31]
在這種場景中,正常運行其他替代性客戶端的驗證者在InactivityLeak機制被激活期間不會收到任何獎勵。這是一種安全機制,用于防止攻擊者蓄意啟動InactivityLeak機制,從而提高該攻擊者控制的其他以正確方式運行的驗證者獲得的總獎勵。這些都是很小的懲罰,但關鍵是,沒有人能從一個控制著超過1/3的ETH總質押金的客戶端的共識bug的負面后果中逃脫。
場景3:受影響的客戶端控制著1/2的ETH質押金
這種情況可能導致信標鏈中出現不可恢復的分叉。如果有共識bug的客戶端分叉到它自己的鏈上,那么原始的鏈和新的分叉鏈都無法實現敲定,因為新舊兩條鏈都缺失了大約一半的驗證者,并且都將激活InactivityLeak機制。此時,這兩條鏈上缺失的驗證者的ETH質押金將會逐漸被銷毀,直到他們控制的質押金少于1/3的網絡ETH總質押金,此時每條鏈上的驗證者才可以再次開始進行敲定。這個過程在兩條鏈上花費的時間相同,因為恢復敲定需要銷毀的ETH數量是相等的。這兩條鏈將使用不同的檢查點來獨立完成敲定。這兩條鏈可能永遠不會合并成為一條單獨的“權威鏈”。解決方法將需要以太坊社區對哪條鏈是“權威鏈”達成共識,這個過程肯定會在上很難處理和引發分歧,導致一半的社區由于切換區塊鏈而產生的經濟損失(這還不包括ETH可能貶值)。也許更糟糕的是,社區可能只是繼續分裂下去(類似于TheDAO事件導致以太坊經典的產生)。
為了避免信標鏈的永久分裂,使用受影響的客戶端的驗證者將必須與InactivityLeak賽跑進行客戶端切換,或者在區塊鏈開始敲定之前修復他們的客戶端。可能有3-4周時間,在此期間開發者將爭相拯救以太坊。在這個場景中,對于大量的驗證者來說,無法逃避重大的經濟損失。
場景4:受影響的客戶端控制著超過2/3的ETH質押金
對于信標鏈來說,這是噩夢般的情況,因為受影響的客戶端控制著一個超級多數的驗證者,并且能夠敲定自己的鏈。這樣,不正確的信息就很有可能永遠被固定在以太坊的歷史記錄中。在區塊鏈開始敲定非法區塊之前,客戶端團隊將有大約13分鐘的時間來確定該共識bug、修復它,并將客戶端更新信息廣播給受影響的驗證者。
對于這種情況,唯一可行的緩解方法是讓受影響的驗證者取出他們質押的ETH并從區塊鏈中退出。如果在bug修復之后,這些受影響的驗證者試圖重新加入那條正確的區塊鏈中,他們將由于“串謀懲罰”而被罰沒,因為他們此時證明的檢查點是與他們之前證明的檢查點相矛盾,而且是集體進行這樣的操作。InactivityLeak機制將由于大量驗證者離去而被激活,這意味著這些受影響的驗證者將在他們等待取款(退出)時不斷損失他們的ETH質押金。由于有大量驗證者要退出,因此等待的隊伍將很長、緩慢和昂貴。
唯一的其他選擇是,剩下的未受影響的客戶端接受該bug,加入新的鏈,并同意該bug從此成為以太坊共識層的預期行為。這將與staking(質押)社區的核心原則背道而馳,而且會造成極大的分裂。這些少數客戶端將在新鏈上受到怠惰懲罰,即使他們的行為得當。
Algorand 基金會宣布 Matthew Keller 為影響力和包容性總監:金色財經報道,Algorand 基金會今天宣布任命Matthew Keller為董事影響和包容。作為影響力和包容性的主管,Keller 將負責對利用 Algorand 區塊鏈產生社會影響的個人和機構進行資助和投資。Keller 還將管理 Algorand 清潔能源挑戰賽,該競賽旨在激勵參與者通過 Algorand 區塊鏈解決驗證和認證綠色能源的問題。最后,他將與希望將 Algorand 區塊鏈用于社會和環境公益的聯合國機構和大型非政府組織建立合作伙伴關系。(prnewswire)[2022/5/28 3:46:27]
兩種選擇都不是好的選擇。前一個選擇對于受影響的驗證者來說非常昂貴,并且在邏輯上難以糾正。后一種選擇將嚴重破壞對以太坊的信任,并導致我們接受一個永久被玷污的鏈。
其他風險
逆轉最終性
如果單個客戶端控制著超過2/3的ETH總質押金,那么該客戶端的開發者就有能力選擇哪個版本的區塊鏈歷史是正確的。比如,如果該客戶端的開發者變得惡意,他們可以花費一些ETH(比如通過某個交易所套現,或者橋接到另一個區塊鏈網絡),然后這些開發者集體投票,使用另一個不包含這筆花費交易的鏈版本來代替當前這個已經被敲定的鏈。這是一種“雙花”,因為該客戶端控制著絕大多數驗證者使其能夠逆轉最終性和重寫歷史。與此同時,誠實的少數驗證者會因為他們不一致的證明而受到懲罰。一個惡意的控制了絕對多數ETH總質押金的攻擊者也可以威脅做出這樣的行為,并控制網絡索要贖金。即便是一個控制著1/3?的ETH總質押金的惡意團隊也可以威脅停止鏈的敲定并激活InactivityLeak機制。
共同的責任
前一點對客戶端開發團隊的看法有些悲觀,不是因為這是合理的,而是因為惡意行為是可能的,因此需要防范。然而,這些開發人員最有可能永遠是好人,他們自己需要抵制單個客戶端占主導性地位,不僅僅是因為他們很可能是以太坊用戶(以及ETH持有者或質押者),還因為網絡安全的責任不應該集中在一個小團隊的肩上。開發者的行為對整個以太坊的健康造成了巨大的影響,他們的壓力和心理健康是真正的代價。客戶端多樣性通過在多個獨立團隊之間分擔責任來避免這種情況。
中心化
即使客戶端開發團隊由完全出于善意的開發者組成,當他們控制了大部分的ETH質押金時,他們仍然保留了以太坊運作方面的過度權力。去中心化是以太坊的一個核心原則,這必須包括開發者、用戶和托管商的去中心化。跨多個客戶端的開發團隊的去中心化,通過均勻分配ETH質押金,從而限制了單個客戶端團隊對諸如分叉內容和時間等做出關鍵決策,從而限制了他們對以太坊哲學方向的影響。客戶端多樣性確保了在開發者層面做出去中心化的決策。
對一條誠實鏈的社交恢復(socialrecovery)?是一個充滿的問題。以太坊的共識機制應該基于編碼到其客戶端的規則來確定——這是它的主要目標。干預這一過程可能會導致以太坊社區的分裂,導致不同的用戶在哲學上、倫理上和技術上對于緩解某個主要客戶端的共識bug/攻擊有各種各樣的觀點。治理決策將是笨拙的、破壞性的,而且可能過于緩慢而無法達到最大的有效性。
真實例子
上述場景發生的概率相對較低。開發者在研究和測試他們軟件的每一個更新時都是一絲不茍的,沒有理由懷疑任何客戶端團隊的職業操守。然而,這些場景也不是純粹的假設。已經有真實例子表明,客戶端多樣性拯救了以太坊主網,使其免于永久損壞,且一些共識bug也破壞了以太坊測試網。下面將介紹其中的一些例子。
上海攻擊
2016年9月,在上海DevCon會議期間,黑客攻擊了以太坊,利用客戶端軟件中的幾個漏洞,導致網絡速度顯著放緩。攻擊者堅持不懈,迅速部署新的類似攻擊,而客戶端開發人員則競相對這些攻擊進行逆向工程和修補。最終,攻擊者在Geth客戶端中發現了一個無法修補的漏洞,使得硬分叉成為必然。即使在硬分叉升級之后,攻擊者仍然發現了一個拒絕服務漏洞,該漏洞利用之前攻擊所導致的膨脹狀態,迫使客戶端在每個區塊中進行數萬次緩慢的磁盤I/O操作。客戶端多樣性贏得了勝利,因為當開發人員努力修復Geth中的漏洞時,以太坊能夠繼續使用替代性的Parity客戶端,該客戶端沒有遭受同樣的漏洞。
由于有多個客戶端,上海攻擊是可以恢復的,但如果一個類似的bug影響了多數共識客戶端,情況可能會截然不同。如果一個“共識客戶端”與當時Geth被攻擊時有著相同的主導性地位,那么以太坊量將無法實現敲定,因為此時大多數驗證者將無法對區塊進行證明。InactivityLeak將被激活,因為只有少于1/3的ETH質押金可用于進行證明。
Insecura鏈
“遠程攻擊”的可行性最近在Pyrmont測試網得到了證明。其想法是建立一組驗證者來證明一個備用的區塊鏈歷史。然后,這些驗證者被用來誘騙新的驗證者加入這條不誠實的“Insecura”鏈,從而逐漸增加被影響的驗證者的數量,最終達到中斷區塊鏈敲定、激活InactivityLeak并耗盡誠實多數驗證者的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客戶端能夠生成無效的存款根(depositroot),并將其傳遞給其他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/)獲取;共識客戶端的數據來自MichaelSproul(github.com/sigp/blockprint)。共識客戶端數據要更難獲取,因為信標鏈客戶端并不總是具有可以用來識別它們的明確蹤跡。這些數據是使用一種分類算法生成的,這種算法有時會弄錯一些少數客戶端。然而,很明顯,共識層的大部分網絡節點都在運行Prysm。Prysm的優勢有時更高,超過68%。盡管只是快照,但圖中的占比情況提供了客戶端多樣性的當前狀態的良好總體認識。
執行層的客戶端多樣性包含在上圖中,因為影響執行客戶端的bug可能也會傳播到共識層,這是由于合并之后,共識層和執行層將耦合在一起,且執行客戶端生成的執行負載(executionpayload)將是信標區塊的核心組件。
個人質押者&質押池
解決客戶端分配不平衡的問題,需要主要交易所和押注池(stkingpools)采取行動。然而,個人質押者也可以通過選擇運行非Geth/Prysm客戶端組合來發揮作用。搭建少數客戶端的說明須知可以在這個clientdiversity.org頁面找到:
https://clientdiversity.org/
對于持有量少于32ETH或者不想要承擔運行驗證者的責任的質押者來說,有一些質押服務提供商可以使用。一些主要的中心化交易所提供ETH質押服務,但他們的質押池中的客戶端分布情況通常是隱秘的,而且這些交易所提供的ETH質押代幣的可交易性是有限的。出于這些和其他的原因,不建議使用這些中心化的服務商。
一個更好的選擇是使用更去中心化的流動性押注服務提供商,如Lido或Rocketpool。這些服務商提供ETH質押服務,同時還提供了一種流動性代幣(比如用戶通過Lido協議質押ETH將獲得具有流動性的stETH代幣),這些流動性代幣的價值將隨著驗證者累積的獎勵而增加。這些代幣可以進行交易,或者用于賺取DeFi收益。這些流動性質押平臺的客戶端分布情況也要更加透明,比如Lido會發布季度更新,而Rocketpool現在也發布了他們的季度更新。對于不能或不愿意運行自己的驗證器者的用戶,這些服務是實現更好的客戶端多樣性的途徑。
總結
信標鏈的獎罰協議直接激勵了客戶端多樣性。單個客戶端占主導地位將是對以太坊的潛在威脅,當單個主導性客戶端表現良好時,這種威脅是無形的,但當該客戶端出現共識bug時,這種威脅可能是災難性的。擁有多個客戶端是以太坊的獨特優勢,也是開發者社區勤奮努力的證明。然而,當一個客戶端控制了大部分ETH質押金時,這種(以太坊開發者社區的)努力就會被削弱。理想的情況是在至少4個客戶端上平均分配ETH質押金,給每個客戶端最多1/4的ETH質押金。通過使用現在可用的生產就緒的客戶端,這是很容易實現的。
撰文:JosephCook
編輯:南風
我自己的理解是區塊鏈世界的motto「TrustButVerify」是一個很難對普通人管用的理念。編者按:下面這篇推薦閱讀的文章僅為此主題的一個引子.
1900/1/1 0:00:00作者:Akechi 一、導語 從2008年開始,區塊鏈技術走到今天已經整整經過了十四年的時間。在這十四年里,區塊鏈的應用從單純的數字資產擴展到基于分布式架構的游戲、收藏品,再到信息存儲、內容檢索.
1900/1/1 0:00:00加密投資者仍然希望美國證券交易委員會有朝一日會批準基于現貨的比特幣ETF,但數據顯示它有充分的理由不批準.
1900/1/1 0:00:00在女性遭受性騷擾甚至被攻擊的事件相繼被報道之后,仍處于萌芽狀態的虛擬現實空間成為人們關注的焦點.
1900/1/1 0:00:00去年12月10日,無錫市2021年梁溪大講堂第十講開講,北京航空航天大學法學院教授翟志勇以“元宇宙前傳關于數字空間和數字社會的思考”為主題,為宜興市廣大干群上了生動一課.
1900/1/1 0:00:00春節以來,一個為解救JulianAssange而創立的AssangeDAO正迅速躥紅。JuiceBox顯示,自2月3日開始籌款以來,在短短數日之內已募捐到約14,890枚ETH,以時價計算約47.
1900/1/1 0:00:00