Opaycoin交易所觀察:科普 | Eth 2 Staking 指南:分片化的共識

發表於 2022-03-23 21:04 作者: 01區塊鏈

Opaycoin交易所觀察 作者: Carl Beekhuizen

翻譯: 阿劍

來源:以太坊愛好者

 

特別感謝 Sacha Yves -Leger 和 Joseph Schweitzer 的指正。

Sharding(“分片”)是Eth2對比Eth1的許多升級之一。這個名詞來源於數據庫研究,就是將一個大的數據庫切分爲許多部分,而一個分片就是一個部分。那么放到 Eth2 和數據庫的語境下,分片就意味着要把整個系統的存儲和計算切分开來、相互獨立地處理各分片,然後隨實際需要組成最終結果。具體來說,Eth2 系統中包含了許多分片鏈,而每一個條分片鏈的功能(capability)都與 Eth1 區塊鏈相似,這就能帶來大幅度的可擴展性提升。

不過,在 Eth2 中還有一種不那么爲人所知的分片類型,而且從協議設計的角度來看,這個類型可能更爲激動人心:分片化的共識(sharded consensus)

 

分片化的共識

 

就像網絡中最慢節點的處理能力限制了網絡的吞吐量,單個驗證者的計算資源也決定了能夠參與共識的驗證者總數量。因爲每新增一個驗證者,都會給系統中的所有其他驗證者帶來額外的工作量,那么隨着驗證者數量的增加,最終會達到一個狀態:資源最少的那個驗證者將不再能夠參與共識(因爲它不再能夠全程追蹤所有其他驗證者的投票)。那么 Eth2 處理這個問題的方案就是 分片化的共識

 

分析

Eth2 的系統中有兩種基本的時間單位,時隙(slot)和時段(epoch)。

一個時隙是 12 秒,這是我們預期可出一個區塊的時間;區塊其實是一種讓驗證者的投票能集合發布到鏈上的機制,不止於包含交易讓鏈變得有用。

Opaycoin交易所觀察 一個時段由 32 個時隙組成(因此是 6.4 分鐘),在一個時段中,信標鏈要執行所有跟鏈的維護相關的計算,包括:合理化及敲定新區塊、給驗證者發放獎勵和懲罰。

我們在本系列的第一篇文章中提到,驗證者會被分配到不同的委員會中執行工作。那么在任一時刻,都有驗證者同時既是信標鏈委員會成員、也是某一個分片鏈委員會的成員;每個驗證者在一個時段中都要發出見證消息一次 —— 爲已經提出的信標鏈區塊投票。

Opaycoin交易所觀察 Eth2 的分片化共識的安全模型,基於這樣一個觀念:讓委員會在某種程度上就是整個驗證者集合的准確統計學代表。

舉例而言,如果整個驗證者集合中有 33% 的驗證者是惡意的,那么他們可能就會進入到同一個委員會中。那就完蛋了。

所以,我們需要確保事情不至於如此。換句話來說,我們需要保證的是,如果 33% 的驗證者是惡意的,那么在一個委員會中只有約 33% 的驗證者是惡意的。

我們需要兩個舉措來實現這一點:

  1. 保證驗證者的委員會分配是隨機的
  2. 組成委員會有數量下限要求
舉個例子,如果單個委員會由 128 個隨機選出的驗證者組成,那么一個控制了全網 1/3 驗證者的攻擊者能夠控制單個委員會的 2/3 驗證力量的概率是非常非常小的(概率低於 2^-40)。

 

綜合

驗證者提交的投票叫做 “見證消息”。見證消息由幾個部分組成:
  • 對信標鏈頂端區塊的投票
  • 對 合理化信標區塊/確定化信標鏈區塊 的投票
  • 對分片鏈最新狀態的投票
  • 所有同意該投票的驗證者的籤名
把盡可能多的部分都組合到一條見證消息中,系統的整體效率便得以提升,因爲,在檢查驗證者的籤名時,不再需要分別驗證對信標鏈區塊的投票和對分片鏈區塊的投票,節點只需基於見證消息做運算,即可得知信標鏈區塊的狀態和每一條分片鏈的狀態。

如果每一個驗證者都提交了自己的見證消息,而每一條見證消息都需要被所有其它節點單獨驗證一次,那么 Eth2 的節點的开銷可能會變得很大。這就是爲什么我們需要 “聚合技術”。

見證消息被設計成容易組合的形式,因此,如果有兩個乃至更多驗證者做了同樣的投票,那就可以用一條見證消息把他們的投票都匯總起來,只需把籤名字段放在一起即可。這就是 “聚合” 和含義。

委員會的投票在根本上來說也是易於聚合的,因爲這些驗證者都被分配到了同一個分片上,因此分片狀態的投票和對信標鏈區塊的投票很可能是相同的。這就是 Eth2 能隨着驗證者數量的增加而擴展吞吐量的機制。通過把驗證者打散到委員會內,驗證者將只需關心自己所在委員會的成員,也只需檢查極少數從其它委員會處傳來的、已經聚合過的見證消息。

 

籤名聚合

Eth2 使用了 BLS 籤名方案 —— 一種在多條橢圓曲线上得到定義、對籤名聚合較爲友好的方案。在方案所選定的曲线上,單個籤名的大小是 96 字節。

如果佔總量 10% 的 ETH 參與了質押,則 Eth2 會擁有約 35 萬個驗證者。這就意味着,單個 epoch 產生的籤名數據量大小可能會達到 33.6 MB,那么一天就是 7.6 GB。那么,只要 133 天,籤名數據就會超過 1 TB。

解決方案是,BLS 籤名是可以聚合的。如果 Alice 提交了籤名 A,而 Bob 所提交的籤名 B 是對相同數據籤的名,那么只需存儲 C = A+B,就能驗證 Alice 和 Bob 的籤名。使用了籤名聚合技術,整個委員會的驗證者前面都可以聚合成一個籤名。這樣就能將籤名數據的存儲需求降低到每天 2 MB。

總結

 

把驗證者分配到不同委員會中的設計,讓驗證 Eth2 所需付出的工作量降低了幾個數量級。

對於一個想要驗證信標鏈和所有分片鏈的節點來說,它要做的僅僅是監測來自每一個委員會的聚合見證消息,只需如此便可知道每條分片鏈的狀態,以及各驗證者對哪些區塊 屬於/不屬於 信標鏈主鏈的看法。

因此,委員會機制幫助 Eth2 實現了兩大設計目標:只需消費者級別的筆記本即可參與 Eth2 網絡、支持盡可能多的驗證者來實現盡可能的去中心化。

用數字來說明:大多數拜佔庭容錯式的權益證明協議只能支持數十位驗證者(在某些案例中可支持數百位驗證者),但 Eth2 可以支持數十萬驗證者同時爲系統安全性作貢獻,又不犧牲執行時延和吞吐量。

 

原文鏈接:https://blog.ethereum.org/2020/03/27/sharding-consensus/

標題:Opaycoin交易所觀察:科普 | Eth 2 Staking 指南:分片化的共識

地址:https://www.coinsdeep.com/article/1131.html

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

你可能還喜歡
熱門資訊