添加【金融之家】为好友

扫描二维码

或添加QQ 【724996599】成为为好友

满足以下场景,获得更高通过率:

1. 新融资求报道

2. 新公司求报道

3. 新产品求报道

4. 金融新闻爆料

我知道了

如有投稿需求,请发邮件至 tougao@jrzj.com

会有专人和您联系

我知道了

HoneyBadgerBFT共识算法

来源: 首页 > 投资担保

2018-11-21 00:02:36 
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算法的性能显著下降。


免责声明:[ 金融之家-JRZJ.COM刊发此文目的在于传递更多信息,文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担 ]

责任编辑: