当前位置: 首页 > 专利查询>山西大学专利>正文

一种基于信誉模型的PBFT共识机制制造技术

技术编号:37378118 阅读:15 留言:0更新日期:2023-04-27 07:20
本发明专利技术涉及一种基于信誉模型的PBFT共识机制,包括以下步骤:计算节点的信誉值,将区块链网络中信誉值前10%的节点选为共识节点;客户端向区块链网络中的主节点发送一条请求;主节点收到客户端发来的请求向区块链网络中其他所有的共识节点发送PRE

【技术实现步骤摘要】
一种基于信誉模型的PBFT共识机制


[0001]本专利技术属于区块链
,特别涉及一种基于信誉模型的PBFT共识机制。

技术介绍

[0002]区块链具有去中心化、不可篡改和可溯源等特点,由于这些特点,区块链技术被广泛应用到数字经济、物联网和医疗等多个领域。共识算法是区块链系统中核心的技术,用来实现数据的最终一致性。PBFT(Practical Byzantine Fault Tolerance拜占庭容错)共识算法是联盟链常用的共识算法,可以在分布式网络中容忍拜占庭故障,旨在解决网络中恶意节点的恶意行为造成网络中节点数据不一致和不正确的问题,当网络中有n个节点时,如果恶意节点占比不超过(n

1)/3,那么PBFT算法就可以保证网络的可靠性和安全性。但在PBFT算法的共识流程中,执行准备阶段和提交阶段的节点都需要将消息发送给网络中其他所有的节点,网络的通信时间随着节点的增加呈多项式级增加,PBFT算法的执行效率大大下降,从而增加了网络达成共识消耗的时间。EigenTrust信誉模型通过节点间交易的评价得到的直接信誉值和推荐信誉值来计算节点的最终信誉值,信誉值越高的节点可信度越高,但该模型在计算信誉值时没有考虑时间对信誉值的影响以及没有惩罚恶意节点的机制。EigenTrust信誉模型在计算信誉值时好的交易评价和差的交易评价所占的比重一样大,这会导致恶意节点在积累的一定信誉值后进行恶意行为,重复这个过程,危害网络的安全。

技术实现思路

[0003]本专利技术的目的在于提供一种基于信誉模型的PBFT共识机制,通过将改进过的EigenTrust模型应用到PBFT共识算法中,选出信誉值高的节点作为共识节点进行PBFT共识流程,其他节点为从节点,接收共识节点的结果,不参与共识流程,减小了时间复杂度,提高了性能和可用性;
[0004]为达到上述目的,本专利技术采用的技术方案是:
[0005]一种基于信誉模型的PBFT共识机制,包括以下步骤:
[0006]计算节点的信誉值,将区块链网络中信誉值前10%的节点选为共识节点;
[0007]客户端向区块链网络中的主节点发送一条请求,该请求包括请求的具体操作、请求时客户端添加到时间戳、客户端标识和REQUEST消息体,REQUEST消息体包含消息内容和消息摘要,其中客户端对请求进行签名;
[0008]主节点收到客户端发来的请求并进行验证,验证通过后,分配一个编号n,向区块链网络中其他所有的共识节点发送PRE

PREPARE消息,PRE

PREPARE消息包括视图编号,消息内容和消息摘要;共识节点收到消息后要对消息进行验证,签名、视图编号和消息序号都验证通过后;
[0009]共识节点向其他所有共识节点发送PREPARE消息,并将PRE

PREPARE消息和PREPARE消息存储到自身的消息日志中;其他共识节点在接受到PREPARE消息后,需要验证
签名、视图编号、消息序号和接受到的PREPARE消息的数量是否符合规则,验证通过后;
[0010]共识节点向其他共识节点广播COMMIT消息,共识节点收到其他共识节点的COMMIT消息后,验证签名、视图编号和消息序号的正确性,当共识节点接受到2f+1个COMMIT消息后,向主节点返回REPLY消息;
[0011]当客户端收到f+1个相同的REPLY消息,说明客户端发送的REQUEST请求已经在区块链网络中达成共识。
[0012]优选的,所述节点的信誉值由本地信誉值和推荐信誉值组成。
[0013]优选的,所述本地信誉值为:
[0014]s
ij
=sat(i,j)

unsat(i,j)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0015]其中,式1中s
ij
是节点i对节点j的评价的本地信誉值,sat(i,j)是节点i和节点j的历史交易中满意的次数,unsat(i,j)是节点i和节点j的历史交易中不满意的次数。
[0016]优选的,所述满意的次数为:
[0017][0018]其中,式2中为任意时间段k内,节点i对节点j的满意交易次数,为满意交易的衰减因子。
[0019]优选的,所述不满意的次数为:
[0020][0021]其中,式3中为任意时间段k内,节点i对节点j的不满意交易次数,为不满意交易的衰减因子。
[0022]优选的,还包括以下步骤:对本地信誉值进行规范化处理,得到的规范化后的本地信誉值为:
[0023][0024]其中,式4中C
ij
为规范化后的节点i对节点j的本地信誉值。
[0025]优选的,所述推荐信誉值为:
[0026]t
ik
=∑
j
C
ij
·
C
jk
ꢀꢀ
(5)
[0027]其中,式5中t
ik
是节点i对节点k的推荐信誉值,C
jk
为规范化后的节点j对节点k的本地信誉值。
[0028]优选的,初始状态下,一些节点会被选为预信任节点;所述节点的信誉值为:
[0029][0030]其中,式6中p为预信任节点,α为影响因子。
[0031]优选的,如果节点进行恶意行为,区块链网络对其进行惩罚,降低恶意节点的本地信誉值,恶意节点的信誉值为:
[0032]s

ij
=s
ij
/F
k
ꢀꢀ
(7)
[0033]其中,式7中s
ij
是节点进行恶意行为前的本地信誉值,F
k
是斐波那契数列的第k项,当节点结束第k次恶意行为后,将其信誉值更新为原来的1/F
k
,并且需要进行F
k
次诚实交易才能结束惩罚。
[0034]与现有技术相比,本专利技术具有以下优点:
[0035](1)本专利技术通过分配并动态计算节点的唯一信誉值,选取信誉值较高的节点来参与共识,其他节点作为从节点接受共识节点的共识结果,从而减少了区块链网络中的通信时间,适用于含有大量节点的区块链网络;
[0036](2)本专利技术对EigenTrust信誉模型的改进考虑到了交易的时间衰减性,越靠近当前时刻的交易评价对信誉值的影响越大,越远离当前时刻的交易评价对信誉值的影响越小,反映了信誉度随时间的变化而变化,提高了信誉值计算的合理性,适用于分布式区块链网络共识;
[0037](3)本专利技术提出的方法可以激励节点进行诚信交易,并对进行恶意行为的节点进行惩罚,有效的抑制了节点的恶意行为,提高了区块链网络的安全性。
附图说明
[0038]图1为本专利技术的PBFT算法流程图;
[0039]图2为本专利技术改进的EigenTrust信誉模本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于信誉模型的PBFT共识机制,其特征在于,包括以下步骤:计算节点的信誉值,将区块链网络中信誉值前10%的节点选为共识节点;客户端向区块链网络中的主节点发送一条请求,该请求包括请求的具体操作、请求时客户端添加到时间戳、客户端标识和REQUEST消息体,REQUEST消息体包含消息内容和消息摘要,其中客户端对请求进行签名;主节点收到客户端发来的请求并进行验证,验证通过后,分配一个编号n,向区块链网络中其他所有的共识节点发送PRE

PREPARE消息,PRE

PREPARE消息包括视图编号,消息内容和消息摘要;共识节点收到消息后要对消息进行验证,签名、视图编号和消息序号都验证通过后;共识节点向其他所有共识节点发送PREPARE消息,并将PRE

PREPARE消息和PREPARE消息存储到自身的消息日志中;其他共识节点在接受到PREPARE消息后,需要验证签名、视图编号、消息序号和接受到的PREPARE消息的数量是否符合规则,验证通过后;共识节点向其他共识节点广播COMMIT消息,共识节点收到其他共识节点的COMMIT消息后,验证签名、视图编号和消息序号的正确性,当共识节点接受到2f+1个COMMIT消息后,向主节点返回REPLY消息;当客户端收到f+1个相同的REPLY消息,说明客户端发送的REQUEST请求已经在区块链网络中达成共识。2.根据权利要求1所述的一种基于信誉模型的PBFT共识机制,其特征在于,所述节点的信誉值由本地信誉值和推荐信誉值组成。3.根据权利要求2所述的一种基于信誉模型的PBFT共识机制,其特征在于,所述本地信誉值为:s
ij
=sat(i,j)

unsat(i,j)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)其中,式1中s
ij
是节点i对节点j的评价的本地信誉值,sat(i,j)是节点i和节点j的历史交易中满意的次数,unsat(i,j)是节点i和节点j的历史交易中不满意的次数。4.根据权利要...

【专利技术属性】
技术研发人员:吴鹏贾泽坤李向华
申请(专利权)人:山西大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1