一种基于区块链PBFT共识机制的数据一致性共识方法

文档序号:32062368发布日期:2022-11-04 23:41阅读:75来源:国知局
一种基于区块链PBFT共识机制的数据一致性共识方法
一种基于区块链pbft共识机制的数据一致性共识方法
技术领域
1.本发明涉及区块链技术领域,特别涉及一种基于区块链pbft共识机制的数据一致性共识方法。


背景技术:

2.区块链是用分布式数据库识别、传播和记载信息的智能化对等网络,也称为价值互联网,共识机制被定义为使区块链网络达成共识的机制,负责维护分布式系统的完整性和安全性,现有区块链的共识机制主要包括工作量证明(pow)、权益证明(pos)、委托权益证明(dpos)以及可用拜占庭容错机制(pbft)等,其中pow、pos、dpos主要适用于比特币等公有链,而pbft是一种适用于传统分布式系统的拜占庭容错机制,通过三轮广播通信完成共识的机制。在pbft共识机制中,共识节点包括主节点和从节点。其中,主节点只有一个,由从节点投票产生。主节点负责接收客户端的请求,并将请求按序组播给其他从节点。从节点按照主节点排好的顺序执行,保证在各节点上执行请求的顺序一致,从而确保区块内容一致。因此pbft共识机制的正常运行依赖于主节点,而主节点的选择是pbft共识机制的关键。
3.pbft是一种状态机副本复制机制,所有的副本在一个视图轮换的过程中操作,传统的主节点选择方法是通过视图编号以及节点数集合来确定,即:主节点p=v mod|r|。v代表视图编号,r代表节点个数,p代表主节点编号。但是传统的主节点选举过程具有很大的随机性,不能反映现实投票决策中的复杂情况。此外,一旦主节点为恶意节点当选,将会造成视图更换,更严重者会导致共识过程停滞,极大地影响了共识效率。
4.由于决策环境的不确定性和复杂性,以及人类认知思维的模糊性,决策者有时很难用精确数来描述和评估现实的决策问题,通过定性描述决策问题更符合人类的思维认知习惯,因此,以语言变量为基础的多属性群决策方法的研究迅速发展起来,经典的pbft共识机制中对于主节点的选举类似于决策者通过单一的语言变量来对主节点进行选举,这种方法只允许决策者通过单一的语言变量来表达评估信息无法满足决策者给出多个语言变量信息的需求,导致不能准确、高效、合理地选举出主节点完成来自客户端的请求,共识效率较低。现存的改进pbft共识机制中利用vague集理论、抽签算法等选举主节点,忽略了选举过程中复杂的投票态度以及投票信息表达的全面性,因此共识达成的效率亦无法得到有效保证。


技术实现要素:

5.为了更好地解决现有的pbft共识机制中对于主节点的选举类似于决策者通过单一的语言变量来对主节点进行选举,这种方法只允许决策者通过单一的语言变量来表达评估信息无法满足决策者给出多个语言变量信息的需求,导致不能准确、高效、合理地选举出主节点完成来自客户端的请求,忽略了选举过程中复杂的投票态度以及投票信息表达的全面性,因此共识达成的效率亦无法得到有效保证的问题,本发明提出一种基于区块链pbft共识机制的数据一致性共识方法,所述方法具体包括:
6.s1:将区块链网络中的所有节点作为备选节点;
7.s2:通过客户端设置五个语言术语作为投票选项,并将五个语言术语发送给区块链网络中的备选节点;
8.s3:备选节点根据五个语言术语相互之间进行投票,并将投票内容发送给客户端,其中,所述投票内容包括:备选节点投票时所给出的语言术语,以及对语言术语的置信度区间;
9.s4:客户端根据投票内容选取主节点,并将其余备选节点作为普通节点;
10.s5:客户端向主节点发送交易请求,激活主节点的服务操作;
11.s6:主节点接收交易请求后,启动序号分配阶段、交互阶段、序号确认阶段的协议,向普通节点广播请求;
12.s7:普通节点根据三阶段协议处理交易请求,并返回响应消息给客户端;
13.s8:客户端收集来自主节点和普通节点的响应消息,若有m+1个相同的响应消息,代表共识正确完成,其中,m表示pbft容忍的无效普通节点数;
14.s9:主节点负责将达成共识的交易执行区块,同步区块数据并更新本地账本,完成区块上链。
15.本发明的有益效果:
16.本发明考虑到由于决策者在表达投票态度时,对自己的决策态度犹豫不定或者没有完全的把握的情况,通过设置不同的语言术语投票选项和置信度区间,能够完整的表达决策者的投票态度,通过给决策者提供多个语言变量信息,能够使决策者更加精确的表达自己的决策,提高选举的准确性,置信区间能够更全面的反映决策者对投票的支持度和复杂度,大幅度的提高共识效率,通过本发明提出方法能够满足决策者给出多个语言变量信息的需求且能够快速、高效、准确的选举出主节点完成客户端的请求,降低了恶意节点在区块链中参与响应来自客户端交易请求的概率,使得主节点生成区块和将区块上链过程更加安全、高效。
附图说明
17.图1:为本发明提出的一种基于区块链pbft共识机制的数据一致性共识方法流程图。
具体实施方式
18.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
19.如图1所示,本发明提供一种基于区块链pbft共识机制的数据一致性共识方法,包括以下步骤:
20.s1:将区块链网络中的所有节点作为备选节点,其中,本发明中的节点可以是任意的计算机设备,比如pc电脑,笔记本,手机,路由器等。
21.s2:通过客户端设置五个语言术语作为投票选项,并将五个语言术发送给区块链
网络中的备选节点,其中,客户端包括:区块链网络中的计算机以及任何连接到区块链网络的计算机(包括手机、矿机等);
22.一种基于区块链pbft共识机制的数据一致性共识方法的具体实施方式,所述五个语言术语包括s0、s1、s2、s3、s4;其中,s0表示非常反对,s1表示一般反对,s2表示中立,s3表示一般支持,s4表示非常支持。
23.优选地,一种基于区块链pbft共识机制的数据一致性共识方法的具体实施方式,所述五个语言术语包括:s0、s1、s2、s3、s4;其中,s0表示1分,s1表示2分,s2表示3分,s3表示4分,s4表示5分。
24.优选地,一种基于区块链pbft共识机制的数据一致性共识方法的具体实施方式,所述五个语言术语包括:s0、s1、s2、s3、s4;其中,s0表示非常不赞同,s1表示一般赞同,s2表示中立,s3表示有点赞同,s4表示非常赞同。
25.在具体的实施过程中可以针对不同的场景,设置更加复杂或者简单的多个语言术语,本实施例选择五个语言术语作为决策选项,更加适用于pbft共识机制中主节点的选举模拟过程。为了更好地表达备选节点的决策信息,备选节点在给出语言术语的同时,以区间数的形式给出投票自信度信息,将主节点的选举过程模拟为决策分析流程,充分考虑现实决策过程中的复杂情况,从而准确、高效地选出主节点来参与pbft共识过程。
26.s3:备选节点根据五个语言术语相互之间进行投票,并将投票内容发送给客户端,其中。所述投票内容包括:备选节点投票时所给出的语言术语,以及对语言术语的置信度区间;
27.通过设置不同的语言术语投票选项和置信度区间,能够完整的表达决策者的投票态度,通过给决策者提供多个语言变量信息,能够使决策者更加精确的表达自己的决策,提高选举的准确性,置信区间能够更全面的反映决策者的对投票的支持度,大幅度的提高共识效率。
28.s4:客户端根据投票内容选取主节点,并将其余备选节点作为普通节点。
29.优选地,一种基于区块链pbft共识机制的数据一致性共识方法的具体实施方式,所述客户端根据投票内容选取主节点的具体过程包括:
30.根据备选节点的投票内容构造备选节点投票矩阵;
31.例如,所述备选节点投票矩阵如表1所示:
32.表1备选节点投票矩阵
[0033][0034]
其中,t
ij
表示第j个备选节点对第i个备选节点投票的语言术语,a表示区块链网络中节点的数量,t
ij
为五个语言术语中的一个。
[0035]
一种基于区块链pbft共识机制的数据一致性共识方法的具体实施方式,当本实施
例中,假设区块链网络中共有7个节点时,所获得的备选节点投票矩阵如表2所示:
[0036]
表2备选节点的投票评价
[0037][0038]
根据备选节点投票矩阵选取主节点;
[0039]
一种基于区块链pbft共识机制的数据一致性共识方法的具体实施方式,所述根据备选节点投票矩阵选取主节点的具体步骤包括:
[0040]
将五个语言术语作为语言术语集,并按语言术语的下标升序排列:
[0041]
s={s
δ
|δ=0,1,...,r}
[0042]
其中,s
δ
表示一个语言术语;δ表示语言术语的下标;s表示由r+1个语言术语构成的语言术语集;
[0043]
根据语言术语集和备选节点投票矩阵中备选节点获得的语言术语集,从而得到评价语言术语集;
[0044]
一种基于区块链pbft共识机制的数据一致性共识方法的具体实施方式,所述评价语言术语集的获取方式具体包括:
[0045]
将备选节点获得的语言术语投票组成集合ti,并将集合ti中的语言术语按照下标δ的值升序排列;
[0046]
例如表2所示,备选节点n3收到“非常反对”、“一般反对”、“中立”、“一般支持”和“非常支持”的票数分别为0、2、2、2、0,因此备选节点n3的评价语言术语集表示为:
[0047][0048]
假设区块链网络中共有7个节点时,全部备选节点的评价语言术语集如表3所示。
[0049]
表3备选节点的评价语言术语集
[0050][0051]
例如:第3个备选节点n3的评价语言术语集表示为即该节点收到的投票态度为,有1个决策者投票选项是一般反对;有1个决策者投票选项是一般反对;有1个决策者投票选项是一般支持。
[0052]
根据备选节点的集合ti,通过改进的求和得分函数计算备选节点的得分值。
[0053]
一种基于区块链pbft共识机制的数据一致性共识方法的具体实施方式,改进的求和得分函数包括:
[0054][0055]
其中,wi为第i个备选节点的求和得分值;rk表示集合ti中第k个语言术语的下标,假设区块链网络中共有7个节点时通过得分函数计算出备选节点n3的求和得分值为:
[0056]
w3=1+2+3=6
[0057]
本实施例中全部备选节点的求和得分值计算得出:
[0058]
w1=9,w2=10,w3=6,w4=12,w5=10,w6=15,w7=12
[0059]
根据备选节点的求和得分值选择pbft共识机制的主节点:
[0060]
当只存在一个求和得分值最高的备选节点时,将该备选节点作为pbft共识机制的主节点;
[0061]
当存在若干个求和得分值最高的备选节点时,则对备选节点重新投票;
[0062]
因此在本实例中,7个备选节点间互相投票选出一个主节点,最终第6个备选节点被选为主节点,执行区块链中pbft共识机制的共识达成操作。
[0063]
优选地,一种基于区块链pbft共识机制的数据一致性共识方法的具体实施方式,所述客户端根据投票内容选取主节点的具体过程包括:
[0064]
s41:根据备选节点的投票内容构造备选节点投票矩阵;
[0065]
例如,所述备选节点投票矩阵如表4所示:
[0066]
表4备选节点投票矩阵
[0067]
[0068][0069]
其中,t
ij
表示第j个备选节点对第i个备选节点投票的语言术语,a表示区块链网络中节点的数量,表示第j个备选节点对第i个备选节点投票为t
ij
的置信度区间,其中,且和为[0,1]之间的实数,表示置信区间的下限,表示置信区间的上限,和的具体数值为备选节点作为决策者在给出语言术语t
ij
的同时,会给出对语言术语t
ij
的置信度区间,t
ij
为五个语言术语中的一个。
[0070]
一种基于区块链pbft共识机制的数据一致性共识方法的具体实施方式,当本实施例中,假设区块链网络中共有7个节点时,所获得的备选节点投票矩阵如表5所示:
[0071]
表5备选节点带置信区间的投票评价
[0072][0073]
s42:根据备选节点投票矩阵构造备选节点的标准置信概率语言术语集;
[0074]
一种基于区块链pbft共识机制的数据一致性共识方法的具体实施方式,所述构造备选节点的标准置信概率语言术语集的具体步骤包括:
[0075]
s421:将五个语言术语作为语言术语集,并按语言术语的下标升序排列:
[0076]
s={s
δ
|δ=0,1,...,r}
[0077]
其中,s
δ
表示一个语言术语;δ表示语言术语的下标;s表示由r+1个语言术语构成的语言术语集;
[0078]
s422:根据语言术语集和备选节点投票矩阵中备选节点获得语言术语集中语言术语的投票概率,从而得到标准概率语言术语集;
[0079]
一种基于区块链pbft共识机制的数据一致性共识方法的具体实施方式,所述标准概率语言术语集的获取方式具体包括:
[0080]
s4221:将备选节点获得的语言术语投票组成集合ti,并将集合ti中的语言术语按照下标δ的值升序排列;
[0081]
s4222:分别计算集合ti中的语言术语在集合ti中的概率p
ik
,并将集合ti中的语言术语按p
ik
的值升序排列,得到概率语言术语集;
[0082]
s4223:对概率语言术语集进行规范化处理得到标准概率语言术语集。
[0083]
一种基于区块链pbft共识机制的数据一致性共识方法的具体实施方式,所述标准概率语言术语集包括:
[0084][0085]
其中,li表示第i个备选节点的标准概率语言术语集;t
ik
表示集合ti中第k个语言术语;p
ik
表示第i个备选节点获得投票选项为t
ik
的概率,n表示集合ti中语言术语的个数。
[0086]
s423:根据标准概率语言术语集和备选节点投票矩阵中备选节点获得语言术语集中语言术语的投票置信度区间,得到标准置信概率语言术语集。
[0087]
一种基于区块链pbft共识机制的数据一致性共识方法的具体实施方式,所述标准置信概率语言术语集包括:
[0088][0089]
其中,li表示第i个备选节点的标准置信概率语言术语集,表示第i个备选节点获得的语言术语t
ik
的置信区间下限均值,表示第i个备选节点获得的语言术语t
ik
的置信区间上限均值,且和为[0,1]之间的实数,例如表2所示,备选节点n3收到“非常反对”、“一般反对”、“中立”、“一般支持”和“非常支持”的票数分别为0、2、2、2、0,因此备选节点n3的标准置信概率语言术语集表示为:
[0090][0091]
假设区块链网络中共有7个节点时,全部备选节点的标准置信概率语言术语集如表6所示。
[0092]
表6备选节点带置信区间的概率语言术语集
[0093][0094]
例如:第3个备选节点n3的标准置信概率语言术语集表示为的标准置信概率语言术语集表示为即该节点收到的投票态度为,有1/3的决策者投票选项是一般反对,且决策者的置信区间为[0.4,0.6];有1/3的决策者投票选项是一般反对,且决策者的置信区间为[0.2,0.5];有1/3的决策者投票选项是一般支持,且决策者的置信区间为[0.6,0.7]。
[0095]
s33:根据备选节点的标准置信概率语言术语集,通过改进的区间得分函数计算备选节点的得分值。
[0096]
一种基于区块链pbft共识机制的数据一致性共识方法的具体实施方式,改进的区间得分函数包括:
[0097][0098]
其中,为第i个备选节点的得分值;rk表示集合ti中第k个语言术语的下标,假设区块链网络中共有7个节点时通过得分函数计算出备选节点n3的得分值为:
[0099][0100]
本实施例中全部备选节点的得分值计算出为:
[0101][0102][0103]
s34:根据备选节点的得分值选择pbft共识机制的主节点:
[0104]
当只存在一个得分值最高的备选节点时,将该备选节点作为pbft共识机制的主节点;
[0105]
当存在若干个得分值最高的备选节点时,则计算备选节点的偏离度,并将偏离度最低的备选节点作为pbft共识机制的主节点。
[0106]
一种基于区块链pbft共识机制的数据一致性共识方法,其特征在于,所述备选节点的偏离度计算方式包括:
[0107][0108]
其中,σi为第i个备选节点的偏离度,假设区块链网络中共有7个节点时,由于上述与相同,因此存在两个得分值最高的备选节点,因此需要计算备选节点的偏离度,例如第三个备选节点的偏离度包括;
[0109][0110]
在本实施例中,所有备选节点的偏离度为:
[0111]
σ1=0.2851,σ2=0.6400,σ3=0.4573,σ4=0.3161,
[0112]
σ5=0.6710,σ6=0.3268,σ7=0.4021
[0113]
因此在本实例中,7个备选节点间互相投票选出一个主节点,最终第2个备选节点被选为主节点,执行区块链中pbft共识机制的共识达成操作。
[0114]
s5:客户端向主节点发送交易请求,激活主节点的服务操作;s6:主节点接收交易请求后,启动序号分配阶段、交互阶段、序号确认阶段的协议,向普通节点广播请求;s7:普通节点根据三阶段协议处理交易请求,并返回响应消息给客户端,其中,序号分配阶段:主节点给请求赋值一个序列号n,广播序号分配消息和客户端的请求消息,并将构造pre-prepare消息给其他普通节点;
[0115]
交互阶段:普通节点接收pre-prepare消息,向其他普通节点广播prepare消息;
[0116]
序号确认阶段:主节点个普通节点对视图内的请求和次序进行验证后,广播commit消息,执行收到的客户端的请求并向客户端返回响应消息。
[0117]
s8:客户端收集来自主节点和普通节点的响应消息,若有m+1个相同的响应消息,代表共识正确完成,其中,m表示pbft容忍的无效节点数;
[0118]
s9:主节点负责将达成共识的交易执行区块,同步区块数据并更新本地账本,完成区块上链。
[0119]
同时本领域技术人员在充分了解本发明的实施方式后,有理由想到将本发明应用于教学评价,素质评价、机械性能评价等领域,虽然本发明为了更加的贴合工业应用,将本发明的方法应用于区块链技术领域,但是并不代表本发明的方法并不能应用于其他领域。
[0120]
以上实施例仅用以说明本发明的技术方案而非限制,在不背离本发明方法的精神及其实质的情况下,本领域技术人员当可根据本发明方法做出多种相应的改变,这些均属于本发明方法权利要求书所保护的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1