一种基于PBFT的歧视的优化方法

文档序号:34734136发布日期:2023-07-12 17:54阅读:16来源:国知局
一种基于PBFT的歧视的优化方法

本发明属于区块链共识机制,具体为一种基于pbft的歧视的优化方法。


背景技术:

1、目前区块链按照应用场景可分为三类:私有链:所有网络中的节点全部掌握在一个公司手中;联盟链:允许授权的节点加入网络,其一般被多家公司所共同掌控,且区块链中的节点的身份是已知的;公有链:面向所有节点进行公开,无需身份注册,同时也不被任何一家机构所长时间掌控。而在联盟链中,由于节点的身份已知,且只有受到允许的节点才可以加入,因此pbft成为联盟链中使用较多的共识算法。虽然使用的次数较多,但他仍然存在着些许问题,如由于通信复杂度的限制,使得pbft共识算法参与的节点的数量受到限制,当节点数量增加时,通信的时间也将大幅度增加,这时共识达成的时间就会相应的增加,从而导致吞吐量下降。

2、随着共识算法的研究的不断深入,pbft算法也在不断地进行迭代优化,且方向也各不相同。如推测拜占庭算法(speculative bft,sbft)(ramakrishna kotla,lorenzoalvisi,mike dahlin,allen clement,and edmund wong.2010.zyzzyva:speculativebyzantine fault tolerance.acm trans.comput.syst.27,4,article 7(december2009),39pages.https://doi.org/10.1145/1658357.1658358)通过共识第一阶段收集全部节点的信息并对其进行判断,如果收集到的信息全部为诚实节点的信息,那么跳过第二阶段,但是由于需要额外的时间对节点信息进行等待,而且当出现恶意节点时,仍需进行第二阶段共识,因此参与共识的节点数量较多时共识速度将会收到重大的影响。文献(yangj,jia z h,su r g,et al.improved fault-tolerant consensus based on the pbftalgorithm[j].ieee access,2022,10:30274-30283.)使用散列算法对一致性节点进行分组,能够避免节点间的大量通信,降低网络的通信复杂度,提高网络的可扩展性,但无法识别拜占庭节点。ripple共识(schwartz d,youngs n,britto a.the ripple protocolconsensus algorithm[j].ripple labs inc white paper,2014,5(8):151),通过将节点进行分组,来减少节点的通信复杂度进而加快共识达成的速度,但由于分组的存在使得每个组别中达成共识的节点的比例偏高,且对同一交易,可能需要多轮才能达成共识,所以该算法通常只能应用于只有少数节点参与的情况下。文献(yang j,jia z h,su r g,etal.improved fault-tolerant consensus based on the pbft algorithm[j].ieeeaccess,2022,10:30274-30283.)使用散列算法对一致性节点进行分组,能够避免节点间的大量通信,降低网络的通信复杂度,提高网络的可扩展性,但无法识别拜占庭节点。


技术实现思路

1、为了克服现有的pbft存在的不足,本发明的目的在于提供了一种基于pbft的歧视的优化方法,降低恶意节点在小组中作恶的情况,采用分组方式,使得参与共识的节点数量得到了限制,保障了安全性,加快共识达成的速度。

2、为了达到上述目的,本发明的技术方案为:

3、一种基于pbft的歧视的优化方法,包括以下步骤:

4、步骤1:对全网中所有的节点进行初始化,并进行分组,分为共识组、备份组、候选组、待选组;具体为:

5、步骤1.1:在共识算法初始时,首先对全网的所有节点进行初始化,并随机将所有节点分为共识组、备份组、候选组、待选组;其中共识组、候选组和备份组和候选组的节点的数量存在上限l;

6、步骤1.2:当网络中出现新的节点a请求加入时,节点首先向客户端发送信息,再经客户端同意后,节点a进入候选组,此时客户端将所有的节点的信息以及关于链条的最新信息发送给节点a,并更新节点列表,将更新后的列表发送给系统内的所有节点告知节点a进入系统。

7、步骤2:进行拜占庭容错算法(pbft),节点分组后,仅有共识组和候选组进行共识过程,共识组执行真实过程,候选组执行模拟过程;具体为:

8、步骤2.1:共识组首先进行主节点选举,每个节点通过将自身的私钥以及系统产生的不可预测的随机种子x作为输入,生成随机数y和证明函数proof;之后节点利用生成的随机数作为输入进行计算其中hash()为哈希函数,hash len为哈希函数的长度,pr为共识组中的节点的声誉值,prt为共识组的总声誉,其中max(v)当选为共识组的领导者;

9、步骤2.2:当共识组的领导者选取完毕后,共识组内的所有节点进行pbft共识,此时客户端进行判断,如果客户端发现竞选的节点的数量超过共识组的2/3或者节点在准备阶段收到节点的票数超过2/3的共识组的节点的票数则进行两阶段共识,取消原pbft共识过程中的准备阶段,直接进行请求、预准备、准备阶段以及回应阶段;

10、步骤2.3:候选组同时进行相同的共识过程。

11、步骤3:在客户端收到共识组的共识结果后,将达成共识的交易生成区块并上链,在收到候选组的共识信息后,将二者共识结果进行对比,并将对比结果进行标记;之后将生成的区块,以及最新的区块链的信息全网广播,进行全局共识;具体为:

12、步骤3.1:在待选组和备份组节点收到区块链的信息后,如果该区块标记为结果一致,则每个候选节点以一定的概率对其进行检验,规定如果一个区块连续未被检验多次就一定要被检验;反之如果区块结果被标记为不一致,则所有候选区块共同对其进行检验;

13、步骤3.2:在待选组和备份组完成区块的二次检验后,客户端根据其检验结果,对区块链进行区块重组。

14、步骤4:客户端根据区块重组结果进行组别的划分;具体为:

15、步骤4.1:客户端首先对共识组的组间相似度进行计算,其计算方式如下首先构造vague特征矩阵其中n为区块的编号,p为共识组节点的编号;

16、步骤4.2:利用相关系数法构造相关系数矩阵,其采用如下方法确定:

17、

18、

19、其中,

20、步骤4.3:对矩阵的中的区间进行划分,如果a<tij<1且b<fij<1,则令该区间为1,反之则为0,其变换后得到的矩阵形式如下:

21、

22、其中每行中取值为1的节点为同一组。

23、步骤5:共识达成后对参与共识的所有节点进行信誉值更新及组别重组;具体为:

24、步骤5.1:组间相似度计算完毕之后,客户端根据结果进行组别划分,如果该组别中的节点存在恶意节点或者恶意行为,则将其划为惩罚小组并对整个小组的节点进行惩罚;同时降低组内所有节点的信誉值,并将恶意节点从中剔除,其中小组内每个节点扣除的声誉值为:其中drp为扣除的基本声誉值rp为组内节点的自身声誉值,rpt为组内节点的总声誉;

25、步骤5.2:共识组内非惩罚小组和其他组内的节点的声誉值进行更新,其中基础更新声誉值为:其中δα和δβ分别为δt时间内节点转发的信息数和未转发的信息数量,μ为(0,1)之间的参数;

26、步骤5.3:对信誉值进行更新后,将共识组内信誉值低于要求的节点剔除;同时候选组成为新的共识小组,备份组成为候选组;原有的共识组成为备份组,保留共识组内的剩余节点,同时将待选组中的满足声誉要求的节点添加到备份组中。

27、本发明有益技术效果:

28、1、本发明将vague集引入了共识算法,共识过程中,每个节点根据收到的其他节点的commit信息来对该节点的身份进行投票,经过一定的时间后,对所有节点的投票信息进行统计并生成vague相似矩阵,并根据生成的相似矩阵对节点进行分组,并根据组内节点的行为对改组内所有的节点进行奖惩,进而在一定程度上降低了潜在的恶意节点作恶的可能性。

29、2、通过对主流的pbft共识算法的流程进行了并行化以及分组处理,从而提高了联盟链的鲁棒性以及数据的吞吐量。采用分组的方法,虽然使得全程参与共识过程的节点数量减少,但多组共识以及共识后的群节点一次检验是的共识的结果更加可靠,且吞吐量也由于通信复杂度的降低得到一定程度的提高。同时如果在规定时间内各个节点收集到的信息满足特定要求时,共识过程将由原始的三阶段变为两阶段又进一步的减少了共识所消耗的时间。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1