HoneyBadgerBFT共識演算法

買賣虛擬貨幣
HoneyBadgerBFT演算法是2016年提出的針對非同步網路設計的BFT共識演算法。HoneyBadgerBFT演算法論文的下載地址:https://eprint.iacr.org/2016/199.pdf。本文介紹HoneyBadgerBFT演算法的流程,複雜度推導,以及論文實驗結果。1)演算法流程

整體的演算法分為三個步驟:1)每個節點交易隨機選擇一些交易,所有節點的總交易個數是B。 每個節點的交易進行加密生成x。2)透過ACS協議將每個節點加密的交易進行廣播,以及形成統一交易序列。 3)解密交易生成區塊。整體的演算法流程如下:

2)TPKE加解密演算法

TPKE,threshold public key encryption,加解密演算法,一個公鑰,多份私鑰。透過TPKE加密後的資料需要多份子秘鑰才能解密。

TPKE.Setup建立公鑰PK和若干個子秘鑰SKi。TPKE.Enc用PK對m進行加密,加密結果是C。TPKE.DecShare用單個子秘鑰解密得到中間結果。TPKE.Dec用若干個中間結果解密得到m。

3)ACS協議

ACS - Asynchronous Common Subset。ACS協議又由兩個協議組成:RBC協議和BA協議。ACS協議的主要功能是透過RBC協議廣播交易,再透過BA協議形成一致的列表。網路節點間的資料共識的基礎是RBC協議。

4)RBC協議

RBC,reliable broadcast協議。RBC協議透過糾刪碼演算法降低節點間的資料傳輸。兩次廣播(ECHO以及READY訊息)後,網路節點間可以形成共識。RBC的演算法如下:

RBC演算法的精髓是充分利用所有節點間的網路頻寬。廣播發起者P,將需要廣播的資料(區塊),透過糾刪碼演算法分割成N份(其中有2f份是冗餘),分發給N個節點。節點之間利用它們自己的網路頻寬,廣播這些分割後資料。這樣做的好處是降低了廣播發起者P的網路頻寬,充分利用所有節點的網路頻寬,示意如下圖:

上圖中,廣播發起者先向三個網路節點A,B和C廣播糾刪碼演算法生成的分割後的小區塊。網路節點A,B和C在接收到小區塊資料後,廣播給其他節點。任何節點只要收到超過一定數量的小區塊就可以恢復出原始區塊。

5)複雜度以及實驗資料

論文指出HoneyBadgerBFT演算法的總的資料傳輸的複雜度:

其中,v是單節點上最大資料大小。推導方法如下圖所示:

因為一次傳輸實現B個交易(N^N*LogN),一個交易的傳輸量的複雜度可以近似為O(N)。

論文在Amazon叢集上模擬節點,對比了HoneyBadgerBFT和PBFT的效能,如下圖:

簡單的說,在網路節點少的情況下(比如,8節點),HoneyBadgerBFT效能稍遜PBFT演算法。但是在網路節點變多的情況下,HoneyBadgerBFT演算法的效能幾乎不變,而PBFT演算法的效能顯著下降。

總結:HoneyBadgerBFT是針對非同步網路設計的共識演算法。HoneyBadgerBFT演算法,讓網路節點同時廣播交易,其核心是RBC廣播協議。RBC廣播協議的主要思想是,使用糾刪碼演算法降低節點間的資料傳輸量,並透過BA演算法形成一致的交易列表。論文指出HoneyBadgerBFT演算法的複雜度是O(N),在網路節點少的情況下(比如,8節點),HoneyBadgerBFT效能稍遜PBFT演算法。但是在網路節點變多的情況下,HoneyBadgerBFT演算法的效能幾乎不變,而PBFT演算法的效能顯著下降。


更多區塊鏈資訊:www.qukuaiwang.com.cn/news

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;