區塊鏈知識系列 - HotStuff 共識

共識協議 HotStuff 由 VMware Research 等團隊於2018年3月提出,其預印版經過五輪迭代修改,並將於並行與分佈計算領域著名的國際會議 PODC 2019上正式發表。

HotStuff 是一個基於主節點(Leader)的拜占庭容錯共識協議

共識協議的目標是在去中心化的網絡中就係統的狀態達成統一的認識,以便所有的(誠實)節點統一從一個狀態遷移到另一個狀態。

  • PBFT 採用了兩輪2/3投票來完成這個目標
  • HotStuff 採用了3輪2/3投票來完成這個目標

HotStuff 特點:

  1. 將 PBFT 的網狀通信網絡拓撲變成了星形通信網絡拓撲,即它每次通信都依靠主節點。
    在這裏插入圖片描述
  2. 3輪2/3投票
    • pre-commit 階段
    • commit 階段:
    • decide 階段

在這裏插入圖片描述
3. 門限簽名

對於一個(k, n)-門限簽名方案,假定存在一個公鑰,而 n 個簽名者每人都擁有自己的私鑰(分片)。只要其中至少 k 個簽名者對消息進行部分簽名,那麼由這 k 個部分簽名可以導出對消息的完整簽名,並且這個完整簽名可以由公鑰來驗籤。

PBFT的一個問題是區塊頭內包含了大量的確認簽名, 使用門限簽名可減少共識協議中籤名的個數.

在 HotStuff 的三階段確認中,所謂投票,就是其它節點即對某個消息進行門限簽名併發送給主節點。當主節點收到足夠多的投票時會導出完整簽名。主節點向其它節點廣播下一階段消息時將附上這個簽名,供其它節點將驗證。

在這裏插入圖片描述
4. 共識過程的流水化處理 (與EOS相同機制)

三個確認階段的行爲: 其它節點對某一消息進行投票,主節點合成投票意見並通知給其它節點。這些過程可以統一表示,並採用流水化來處理。 這本質上就是讓下一個視圖的 prepare 階段爲當前視圖的 prepare 階段進行確認,即下一個 prepare 階段(隱含地)包含了對當前視圖的 pre-commit 確認,並以此類推。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章