ETH2驗證者每個slot投票
『壹』 【Discover ETH】什麼是權益證明PoS
本篇作為Discover系列文章的開篇,結合ETH2.0的目標,來談談權益證明PoS是什麼。
在談PoS之前,我們先來了解一下共識。共識,即達成了普遍協議。區塊鏈實質上是一個全球性的狀態機,達成共識意味著網路上至少有超過一半(51%)的節點同意網路的下一個全球狀態。
共識機制 (也稱為共識協議或共識演算法)允許分布式系統(計算機網路)協同工作並保持安全。當前主流的共識機制有兩種,分別是 工作量證明 (Proof of Work,PoW)和 權益證明 (Proof of Stake,PoS)。以太坊在設計之初就希望最終以太坊的共識機制能轉變為PoS,而PoW只作為一個過渡階段。但無論是PoW還是PoS,最終的目的都是相同的,即實現分布式計算機的共識機制。下面先簡單了解工作量證明(PoW)的工作機制。
工作量證明通過礦工們完成,礦工們需要競爭創建最新區塊以處理和完成交易。 獲勝者將與網路中的其他節點分享最新區塊,並且獲得最新的特定代幣區塊獎勵(如以太坊的以太幣)。由於用戶需要擁有超過網路中 51% 的算力才能夠欺騙整條鏈,因此網路安全得以保證。 這將需要巨大的設備和能源投入,所需的開支甚至可能超過收益。
工作量證明是08年在中本聰所創造的比特幣中提出的,至今已經經過了充分的考驗和測試,但隨著越來越多的礦工和礦池的加入,挖掘新的區塊的難度指數爆發式上升,也面臨的如下的問題:
PoS作為ETH2.0關鍵的建設目標,其作用不僅僅只是因為PoW帶來的環境不友好的能源消耗,還有PoS的建設能更有力支持 分片鏈 (以太坊網路擴展的關鍵升級),更強的去中心化特性等等。下面從幾個方面來簡單談談權益證明PoS的工作過程。
在以太坊中,工作量證明的過程參與的角色是礦工/礦池。其目的是通過算力試錯來反復計算,以此生成一個低於目標隨機數的混合哈希。這個計算難度依賴於區塊所聲明的 難度 ,難度越小,有效的哈希值的集合就越小。而在權益證明中,則沒有礦工這一角色,與之對應的是稱之為 驗證者 的角色。
在ETH2.0中,用戶需要質押 32ETH 來獲得作為驗證者的資格。驗證者被 信標鏈 隨機選擇去創建區塊,並且負責檢查和確認那些不是由他們創造的區塊。他們不需要開采區塊,他們只需要在被選中的時候創建區塊並且在沒有被選中的時候驗證他人提交的區塊。此驗證被稱為證明。
驗證者因提出新區塊和證明他們已經看到的區塊而獲得獎勵,對於一些惡意驗證者節點,也會有相應的懲罰機制使之失去質押。驗證者質押的ETH越多,獲得的獎勵也越多。可以這樣說,權益證明是一種用於激勵驗證者接受更多質押的機制。
前面提到了 分片鏈 這個名詞, 分片 就是將區塊鏈分成多條鏈。驗證者將會在不同的分片上處理它們的分片數據,以此來提高區塊鏈的工作效率。ETH2.0預計會有64個分片鏈。
驗證者會被隨機洗牌到不同的分片中,以防止驗證者惡意操縱節點並提高鏈的安全性。處理不同分片之間的數據的關鍵角色就是 信標鏈 (Beacon Chain)。
信標鏈 是協調分片信息、管理驗證者的連接不同分片的橋梁。
當用戶在分片上提交交易時, 驗證者 將負責將用戶的交易添加到分片區塊中。 信標鏈 通過演算法選擇驗證器以提出新的塊。如果一個驗證者沒有被選中提出一個新的分塊,它們將會證明另一個驗證者的提議,並確認一切都正常。
至少需要 128 個被稱為 委員會 ( committee )的驗證者來證明每個分片塊。委員會有一個提出和驗證分片區塊的時限,這個時限被稱為 插槽 ( Slot ),大約為12秒。 每個插槽只能創建一個有效區塊,一個 周期 ( Epoch ,大約6.4分鍾)有 32 個插槽。
每個周期過後,委員會都由不同的、隨機的參與者解散與重組,重組過程由一個半隨機演算法 RANDAO 來選擇,以此避免惡意節點的操縱。
ETH2.0使用 Cassper 終局協議來確認一個新的區塊是否得到足夠的證明,即只要2/3的插槽同意(即當前參與計算的2/3的驗證者節點),該區塊就會被最終確定。而推薦此區塊的驗證者將獲得獎勵。因此,在權益證明的機制下,每過6.4分鍾就會創建一個新的區塊。關於Cassper協議的詳細說明後續再進行探索。
權益證明的建設以太坊在15年就已經提出,截止至今也才完成了Phase 0信標鏈的建設。而下一階段的與主網合並,再下一階段的分片鏈建設也一再推遲。雖然PoS的建設非常緩慢,但無論如何,權益證明作為主流的共識機制演算法之一,也是值得我們探討其設計原理。
後續將會針對信標鏈的詳細設計、分片等ETH2.0內容進行探索。