1.一种应用于工业互联网的拜占庭容错共识优化方法,其特征在于,包括:
设计一个区块链系统,该系统包含N个客户端,所有客户端中容错节点数共为F,领导者数为Q;所有的领导者构成领导者集合Ls;其中,N≥3F+1,Q为小于或等于N的随机数;构建局部通信模型,根据局部通信模型对区块链系统中的各个节点执行拜占庭容错共识优化算法,使得各个节点达成共识;构建局部通信模型包括:设定网络延迟阈值δ;设置时间周期t,在执行拜占庭容错共识优化算法过程中,所有诚实领导者在设置的时间周期t内完成信息通信过程;当其中一个诚实领导者发送一条通信信息时,另一个拟接收讯息的诚实领导者在δ的时间内接收到该信息;
执行拜占庭容错共识优化算法包括协调阶段、准备阶段、投票阶段以及提交阶段;协调阶段在区块链系统中选举Q个领导者,每个领导者配置一个协调者,其中协调者为在领导者集合中随机选取的领导者,每个领导者只能作为一个领导者的协调者;准备阶段客户端向所有领导者和协调者广播区块生成请求;投票阶段领导者和协调者对区块生成请求进行投票表决;提交阶段,领导者和协调者验证投票结果,若验证通过,则达成共识,若验证不通过,则共识失败;各个节点重复执行拜占庭容错共识优化算法,直到所有的节点完成共识;
在区块链系统中选举Q个领导者包括:指定协调器Cr循环选举Q个领导者;从领导者集合Ls中为每个领导者分别配置一个不同的协调者,且每个领导者只能作为一个领导者的协调者;协调者对领导者进行序列号划分,得到分区空间;协调者记录轮次信息;
准备阶段包括:领导者和协调者进行状态机日志复制产生副本,根据分区空间对副本进行分区空间划分,得到副本分区空间;协调者更新轮次信息,并根据分区空间向其对应的领导者发送轮次变化信息;领导者在轮次变化信息上签名并将签名信息回复给协调者;其中,协调者向其对应的领导者发送轮次变化信息包括:协调者对轮次变化信息进行数字签名,得到局部签名信息;协调者将局部签名信息发送给协调者所属区块的所有领导者;领导者在轮次变化信息上签名包括:领导者接收所有协调者的局部签名信息σi=signiBj;领导者使用签名聚合方式将接收的局部签名信息整合成单一签名σ=AggSign(signi(Bj)i∈N);
领导者将所有单一签名σ聚合到签名AggQC中;其中,σi表示第i个局部签名,signi表示对区块进行签名,Bj表示第j个区块,Agg表示聚合成单一签名,N表示客户端个数;领导者将签名信息回复给协调者包括:协调者收到领导者的回复信息;协调者根据接收到的回复信息创建RoundQC;协调者将RoundQC信息广播给该轮次的所有领导者,RoundQC表示协调者产生的信息;
投票阶段包括:领导者收到区块生成请求后,生成拟区块并在拟区块上进行签名,将签名后的拟区块作为投票信息;副本对投票信息进行签署验证,若验证失败,则共识失败;若验证通过,则领导者向其他领导者发送投票信息,将所有投票信息整合为一个投票集{votes};领导者收到其他领导者发送的投票信息,根据投票信息生成投票结果;副本对投票信息进行签署验证的过程包括:副本根据副本分区空间得到副本投票结果,将领导者收到的投票结果与副本投票结果比较,若结果相同,则验证通过,若结果不同,则验证不通过;
提交阶段包括:验证通过后,客户端向协调者发送commit消息;协调者将commit消息发送给领导者;领导者向客户端回复reply消息,共识结束。