区块链-HoneyBadgerBFT共识算法

HoneyBadgerBFT算法2016年提出,针对异步网络设计。HoneyBadgerBFT算法论文的下载地址:https://eprint.iacr.org/2016/199.pdf。

本文介绍HoneyBadgerBFT算法的流程以及论文实验结果。

1)总体算法流程

HoneyBadgerBFT算法分为三个步骤:1)随机选择交易 2)通过ACS协议实现加密后的交易的共识,获取交易列表 3)解密加密交易。算法流程如下:

TPKE,threshold public key encryption,带阀值的加密算法。通过TPKE加密后的数据,需要多份子秘钥才能解密。

TPKE.Setup创建公钥PK和若干个子秘钥SKi。TPKE.Enc用PK对m进行加密,加密结果是C。TPKE.DecShare用单个子秘钥解密得到中间结果。TPKE.Dec用若干个中间结果解密得到m。

可以发现HoneyBadgerBFT的核心是ACS协议。

2)ACS协议

ACS - asynchronous common subset。ACS协议由两个协议组成:一个是RBC协议,一个是BA协议。ACS协议的主要功能是通过RBC协议广播交易,再通过BA协议形成一致的交易列表。

BA协议,Binary Agreement,相对简单,不做介绍。网络节点间的数据共识的基础是RBC协议。

3)RBC协议

RBC,reliable broadcast协议。RBC协议通过纠删码算法降低节点间的数据传输。两次广播(ECHO以及READY消息),网络节点间可以形成共识。

4)性能以及和PBFT算法对比

论文指出HoneyBadgerBFT算法的总的数据传输的复杂度:

其中,v是单节点上最大数据大小。从单个节点来看,复杂度可以近似为O(NlogN)。论文在Amazon集群上模拟节点,对比了HoneyBadgerBFT和PBFT的性能,如下图:

简单的说,在网络节点少的情况下(比如,8节点),HoneyBadgerBFT性能稍逊PBFT算法。但是在网络节点变多的情况下,HoneyBadgerBFT算法的性能几乎不变,而PBFT算法的性能显著下降。

总结:HoneyBadgerBFT是针对异步网络设计的共识算法。HoneyBadgerBFT算法的核心是RBC广播协议,主要思想是,网络节点可以同时广播交易,通过BA算法形成一致的交易列表。论文指出HoneyBadgerBFT算法的复杂度是O(NlogN),在网络节点少的情况下(比如,8节点),HoneyBadgerBFT性能稍逊PBFT算法。但是在网络节点变多的情况下,HoneyBadgerBFT算法的性能几乎不变,而PBFT算法的性能显著下降。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180824G1886400?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券