System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于网络空间安全,尤其涉及一种基于并行策略的区块链pbft共识实现方法。
技术介绍
1、pbft共识起初是建立在状态机复制smr之上的,包含了共识协议和视图切换协议。pbft共识算法中,主副本会先对收集到的请求排序,也就是说在共识前请求就已经排好序。但是针对请求的共识过程是无序的,即存在节点完成共识并提交序号更大的请求而还未接收到序号小的请求的情况。若此时主副本发生拜占庭错误或者网络出现动荡,视图切换协议中的新主副本传递已提交的请求到新视图中,而其他未提交请求会被忽略转而用空请求代替原本序号的位置。与pbft消息执行队列不同的是,区块链的区块队列是由哈希值连接的,即每个区块的区块头包含父区块头的哈希摘要。这种哈希值连接是区块链的特点,利用哈希函数的抗碰撞性,保证了区块链不可伪造和不可篡改特性。如果直接将pbft算法套用到区块链中,势必出现兼容问题。基于smr的pbft允许在视图切换过程用空操作请求替换遗失的请求,而这种策略对于区块链来说是不可容忍的,区块链不允许中间区块的遗失,因此在基于pbft共识算法的区块链中,如何解决这类兼容问题是非常重要。在当前大部分工作中,这类兼容问题是一直被忽略的,从未被显性提出。对比pbft算法和区块链共识的完整执行过程,并从中找出根源。pbft包含6个阶段,其中预准备、准备和提交的三个过程都是无序执行,在执行阶段是等到前面所有请求都提交后才会有序执行请求。同时请求到了提交阶段时候,请求能够跨视图传递,并在以后视图的非拜占庭副本上提交。因此,就是因为在提交阶段的无序跨视图特点,才可能丢失前
2、因此,为了能够让pbft共识过程兼容区块链共识特点,也需要将pbft全局并行执行过程退化成串行共识过程。可以让pbft执行过程全过程有序执行来达到串行共识,我们称这类pbft为串行pbft。这样就可以直接将串行pbft融合到区块链中,且过程中不会出现空操作请求。这类方法也是当前大部分基于pbft的区块链方案所隐性采用的方法。但是,基于串行pbft的区块链共识算法明显存在效率低下问题,如何让串行pbft区块链共识算法再次达到并行效果并提高共识效率,是一个亟待解决的重要问题。
技术实现思路
1、为解决上述技术问题,本专利技术提出了一种基于并行策略的区块链pbft共识实现方法,利用门限签名方案、流水线策略和共识窗口策略,从而达到并行共识,提高共识的效率。
2、为实现上述目的,本专利技术提供了一种基于并行策略的区块链pbft共识实现方法,包括:
3、s1、主副本在发送出diss共识消息后,接收到若干个agg共识消息投票前,在共识窗口中每间隔一段时间生成一个区块并广播出去;所述共识窗口中生成若干个区块,所述共识消息是针对所述共识窗口中最后一个区块开启共识,所述共识窗口中的其他区块利用哈希链保证安全性;
4、s2、所述主副本接收到若干个不同副本对共识区块的agg投票消息时,验证成功后将签名聚合成一个完整的lockedqc签名,并生成diss消息广播给所有备份副本,所述lockedqc签名存在于diss消息内;
5、s3、所述备份副本接收到所述diss消息时,验证成功后针对共识进行投票,并将agg消息投票结果发给主节点;
6、s4、在共识失败时,利用视图切换协议切换主副本,并执行view-change过程和new-view过程完成视图切换。
7、根据本专利技术提供的基于并行策略的区块链pbft共识实现方法,所述主副本接收到若干个不同副本对共识区块的agg投票消息时,验证成功后将签名聚合成一个完整的lockedqc签名,并生成diss消息广播给所有备份副本的方法包括:
8、所述主副本验证接收到的每个agg投票消息,所述主副本将若干个不同副本发来的投票签名利用门限签名聚合函数聚合成一个完整的lockedqc签名,根据最后广播出去的区块生成diss消息,并将diss消息广播给所有备份副本。
9、根据本专利技术提供的基于并行策略的区块链pbft共识实现方法,所述备份副本接收到所述diss消息时,验证成功后针对共识进行投票,并将agg消息投票结果发给主节点的方法包括:
10、当所述备份副本接收到diss消息时,检查区块bi的前置区块是否完整,不完整则其他副本接受,区块链完整后就进入区块bi投票的过程,生成agg消息并发送给主副本,发送结束后,所述备份副本持续生成事务、接受事务、接收并验证区块,当所述主副本收集到若干个投票签名后进入广播阶段。
11、根据本专利技术提供的基于并行策略的区块链pbft共识实现方法,利用视图切换协议切换主副本的方法包括:
12、所述备份副本将所述agg消息发送给所述主副本后启动共识定时器,当接收到所述diss消息后停止共识定时器;若所述共识定时器超时,所述备份副本启动视图切换;视图切换启动时启动切换定时器,所述切换定时器只在切换结束时停止,若超时则开启下一轮视图切换。
13、根据本专利技术提供的基于并行策略的区块链pbft共识实现方法,所述切换定时器的定时时间需要满足的条件为:每一轮视图切换的切换定时器的定时时间比上一轮时间长。
14、根据本专利技术提供的基于并行策略的区块链pbft共识实现方法,执行view-change过程的方法包括:
15、若当前视图的备份副本的所述共识定时器超时,则所述当前视图的备份副本进入视图切换过程,将视图切换到下一个视图;所述当前视图的备份副本只接受view-change消息和new-view消息,并向所述下一个视图的主副本发送view-change消息,同时启动所述切换定时器。
16、根据本专利技术提供的基于并行策略的区块链pbft共识实现方法,执行new-view过程的方法包括:
17、当所述下一个视图的主副本从其他副本接收到若干个有效的所述view-change消息时,从若干个所述view-change消息以及消息日志中选择视图最大或者视图相同时选择n最大的lockedqc,成为maxlockedqc;所述下一个视图的主副本根据maxlockedqc对应的区块生成并广播下一个区块,紧接着广播一个所述new-view消息给其他所有副本。
18、根据本专利技术提供的基于并行策略的区块链pbft共识实现方法,备份副本接收到所述new-iew消息后需要利用qcs计算出maxlockedqc,并检查所述下一个区块判断是否基于maxlockedqc对应区块,判断方法包括:
19、若对应正确,则所述备份副本进入所述下一个视图的共识协议的收集过程,发送所述agg消息,此处所述new-view消息相当于共识协议的所述diss消息;若对应不正确,则拒收并继续等待;若切换所述共识定时器超时本文档来自技高网...
【技术保护点】
1.一种基于并行策略的区块链PBFT共识实现方法,其特征在于,包括:
2.如权利要求1所述的基于并行策略的区块链PBFT共识实现方法,其特征在于,所述主副本接收到若干个不同副本对共识区块的Agg投票消息时,验证成功后将签名聚合成一个完整的LockedQC签名,并生成Diss消息广播给所有备份副本的方法包括:
3.如权利要求1所述的基于并行策略的区块链PBFT共识实现方法,其特征在于,所述备份副本接收到所述Diss消息时,验证成功后针对共识进行投票,并将Agg消息投票结果发给主节点的方法包括:
4.如权利要求1所述的基于并行策略的区块链PBFT共识实现方法,其特征在于,利用视图切换协议切换主副本的方法包括:
5.如权利要求4所述的基于并行策略的区块链PBFT共识实现方法,其特征在于,所述切换定时器的定时时间需要满足的条件为:每一轮视图切换的切换定时器的定时时间比上一轮时间长。
6.如权利要求4所述的基于并行策略的区块链PBFT共识实现方法,其特征在于,执行view-change过程的方法包括:
7.如权利要求6
8.如权利要求7所述的基于并行策略的区块链PBFT共识实现方法,其特征在于,备份副本接收到所述new-iew消息后需要利用QCs计算出MaxLockedQC,并检查所述下一个区块判断是否基于MaxLockedQC对应区块,判断方法包括:
...【技术特征摘要】
1.一种基于并行策略的区块链pbft共识实现方法,其特征在于,包括:
2.如权利要求1所述的基于并行策略的区块链pbft共识实现方法,其特征在于,所述主副本接收到若干个不同副本对共识区块的agg投票消息时,验证成功后将签名聚合成一个完整的lockedqc签名,并生成diss消息广播给所有备份副本的方法包括:
3.如权利要求1所述的基于并行策略的区块链pbft共识实现方法,其特征在于,所述备份副本接收到所述diss消息时,验证成功后针对共识进行投票,并将agg消息投票结果发给主节点的方法包括:
4.如权利要求1所述的基于并行策略的区块链pbft共识实现方法,其特征在于,利用视图切换协议切换主副本的方法包括:
5.如权...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。