header-langage
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
掃碼下載APP
Partnered With:

帶你瞭解ETH2.0中客戶端多樣性爲何如此重要

閱讀本文需 12 分鐘
Nimbus 和 Lodestar 客戶端運行的節點無法處理整個測試網的工作,因而沒有跟上同步節點的進度。這造成的結果是,Medalla 發佈半小時以後纔開始進行最終確定工作。

免責聲明:本文對並沒有針對哪一個客戶端。我們要知道,每個客戶端甚至每個規範都可能含有不足以及漏洞。更別說,Eth2 是一個十分複雜的協議,而它的實現者也都是凡人而已。寫這篇文章的目的是爲了強調如何以及爲什麼要減少風險。


來源:Ethereum Blog


作者:Carl Beekhuizen


Medalla 測試網發佈之後,我們鼓勵大家使用不同的客戶端參與測試網。而測試網創世那天,就給我們展現了多客戶端的重要性:Nimbus 和 Lodestar 客戶端運行的節點無法處理整個測試網的工作,因而沒有跟上同步節點的進度。這造成的結果是,Medalla 發佈半小時以後纔開始進行最終確定工作。


8 月 14 日,Prysm 節點出現時間錯誤,因爲他們參照的其中一個時間服務器突然跳到了未來的時間上。結果,這些節點開始提議未來區塊、驗證未來證明。


然而,節點的時鐘被校準之後 (通過更新客戶端版本的方式,或者由於時間服務器調回正確的時間了),早前取消了罰沒保護的節點卻發現其質押資產被罰沒了。


這整個過程都發生得有點微妙,我強烈推薦大家閱讀 Raul Jordan 對該事件的回顧文章。


時鐘錯誤—情況惡化


當 Prysm 節點開啓時間旅行的時候,他們約佔網絡份額的 62%。這意味着無法達到最終確定區塊的最低標準 (要有>2/3 活躍驗證者在鏈上)。更糟糕的是,這些節點無法找到它們所期望的鏈 (時間軸上出現了 4 小時的間隔,它們都去到了未來稍微不同的時間),所以他們在對「丟失」的數據預測時,通過短分叉淹沒了整個網絡。



圖示:目前 Prysm 客戶端佔 Medalla 節點總量的 82%

來源:ethernodes.org


那麼在這時,網絡充斥着對鏈頭的不同的預測,因此所有客戶端開始應付越來越多的工作——確定哪個鏈頭是有效的。這導致節點落後、需要同步、內存不足和其他形式的混亂,所有這些都使問題更加惡化。


總的來說,這此事件是好的,因爲這不僅讓我們修復了與時鐘相關的根本問題,還可以在大量節點故障和網絡負載的情況下對客戶端進行壓力測試。也就是說,這次失敗告訴我們網絡不能太極端,而該次事件的罪魁禍首就是因爲 Prysm 的節點佔網絡的大部分。


助力去中心化


有益於 eth2


正如本系列的第二期文章裏所討論的那樣,根據異步拜占庭容錯算法,1/3 是保證網絡安全的一個神奇數字。如果超過 1/3 的驗證者離線了,epochs 不能再被最終確定。所以儘管這時鏈仍在增長,也不再能對區塊進行確定,以及保證它是標準鏈的一部分。


有益於驗證者


很大程度上,驗證者是被激勵去做對網絡有益的事情,而不是因爲大家覺得這是件正確的事情所以纔去做。


如果超過 1/3 的節點離線了,那麼對離線節點的懲罰便開始增加,這就是所謂的「不作爲」懲罰。


這意味着,一名驗證者想要嘗試確保:如果自己的節點被逼下線了,那麼不可能同時逼其他節點下線。


罰沒也是一樣的。然而,由於規範或軟件出現錯誤/bug,驗證者總是有可能被罰沒,單個罰沒「僅僅」1 個 ETH。


然而,如果許多驗證者同時被罰沒,那麼懲罰會上升到 32 個 ETH。而又是這個神奇的數字,當超過 1/3 的驗證者被罰沒時,便會產生 32 個 ETH 的罰沒。


這些激勵方式分別被稱爲活性反相關和安全反相關,是 eth2 裏有意設計的一個方面。反相關機制通過將個體懲罰和每個驗證者對網絡的影響程度捆綁在一起,激勵驗證者做出符合網絡最大利益的決定。


數據的展示


許多獨立的團隊正在實現 Eth2,每個團隊根據主要由 Eth2 研究團隊編寫的規範開發獨立的客戶端。這確保了有多個信標節點和驗證者客戶端實現,每一個團隊都對構建 eth2 客戶端所需的技術、語言、優化、權衡等做出不同的決策。這樣,任何一層系統中出現 bug 時,只會影響運行特定客戶端的用戶,而不會影響整個網絡。


如果在這次 Medalla Prysm 發生的時間 bug 中,只有 20% 的 eth2 節點在客戶端 Prysm 上運行和 85% 的驗證者在線,那麼 Prysm 節點不會遭受「不作爲」懲罰,而且只需一點小懲罰以及開發者們的幾個不眠夜就可以解決問題了。


相反,由於運行同一個客戶端的驗證者太多了(其中許多驗證者取消了罰沒保護),在很短的時間內罰沒了 3500 到 5000 個驗證者。


*高度的相關性意味着這些驗證者的罰沒懲罰約爲 16 個 ETH,因爲他們使用的是一個比較普遍的客戶端。


*在撰寫本文時,罰沒還在不斷涌現,所以還沒有最終的數字。


用新的客戶端




現在是時候使用不同的客戶端參與測試了,找一個少部分驗證者在用的客戶端(可以點擊此處查看分佈狀況)。Lighthouse、Teku、Nimbus 以及 Prysm 此時都運行得較爲穩定,然 Lodestar 正迅速追趕中。


最重要的是,嘗試使用新的客戶端!我們可以在 Medalla 上嘗試構建更加健康的節點分佈,爲去中心化主網做好準備。


原文鏈接



歡迎加入律動 BlockBeats 官方社群:

Telegram 訂閱群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方帳號:https://twitter.com/BlockBeatsAsia

举报 糾錯/舉報
選擇文庫
新增文庫
取消
完成
新增文庫
僅自己可見
公開
保存
糾錯/舉報
提交