用户登陆
正在加载
HoneyBadgerBFT共识算法
互联网 · 2019-03-08 22:01:41

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算法的性能显著下降。

免责声明:
本网站所提供的所有信息仅供参考,不构成任何投资建议。用户在使用本网站的信息时应自行判断和承担风险。币界网不对用户因使用本网站信息而导致的任何损失负责。用户在进行任何投资活动前应自行进行调查和研究,并谨慎决策。币界网不对用户基于本网站信息做出的任何投资决策负责。用户在本网站发布的任何内容均由其个人负责,与币界网无关。
免责声明:本网站、超链接、相关应用程序、论坛、博客等媒体账户以及其他平台和用户发布的所有内容均来源于第三方平台及平台用户。币界网对于网站及其内容不作任何类型的保证,网站所有区块链相关数据以及其他内容资料仅供用户学习及研究之用,不构成任何投资、法律等其他领域的建议和依据。币界网用户以及其他第三方平台在本网站发布的任何内容均由其个人负责,与币界网无关。币界网不对任何因使用本网站信息而导致的任何损失负责。您需谨慎使用相关数据及内容,并自行承担所带来的一切风险。强烈建议您独自对内容进行研究、审查、分析和验证。
s_logo
App内打开