• 【超完整懶人包】認識比特幣!原理與應用全面解析|動區新手村
  • Account
  • Account
  • BlockTempo Beginner – 動區新手村
  • Change Password
  • Forgot Password?
  • Home 3
  • Login
  • Login
  • Logout
  • Members
  • Password Reset
  • Register
  • Register
  • Reset Password
  • User
  • 不只加密貨幣,談談那些你不知道的區塊鏈應用|動區新手村
  • 動區動趨 BlockTempo – 最有影響力的區塊鏈新聞媒體 (比特幣, 加密貨幣)
  • 所有文章
  • 最完整的「區塊鏈入門懶人包」|動區新手村
  • 服務條款 (Terms of Use)
  • 關於 BlockTempo
  • 隱私政策政策頁面 / Privacy Policy
動區動趨-最具影響力的區塊鏈新聞媒體
  • 所有文章
  • 搶先看
  • 🔥動區專題
  • 🔥Tempo 30 Award
  • 加密貨幣市場
    • 市場分析
    • 交易所
    • 投資分析
    • 創投
    • RootData
  • 區塊鏈商業應用
    • 金融市場
    • 銀行
    • 錢包
    • 支付
    • defi
    • 區塊鏈平台
    • 挖礦
    • 供應鏈
    • 遊戲
    • dApps
  • 技術
    • 比特幣
    • 以太坊
    • 分散式帳本技術
    • 其他幣別
    • 數據報告
      • 私人機構報告
      • 評級報告
  • 法規
    • 央行
    • 管制
    • 犯罪
    • 稅務
  • 區塊鏈新手教學
  • 人物專訪
    • 獨立觀點
  • 懶人包
    • 比特幣概念入門
    • 從零開始認識區塊鏈
    • 區塊鏈應用
  • 登入
No Result
View All Result
  • 所有文章
  • 搶先看
  • 🔥動區專題
  • 🔥Tempo 30 Award
  • 加密貨幣市場
    • 市場分析
    • 交易所
    • 投資分析
    • 創投
    • RootData
  • 區塊鏈商業應用
    • 金融市場
    • 銀行
    • 錢包
    • 支付
    • defi
    • 區塊鏈平台
    • 挖礦
    • 供應鏈
    • 遊戲
    • dApps
  • 技術
    • 比特幣
    • 以太坊
    • 分散式帳本技術
    • 其他幣別
    • 數據報告
      • 私人機構報告
      • 評級報告
  • 法規
    • 央行
    • 管制
    • 犯罪
    • 稅務
  • 區塊鏈新手教學
  • 人物專訪
    • 獨立觀點
  • 懶人包
    • 比特幣概念入門
    • 從零開始認識區塊鏈
    • 區塊鏈應用
  • 登入
No Result
View All Result
動區動趨-最具影響力的區塊鏈新聞媒體
No Result
View All Result
Home 技術 以太坊

科普|以太坊2.0 Staking 指南〈參〉:分片化的共識 Sharded Consensus

以太坊愛好者 by 以太坊愛好者
2020-05-30
in 以太坊
A A
科普|以太坊2.0 Staking 指南〈參〉:分片化的共識 Sharded Consensus
180
SHARES
分享至Facebook分享至Twitter

Sharding(分片)是 Eth2 對比 Eth1 的許多升級之一。這個名詞來源於數據庫研究,就是將一個大的數據庫切分為許多部分,而一個分片就是一個部分。本文源自於 Ethereum 的 Carl Beekhuizen 之文章 《Validated, staking on eth2: #3 – Sharding Consensus》,由專欄作者 以太坊愛好者編譯、撰寫及整理。

本文目錄

  • 分片化的共識
    • 分析
    • 綜合
  • 總結
    • 以太坊 1.0 和 2.0 有什麼區別?關於 Ethereum 2.0 的 「17 個常見問題」
    • Vitalik 聊以太坊 2.0:即將過時的以太坊礦機可用於「零知識證明」
    • 【新手科普】快速認識以太坊網路的治理全景

 

那麼放到 Eth2 和數據庫的語境下,分片就意味著要把整個系統的存儲和計算切分開來、相互獨立地處理各分片,然後隨實際需要組成最終結果。具體來說,Eth2 系統中包含了許多分片鏈,而每一個條分片鏈的功能(capability)都與 Eth1 區塊鏈相似,這就能帶來大幅度的可擴展性提升。

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

分片化的共識

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

分析

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

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

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

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

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

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

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

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

  1. 保證驗證者的委員會分配是隨機的
  2. 組成委員會有數量下限要求

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

延伸閱讀:以太坊 2.0 的基本架構與設計抉擇

延伸閱讀:如何理解以太坊 2.0?先從理解 12 個專業術語開始

綜合

驗證者提交的投票叫做「見證消息」。見證消息由幾個部分組成:

  • 對信標鏈頂端區塊的投票
  • 對合理化信標區塊 / 確定化信標鏈區塊的投票
  • 對分片鏈最新狀態的投票
  • 所有同意該投票的驗證者的簽名

把盡可能多的部分都組合到一條見證消息中,系統的整體效率便得以提升,因為,在檢查驗證者的簽名時,不再需要分別驗證對信標鏈區塊的投票和對分片鏈區塊的投票,節點只需基於見證消息做運算,即可得知信標鏈區塊的狀態和每一條分片鏈的狀態。

如果每一個驗證者都提交了自己的見證消息,而每一條見證消息都需要被所有其它節點單獨驗證一次,那麼 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。

延伸閱讀:入門知識|分片技術、BFT-DPOS、Sharding、TPS 名詞解釋

總結

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

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

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

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


【以太坊2.0 Staking 指南系列】

  • 以太坊 2.0 最新 Staking 指南〈零〉:Eth2 的各個階段
  • 以太坊2.0 Staking 指南〈壹〉: 激勵機制 Incentives
  • 科普|Eth2 Staking 指南〈貳〉: FLP 不可能原理與 Eth2 的共識機制

📍相關報導📍

以太坊 1.0 和 2.0 有什麼區別?關於 Ethereum 2.0 的 「17 個常見問題」

Vitalik 聊以太坊 2.0:即將過時的以太坊礦機可用於「零知識證明」

【新手科普】快速認識以太坊網路的治理全景


讓動區 Telegram 新聞頻道再次強大!!立即加入獲得第一手區塊鏈、加密貨幣新聞報導。

LINE 與 Messenger 不定期為大家服務

加入好友

加入好友

Tags: 以太坊2.0分片


關於我們

動區動趨

為您帶來最即時最全面
區塊鏈世界脈動剖析
之動感新聞站

訂閱我們的最新消息

動區精選-為您整理一週間的國際動態

戰略夥伴

Foresight Ventures Foresight News

主題分類

  • 關於 BlockTempo

動區動趨 BlockTempo © All Rights Reserved.

No Result
View All Result
  • 所有文章
  • 搶先看
  • 市場脈動
  • 商業應用
  • 區塊鏈新手教學
  • 區塊鏈技術
  • 數據洞察
  • 政府法規
  • RootData
  • 登入

動區動趨 BlockTempo © All Rights Reserved.