隨著信標鏈(beacon chain)的啟動即將到來,Eth2 也越來越接近定局,現在是時候與社區同步有關 Eth2 的內在運作方式以及成為驗證者的具體要求、激勵機制和經驗等信息了。本文將對 Eth2 進行高層面的概述,此文將構成與驗證者相關的以太坊系列文章的基礎。
Eth2 的研究工作已經進行很長一段時間了,相關工作在過去的幾年中得到了顯著改善。最初通過智能合約分開管理的分片設計 (sharding) 和權益證明( PoS) 工作現已轉變為高度互聯的設計,在效率、可擴展性和安全性方面得到了顯著提升。
Eth2 的幾個階段
在 Eth2 的一些組件變得更加互連的同時,其他組件被分成了幾個階段,從而更好地管理 Eth2 的方方面面。撰寫本文時,階段0即將啟動,開發人員們已經在對客戶端軟件進行最后的收尾工作了。與此同時,階段1的規范已經完成,針對階段2的研發工作也在積極開展了。
階段0與信標鏈有關,信標鏈是 Eth2 的核心,它管理著驗證者和分片的協調。信標鏈是事實的源泉,Eth2 的所有其他方面都從這里啟動。
階段1建立在此基礎上,允許將數據被放入分片中。實現這一組件的復雜性比其他組件要小得多,因為階段0已經為分片做了大部分基礎工作。
階段2將為 Eth2 增加執行功能,基本上就是將 Eth2 從一個強大的數據庫升級為一個完全去中心化的計算平臺。
階段0是什么?
如前所述,信標鏈會追蹤驗證者集和分片鏈。在實踐中,這意味著如果你 (周期性地) 追蹤信標鏈上發生的事情,你就會知道足夠的信息來驗證 Eth2 中發生的任何事情。通過驗證來信任。
為了使 PoS 系統能夠正常運行,需要就哪些是驗證者以及每個驗證者的抵押情況等方面達成共識,這樣才能知道他們的投票權重有多大,并根據他們的行為來按比例地進行獎勵和/或懲罰。信標鏈也會管理 Eth2 中的分片部分,即信標鏈也負責將驗證者分配到分片中并追蹤每條分片當前的狀態。
Eth2 與其他 PoS 系統的部分區別在于參與到 Eth2 協議中的驗證者的絕對數量。與其他 PoS 系統中可能存在的數十個、數百個或者數千個參與驗證者的情況不同,Eth2 擴展到了數十萬甚至數百萬的驗證者。這種程度的去中心化之所以成為可能,得益于由諸多被稱為委員會 (committees) 的驗證者小組達成的中間共識。
本質上,信標鏈基于一定的隨機性來將驗證者分配到各個委員會中,委員會將負責評估哪些是 (以及哪些不是) 信標和分片鏈的一部分 (備注:也即對區塊進行投票驗證)。之后,每個委員會的投票將以加密的方式聚合成一個證明 (attestation),這意味著驗證每個委員會的所有投票只是比檢查單個投票略微麻煩一些。因此,只需考慮少數的聚合簽名來評估許多驗證者的投票,就可以核查信標鏈的有效性。
信標鏈也會追蹤 Eth1 鏈和上面的抵押金,這樣新的驗證者就可以通過將 32 ETH 發送到部署在 Eth1 鏈上的抵押合約 (deposit contract) 來加入到 Eth2 系統中。信標鏈對 Eth1 鏈進行投票 (也即信標鏈對 Eth1 鏈上的 Staking 參與者的抵押進行投票驗證) 帶來的結果就是,Eth2 將在未來的某個時候,可以為區塊屬于 Eth1 權威鏈 (也即所謂的最長鏈) 的一部分提供經濟保證,從而增強 Eth1 鏈的安全性。
節點 vs. 客戶端
Eth2 將信標節點 (beacon nodes) 和驗證者客戶端 (validator clients) 區別了開來,且驗證者將同時需要信標節點和驗證者客戶端才能執行自己的職責(即進行投票驗證)。
信標節點 (也即節點) 負責維護信標鏈,以及對用戶或驗證者需要使用哪條分片進行管理。
驗證者客戶端 (也即客戶端) 負責處理單個驗證者的邏輯。即客戶端通過與信標節點進行通信來了解信標鏈的當前狀態,并在適當的時候提議區塊或者對區塊進行驗證,最后通過請求信標節點將此信息發送給其他信標節點。
“如果你不運行驗證者客戶端,信標節點包含了所有你與 Eth2 進行無需信任交互所需的信息,就像是 Eth1 中的全節點一樣。”
以下是支持這種將信標節點與驗證者客戶端區分開來的眾多理由中的其中一些:
每個驗證者都需要抵押 32 ETH 才能激活,因此任何想要抵押超過 32 ETH 的用戶都將需要運行多個驗證者實例。將信標節點與驗證者客戶端區別開來,將可以讓這部分用戶只需運行一個信標節點和多個與該節點相連接的驗證者客戶端,這樣可以減少用戶的計算、內存和存儲要求。
將驗證者客戶端區別開來作為獨立的模塊,這樣客戶端將很可能更加安全,因為客戶端更易于編寫、推理和審計更小的代碼模塊。
對于特別擔心會出現冗余情況的用戶來說,實際上可以并行運行多個節點,這樣可以降低驗證者離線的概率。
由于驗證者客戶端只能通過某個信標節點才能與 Eth2 網絡中的其他部分進行交互,且即便那樣也需要通過一個受限的API,這樣驗證者的攻擊面就大大減少了。
對于想與 Eth2 進行交互但不想成為驗證者的用戶來說,他們只需要運行一個信標節點就可以運行他們訪問信標鏈和所有他們想要訪問的分片鏈。
設計理念
協議高于一切:雖然我們需要承認一切事物都有其權衡之處,但協議的安全性與活性高于其他的設計需求。
抱最高的希望,做最壞的打算:Eth2 的假設是,驗證者很懶,會收受賄賂,而且還會試圖攻擊系統,除非能激勵他們不這樣做。此外,Eth2 還假設,網絡不完全可靠,而且災難性事件可能會迫使大量驗證者離線。基于這些原因,Eth2 應具備能在第三次世界大戰中幸存下來的能力。
最小程度的可行復雜性:只要有可能,Eth2 已得到簡化,因為這將使其更易理解、更易向他人解釋、更易審核、更易編寫無 Bug 客戶端,并且通常更易避免邊緣化的情況。
最大程度的去中心化:PoS 協議普遍在驗證者數量這一點上進行了妥協,而 Eth2 的設計初衷就是將驗證者數量擴展到數百萬,同時鼓勵這些驗證者彼此獨立工作。
做好迎接意外的準備:Eth2 上的所有組件都是抗量子計算機,或者可以在量子大災難到來之際變成抗量子計算機的組件。
民治民享:Eth2 必須能在筆記本電腦上運行。參與門檻越低,參與的人就越多,這有助于帶來更高程度的去中心化水平。
總結
現在大家已經對 Eth2 有了基本的了解,在本系列的后續文章中,我們將為大家介紹更多細節,探討 Eth2 得以運行的原因。
責任編輯:ct
評論
查看更多