1)算法流程整个算法分为三个步骤:1)每个节点事务随机选择一些事务,并且所有节点的事务总数为B。每个节点的事务被加密以生成x。 2)通过ACS协议广播每个节点的加密事务,并形成统一的事务序列。 3)解密事务以生成块。总体算法流程如下:2)TPKE加密和解密算法TPKE,阈值公共密钥加密,加密和解密算法,一个公共密钥,多个私有密钥。 TPKE加密的数据需要多个秘密密钥才能解密。 TPKE.Setup创建一个公共密钥PK和几个子密钥SKi。 TPKE.Enc用PK加密m,加密结果为C。TPKE.DecShare用单个子密钥解密以获得中间结果。 TPKE.Dec使用几个中间结果解密以获取m。 3)ACS协议ACS异步通用子集。 ACS协议由两个协议组成:RBC协议和BA协议。 ACS协议的主要功能是通过RBC协议广播事务,然后通过BA协议形成一致的列表。网络节点之间数据共识的基础是RBC协议。 4)RBC协议RBC,可靠的广播协议。 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算法的性能则大大降低。