CN114003584B - 一种基于演化博弈的拜占庭容错共识方法 - Google Patents
一种基于演化博弈的拜占庭容错共识方法 Download PDFInfo
- Publication number
- CN114003584B CN114003584B CN202111288652.6A CN202111288652A CN114003584B CN 114003584 B CN114003584 B CN 114003584B CN 202111288652 A CN202111288652 A CN 202111288652A CN 114003584 B CN114003584 B CN 114003584B
- Authority
- CN
- China
- Prior art keywords
- node
- consensus
- nodes
- reputation
- master node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 88
- 230000007246 mechanism Effects 0.000 claims abstract description 84
- 238000002360 preparation method Methods 0.000 claims abstract description 39
- 238000004806 packaging method and process Methods 0.000 claims abstract description 4
- 230000008569 process Effects 0.000 claims description 45
- 230000008901 benefit Effects 0.000 claims description 32
- 230000006870 function Effects 0.000 claims description 26
- 230000008859 change Effects 0.000 claims description 16
- 238000012790 confirmation Methods 0.000 claims description 14
- 238000005315 distribution function Methods 0.000 claims description 14
- 230000006641 stabilisation Effects 0.000 claims description 9
- 238000011105 stabilization Methods 0.000 claims description 9
- 230000007704 transition Effects 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 230000009471 action Effects 0.000 claims description 5
- 238000009826 distribution Methods 0.000 claims description 4
- 230000003044 adaptive effect Effects 0.000 claims description 3
- 238000004131 Bayer process Methods 0.000 claims 1
- 238000004422 calculation algorithm Methods 0.000 description 62
- 230000006399 behavior Effects 0.000 description 17
- 238000004891 communication Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 230000005284 excitation Effects 0.000 description 10
- 230000003993 interaction Effects 0.000 description 10
- 238000004458 analytical method Methods 0.000 description 8
- 230000006978 adaptation Effects 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 7
- 238000004088 simulation Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000012795 verification Methods 0.000 description 6
- 238000009825 accumulation Methods 0.000 description 5
- 239000013598 vector Substances 0.000 description 5
- 230000036961 partial effect Effects 0.000 description 4
- 230000004069 differentiation Effects 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 244000118350 Andrographis paniculata Species 0.000 description 1
- 241000052079 Erioneuron Species 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007728 cost analysis Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000087 stabilizing effect Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Mathematical Physics (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明涉及一种基于演化博弈的拜占庭容错共识方法,包括:通过客户端将交易信息集发送到当前视图下的主节点集;主节点集中各主节点对应一个共识节点组,各共识节点组同步独立运行共识机制;通过主节点集对交易信息集进行打包并发送至新区块中,根据交易信息集生成预准备消息;通过当前视图主节点集广播预准备消息至各共识节点;预准备消息中包括当前视图下共识节点的信誉值;在当前视图下的共识节点i收到主节点集发生的预准备消息后,共识节点i向对应共识节点组中除了共识节点i之外的其他共识节点j发送准备消息;根据信誉值的大小决定是否建立共识节点i与共识节点j之间的链接关系。本发明提高了共识效率和公平性。
Description
技术领域
本发明涉及区块链技术领域,特别是涉及一种基于演化博弈的拜占庭容错共识方法。
背景技术
区块链作为一种分布式结构的数据库,融合了加密算法与签名方案、共识机制以及对等传输协议等多种技术,其以去中心化和透明、可溯源等特性,被广泛的应用于社会金融、互联网工业以及智能物联网等领域中。共识算法是保证区块链系统达成一致性的核心算法,其中实用拜占庭容错算法,Practical Byzantine Fault-tolerant,PBFT)以其良好的容错性能和低耗能优势,成为区块链共识机制领域的研究热点。
由于分布式系统中节点交互行为的任意性,共识算法执行过程往往会受到恶意节点的影响,且共识算法本身的通信复杂度高且可扩展性不足等问题导致了系统性能的低下。PBFT算法虽然针对恶意节点的容错阈值达到系统节点总数的三分之一,但在实际应用中,共识性能除了受到恶意节点的影响,还与共识节点整体积极性有关。因此,在基于实际需求的共识算法实现中,如何在保证共识算法具有稳健执行性的前提下,结合机制提升算法相应的性能,具有重要的研究意义。现有技术方案针对容错问题提出相关信誉机制的方案,但是现有信誉机制方案存在相应不同程度的信誉积累问题,这在机制的运行的中导致共识协议呈现出一定的节点中心化问题,共识节点信誉值演化存在公平性问题,不利于系统的扩展和稳定。
发明内容
本发明的目的是提供一种基于演化博弈的拜占庭容错共识方法,提高了共识效率和公平性。
为实现上述目的,本发明提供了如下方案:
一种基于演化博弈的拜占庭容错共识方法,包括:
通过客户端将交易信息集发送到当前视图下的主节点集;所述主节点集中各主节点对应一个共识节点组,各共识节点组同步独立运行共识机制;
通过所述主节点集对所述交易信息集进行打包并发送至新区块中,根据所述交易信息集生成预准备消息;
通过当前视图主节点集广播预准备消息至各共识节点;所述预准备消息中包括当前视图下共识节点的信誉值;
在当前视图下的共识节点i收到主节点集发生的预准备消息后,共识节点i向对应共识节点组中除了共识节点i之外的其他共识节点j发送准备消息;i∈[1,2,...,n],j∈[1,2,...,n],j不等于i,n表示共识节点组中共识节点的数量;所述准备消息包括共识节点i的信誉值;
在共识节点j接收到准备消息后,计算共识节点i的信誉值,当计算得到的信誉值大于或等于信誉阈值时,将共识节点i与共识节点j之间的链接关系更新至对应主节点的共识节点列表,并通共识节点j向当前视图下的主节点集发送提交消息;所述提交消息包括信誉值表i,信誉值表i用来存放与共识节点i进行交互的节点的信誉值;
在当前视图主节点集接收各共识节点发送的提交消息后,将对所述新区块的共识结果反馈至客户端,对当前视图中共识节点按照信誉值进行排序,断开在设定的信誉值范围之外的共识节点的链接;所述新区块的共识结果为是否将新区块添加到区块链上。
可选地,所述方法还包括:根据信誉值计算公式,在共识周期完成后计算主节点和共识节点的信誉值;
信誉值计算公式表示为:
其中,表示节点i的直接信誉值,节点i为共识节点,/>表示节点i的初始信誉值,表示节点i的共识成功次数,mt表示共识周期内共识次数,/>表示共识周期内被添加到区块链中的事务数量值,txT表示共识周期前收集到的事务集数量值,/>表示节点i认同共识过程中主节点集发布区块正确性次数,/>表示节点i反对共识过程中主节点集发布区块正确性次数,t表示共识周期的时间段,T表示共识周期的序号。
可选地,所述方法还包括:通过主节点更新信誉表,对当前共识节点按照信誉值进行排序并更新节点状态信息表;所述节点状态信息表包括节点的身份信息,所述身份信息包括主节点、共识节点和拜占庭错误节点;
将共识节点排序信息和节点状态信息表广播到区块链系统中其他共识节点进行确认;
当所述主节点接收到m个共识节点的确认回复信息后,则基于信誉机制的共识节点链路演化博弈模型存在纳什均衡,根据收益分配函数进行收益的奖励分配;m表示共识节点组的数量;所述收益分配函数包括副节点收益分配函数和主节点收益分配函数;
副节点收益分配函数表示为:
其中,fi表示共识节点i的收益,ω表示权重参数,表示区块链系统总收益,αi表示节点i的信誉值,αj表示节点j的信誉值,/>表示副节点最小信誉值,/>表示副节点最大信誉值,jfollower表示副节点集;
主节点收益分配函数表示为:
其中,表示主节点的收益,/>表示主节点最小信誉值,/>表示主节点最大信誉值。
可选地,所述方法还包括:当共识节点i接收到当前视图中主节点中发送的错误消息时,共识节点i将主节点发送错误消息的行为发生至共识节点j,并向主节点集发送更换主节点请求;
当至少fmalicious+1个共识节点确认主节点的发送错误消息行为后,采用随机机制选取新的主节点并通过主节点集广播主节点更换消息;fmalicious表示恶意节点阈值;
当共识节点j更新为主节点并接收到2fmalicious+1个不同共识节点发送更新主节点更换消息时,共识节点j向主节点集合发送主节点确认消息;
更新视图的主节点集并向区块链系统中共识节点发送主节点更新完成消息。
可选地,所述采用随机机制选取新的主节点,还包括:
将区块链系统中m×n个节点按照信誉值降序排列,并按照排列顺序分成m个共识节点组,每组中有n个节点;
从每个共识节点组中随机选出一个节点作为主节点;各组的主节点构成主节点集。
可选地,所述方法还包括:
当主节点在区块链系统中广播错误消息时,诚实节点对错误消息进行验证,将广播错误消息的主节点标记为拜占庭错误节点;所述诚实节点为信誉值在设定诚实阈值区间内的节点。
可选地,所述方法还包括:
当共识节点在区块链系统中广播错误消息时,诚实节点接收并验证该错误消息后从本地路由表中删除该共识节点的路由信息,并标记该共识节点为拜占庭错误节点;所述诚实节点为信誉值在设定诚实阈值区间内的节点。
可选地,所述基于信誉机制的共识节点链路演化博弈模型表示为:
其中,N表示共识节点集合,S表示节点信誉策略,ξ表示噪声因子,ΔESS表示演化稳定策略集,Q表示链路变化总适应函数,ρij表示策略转移概率,示稳定策略集合。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明中共识节点不同的信誉值表示在共识过程中节点对共识拥有不同程度的话语权,使得共识机制更具公平性,另外主节点集中各主节点对应一个共识节点组,各共识节点组同步独立运行共识机制,提升了共识效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种基于演化博弈的拜占庭容错共识方法流程示意图;
图2为本发明一种基于演化博弈的拜占庭容错共识方法原理结构框架示意图;
图3为本发明动态链接拓扑下间接信誉传播示意图;
图4为本发明节点状态更新示意图;
图5为本发明共识节点层次结构示意图;
图6为本发明主节点更新流程示意图;
图7为本发明改进PBFT算法共识协议过程示意图;
图8为本发明结合系统平均信誉值的共识成功率示意图;
图9为本发明演化模型中节点信誉值的收敛过程示意图;
图10为PBFT算法共识协议过程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种基于演化博弈的拜占庭容错共识方法,提高了共识效率和公平性。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
介绍PBFT算法的共识机理、群体博弈以及演化博弈相关理论知识,为面向改进共识算法的信誉机制模型与激励机制提供理论基础。
PBFT算法
PBFT算法通过三个过程实现,即:客户端请求、共识过程和节点反馈。如果在最终反馈阶段收到超过(m/3)个不同节点的一致签名消息,则共识阶段输出的交易消息有效。而恶意节点阈值fmalicious≤(m-1)/3表示系统(区块链系统)中至少有一个诚实节点的情形下,PBFT算法可容忍至多fmalicious个恶意节点的任意行为。
共识算法的共识协议执行过程如图10所示。整个协议流程分为五个步骤进行。
Step1、请求阶段:客户端向当前视图主节点发送请求消息<request>。
Step2、共识预准备:主节点在收到<request>后,对请求序列进行排序,并将消息打包成预准备消息<pre-prepare>,在将消息添加至本地日志后,广播给系统中的其他共识节点。
Step3、共识准备:系统中各共识节点在接收到来自主节点的预准备消息后,对消息进行正确性检验,得到验证结果后,将消息添加至本地日志并向系统中的其他共识节点广播<prepare>消息。
Step4、共识提交:共识节点在接收到来自其他共识节点的<prepare>消息后,对消息的正确性进行验证,在将<prepare>消息和验证结果保存至本地日志后,向系统中其他节点广播<commit>消息作为对当前<prepare>消息正确性的投票。
Step5、反馈:通过共识准备阶段,主节点在收集到至少来自2fmalicious+1个不同节点的一致性确认消息后,向客户端反馈<request>消息的共识结果。客户端收集到来自fmalicious+1个不同节点的一致确认结果后,共识协议进入下一轮执行。
PBFT算法虽然资源损耗低且在容错性能以及节点通信等方面都有着良好的优势.但该算法采用的通信的复杂度O(n2)较高,而且算法可扩展性有限.因此优化算法的复杂度并在安全性的前提下提升算法的可扩展性具有重要的研究意义。
演化博弈理论
(1)群体博弈模型理论形式化定义
群体博弈模型可形式化表示为一个四元组
EP={Np,SRp,ΔNE,Up}(1)
其中参数符号所表示的含义见表1,表中参数内容对应于参数具体的数学含义。
表1 群体博弈模型符号释义
其中,表示np维正实向量空间,mp表示种群总数,np表示种群策略的数量,/>表示选择策略j所对应的策略向量。
(2)演化博弈论形式定义
演化博弈模型在群体博弈上形式化表示为
定义中相应参数符号含义见表2。
表2 演化博弈模型符号释义
群体博弈理论中,各方参与者通过执行当前时间下策略集中的策略获得收益,重复进行策略选择的过程中,参与者之间会进行“模仿”,趋向对高收益回报策略进行选择,当选择策略趋于稳定时,便得到演化稳定策略集。
演化稳定策略集定义为
其中,ΔESS表示演化稳定策略集,ΔNE表示纳什平衡策略集。
(3)演化博弈动态
演化博弈中对于动态决策机制的刻画对应平均动态微分方程,能够在演化周期T内精确的将有限理性参与者的行为动态变化过程描绘出来,具体的是指在某一周期时刻t,某一纯策略选择所带来收益与从该策略转移到其他策略所获收益值之差。演化博弈动态具体的动态微分方程为
其中表示策略j在种群p中随时间变化的速率,/>表示策略j到策略i的转移概率,/>表示策略i到策略j的转移概率,/>表示选择j策略的个体数目,/>表示选择i策略的个体数目,i、j、k∈Np为种群个体。
本发明在PBFT算法的基础上进行改进,并添加信誉机制模型和激励机制,基于公平性引入随机性的主节点集选取,在安全性的前提下保证方案的稳健性。具体的研究方案框架如图2所示。
首先,基于PBFT算法中的投票共识设计信誉机制模型,主要针对节点对区块共识的积极性进行评估,从而进行信誉的确定;其次,通过对信誉机制模型中投票行为进行博弈建模,将共识积极性关联到节点交互的链路收益中,证明信誉机制模型下节点信誉值演化的稳定性;最后,依据所得具有演化稳定性的信誉值设计共识算法的激励机制,以保证系统的稳健性。
图1为本发明一种基于演化博弈的拜占庭容错共识方法流程示意图,如图1所示,一种基于演化博弈的拜占庭容错共识方法,包括:
步骤101:通过客户端将交易信息集发送到当前视图下的主节点集;主节点集中各主节点对应一个共识节点组,各共识节点组同步独立运行共识机制。
步骤102:通过主节点集对交易信息集进行打包并发送至新区块中,根据交易信息集生成预准备消息。
步骤103:通过当前视图主节点集广播预准备消息至各共识节点;预准备消息中包括当前视图下共识节点的信誉值。
步骤104:在当前视图下的共识节点i收到主节点集发生的预准备消息后,共识节点i向对应共识节点组中除了共识节点i之外的其他共识节点j发送准备消息;i∈[1,2,...,n],j∈[1,2,...,n],j不等于i,n表示共识节点组中共识节点的数量;准备消息包括共识节点i的信誉值。
步骤105:在共识节点j接收到准备消息后,计算共识节点i的信誉值,当计算得到的信誉值大于或等于信誉阈值时,将共识节点i与共识节点j之间的链接关系更新至对应主节点的共识节点列表,并通共识节点j向当前视图下的主节点集发送提交消息;提交消息包括信誉值表i,信誉值表i用来存放与共识节点i进行交互的节点的信誉值。
其中,步骤105中,按照公式(5)或公式(6)计算共识节点i的信誉值。
当计算得到的信誉值大于或等于信誉阈值时,将共识节点i与共识节点j之间的链接关系更新至对应主节点的共识节点列表,否则对应主节点的共识节点列表中不会更新共识节点i与共识节点j之间的链接关系。
步骤106:在当前视图主节点集接收各共识节点发送的提交消息后,将对新区块的共识结果反馈至客户端,对当前视图中共识节点按照信誉值进行排序,断开在设定的信誉值范围之外的共识节点的链接;新区块的共识结果为是否将新区块添加到区块链上。
一种基于演化博弈的拜占庭容错共识方法还包括:
根据信誉值计算公式,在共识周期完成后计算主节点和共识节点的信誉值。信誉值计算公式表示为:
其中,表示节点i的直接信誉值,节点i为共识节点,/>表示节点i的初始信誉值,/>表示节点i的共识成功次数,mt表示共识周期内共识次数,/>表示共识周期内被添加到区块链中的事务数量值,txT表示共识周期前收集到的事务集数量值,/>表示节点i认同共识过程中主节点集发布区块正确性次数,/>表示节点i反对共识过程中主节点集发布区块正确性次数,t表示共识周期的时间段,T表示共识周期的序号。
一种基于演化博弈的拜占庭容错共识方法还包括:
通过主节点更新信誉表,对当前共识节点按照信誉值进行排序并更新节点状态信息表;节点状态信息表包括节点的身份信息,身份信息包括主节点、共识节点和拜占庭错误节点。
将共识节点排序信息和节点状态信息表广播到区块链系统中其他共识节点进行确认。
当主节点接收到m个共识节点的确认回复信息后,则基于信誉机制的共识节点链路演化博弈模型存在纳什均衡,根据收益分配函数进行收益的奖励分配;m表示共识节点组的数量;收益分配函数包括副节点收益分配函数和主节点收益分配函数。副节点收益分配函数表示为:
其中,fi表示共识节点i的收益,ω表示权重参数,表示区块链系统总收益,αi表示节点i的信誉值,αj表示节点j的信誉值,/>表示副节点最小信誉值,/>表示副节点最大信誉值,jfollower表示副节点集。
副节点(副本节点)为共识节点中除了主节点之外的节点。
主节点收益分配函数表示为:
其中,表示主节点的收益,/>表示主节点最小信誉值,/>表示主节点最大信誉值。
一种基于演化博弈的拜占庭容错共识方法还包括:
当共识节点i接收到当前视图中主节点中发送的错误消息时,共识节点i将主节点发送错误消息的行为发生至共识节点j,并向主节点集发送更换主节点请求。
当至少fmalicious+1个共识节点确认主节点的发送错误消息行为后,采用随机机制选取新的主节点并通过主节点集广播主节点更换消息;fmalicious表示恶意节点阈值。
当共识节点j更新为主节点并接收到2fmalicious+1个不同共识节点发送更新主节点更换消息时,共识节点j向主节点集合发送主节点确认消息。
更新视图的主节点集并向区块链系统中共识节点发送主节点更新完成消息。
采用随机机制选取新的主节点,还包括:
将区块链系统中m×n个节点按照信誉值降序排列,并按照排列顺序分成m个共识节点组,每组中有n个节点。
从每个共识节点组中随机选出一个节点作为主节点;各组的主节点构成主节点集。
一种基于演化博弈的拜占庭容错共识方法还包括:当主节点在区块链系统中广播错误消息时,诚实节点对错误消息进行验证,将广播错误消息的主节点标记为拜占庭错误节点;诚实节点为信誉值在设定诚实阈值区间内的节点。
一种基于演化博弈的拜占庭容错共识方法还包括:当共识节点在区块链系统中广播错误消息时,诚实节点接收并验证该错误消息后从本地路由表中删除该共识节点的路由信息,并标记该共识节点为拜占庭错误节点;诚实节点为信誉值在设定诚实阈值区间内的节点。
基于信誉机制的共识节点链路演化博弈模型表示为:
其中,N表示共识节点集合,S表示节点信誉策略,ξ表示噪声因子(干扰参数),ΔESS表示演化稳定策略集,Q表示链路变化总适应函数,ρij表示策略转移概率,表示稳定策略集合。
下面详细说明本发明一种基于演化博弈的拜占庭容错共识方法。
本发明信誉机制模型综合共识投票过程中的因素对节点的信誉进行评估,具体考虑以下重要因素:
1)共识阶段节点之间的交互、反馈。
2)周期T中主节点收集到的交易事务量性,例如交易大小、交易数量等。
3)节点在周期T期间共识投票行为。
4)系统的稳健性以及外部扩展状态。
所涉及到的参数为:①共识周期t后共识节点i直接信任值此处t为共识周期的最小单位时间。
②整个共识周期T前收集到事务集数量值txT,以及该整个共识周期后成功被添加到区块链中的事务数量值
③共识周期t内共识次数mt,以及总共识成功次数
④共识周期t内,节点i认同共识过程中主节点集发布区块Bt,k正确性(Bt,k最终被添加至链上)次数反对区块Bt,k正确性次数/>
首先给定节点初始信誉值通过共识周期的更迭来更新节点的信誉值。通过量化共识过程所收集到的事务集表示出共识阶段该过程的重要性程度,旨在区分关键型的事务集和非关键型事务集的数量比重对节点共识的影响,同时利用Sigmod型函数的良好特性,将节点信誉值控制在[0,1]范围之内,便于信誉阈值策略的设定。而相应直接信誉值定义如下。
节点的直接信誉值:节点i在共识周期T完成后的信誉值计算方式为:
系统节点自由加入和退出使得节点的链接具有动态性,假设节点按照密度参数为λ的泊松过程分布在图3拓扑图中,给定节点覆盖半径为R(或r)内所有节点的信息。基于现有的一种信誉传播计算方法,使得在共识过程中两个节点一方或者双方本地未存储对方信息的情形下进行基于信誉值的交互。
本发明采用修正余弦函数衡量节点之间的信誉值相似度,并以此定义节点之间的间接信誉值,具体定义如下。
节点的间接信誉值:节点i相对于节点j间接信誉值α(i→j)。具体公式为
其中I表示节点i和节点j共同交互的节点集合,k表示集合I中节点,∑simt(i,k)表示信誉传播路径中的节点与节点i的相似度之和。具体的表达形式如下:
其中x∧h表示当前阶段信誉值传播过程中与节点x有交互历史的节点,且节点h与节点x都有相应的共识节点交集;表示节点i直至t时的历史平均信誉值。
通过综合推荐路径中节点的信誉值的权重和信誉值相似度的考量定义间接信誉值,使得系统扩展过程中加入的新节点更多的被考虑到机制中来。
本发明改进的PBFT算法利用节点信誉值进行主节点的更新,通过对节点进行分层随机性的选举,从信誉值降序分层的节点集中选取主节点,结合信誉值的更新机制实现随机性公平的选举。
图4即是节点状态更新的流程,其中共识节点与主节点之间的状态通过随机化进行转换,共识节点跟随主节点完成共识并监督主节点的诚实性。
节点状态具体的更新规则为:
1)上级节点状态更新,即主节点更新为共识节点或者拜占庭错误节点表示为:
其中,表示系统中mn个共识节点依声誉值降序序列排序分组,共计m组中每组n个节点,Sn表示主节点,Cn表示共识节点,BFn表示拜占庭错误节点,random{}表示随机化{降序排列共识节点信誉值序列},主节点更新为拜占庭节点时,主节点属于{恶意节点或者发送恶意消息的主节点}。
图5为共识节点层次结构的示意图。改进后的PBFT共识算法将共识节点分为主节点集与共识节点组,各共识组同步独立运行共识机制,由该组主节点引导共识的进程。图5中,上层为主节点集(Primary sets),下层为共识节点群组(Consensus group),其中主节点为m个,且分别对应1-m共识节点群组。
在共识周期完成后,需要从信誉值降序排列的mn个共识节点中随机选出m个上级节点。首先从信誉值降序序列前n个共识节点中随机选取第一个上级节点,随后依次从剩余信誉值降序序列中随机选取出上级节点。当上级节点在系统中广播错误消息时,诚实节点通过对共识消息的验证,标记出该上级节点是拜占庭错误节点,并执行共识节点状态更新。
2)共识节点状态更新
其中,Npn表示新加入的节点,表示恶意节点的ID路由信息,topol_tableNpn表示用来存放与新加入节点交互的节点信息,新加入节点更新为共识节点时新节点的信誉值为初始信誉值且新加入节点中不包含恶意节点的ID路由信息。
当共识节点在系统中广播错误消息时,诚实节点接收并验证该消息后从本地路由表中删除该节点的路由信息,并一致标记该节点为拜占庭错误节点。系统默认新参与节点信誉值为α0,且新参与节点不能立即参与共识过程,在下一轮共识开始前,新参与节点同步系统状态并标记相应拜占庭错误节点。
当诚实节点接收到主节点集中恶意行为消息时,针对当前主节点集发起主节点更新请求并广播至系统内各节点,主节点集接收到请求后验证请求正确性,若正确则按照上述节点选取机制进行主节点更换,被选定的节点在收到至少来自fmalicious+1个不同节点的一致确认消息后,将被添加至主节点集,当选为下一轮共识主节点集合中的主节点.图6即为主节点更新协议的具体流程。
主节点更新算法具体如算法1所示。算法1依据节点的信誉值进行主节点的选取与确认,首先针对恶意主节点的替换达成共识,进而依据节点的信誉值随机选取新的主节点。
算法1:主节点更新算法
输入:sp:错误主节点,i:正常共识节点,αi:节点i共识信誉值,message=error:错误共识消息。
输出:primary-list:新主节点集合列表,[primary-replace]:主节点更新替换消息集,[αs-list]:更新后主节点信誉值列表。
1)共识节点收到当前视图中主节点集合中发送错误消息的节点,向其他节点发送该主节点恶意行为证明并发起主节点更换请求消息,消息内容为
其中σp表示主节点的签名信息,σi表示共识节点的签名信息,digest表示信息的摘要。
2)当至少fmalicious+1个不同共识节点一致确认主节点恶意行为后,主节点集合通过随机机制选取新的主节点并广播主节点更换消息:
其中j表示当选主节点的共识节点序号,αj表示该预主节点对应的信誉值,σs表示主节点集合中的节点签名。
3)节点j更新并收集是否有2fmalicious+1个不同共识节点发送更新主节点更换消息,若是,则节点j向主节点集合发送主节点确认消息:
并执行步骤4);否则便直接结束。numconfirm表示更换消息数量,σj表示节点j的签名信息。
4)主节点集合更新视图的主节点集合并向系统中共识节点发送主节点更新完成消息:
图7为改进PBFT算法共识协议过程。其中主节点集合以{0}表示,并且主节点集参与共识的投票过程。所改进PBFT算法除了对主节点进行集合化提升效率以外,依据信誉机制的节点共识对原先PBFT算法中commit阶段的通信次数也进行减少。
改进PBFT算法具体如算法2所示,算法2中节点的交互过程增加了节点的信誉值的交换,即达到设定信誉阈值的节点才有相应程度的共识话语权。
算法2:改进PBFT算法
输入:当前共识系统状态、交易信息集Txclient。
输出:本轮共识一致性结果、新的共识系统状态。
1)request阶段:客户端client将Txclient发送给当前视图下主节点集{0}.主节点集中节点在接收到Txclient后验证其中交易txi(txi∈Txclient)的有效性,将有效的交易集{txi}打包至新区块中,并生成可在merkle tree中检索到的块头信息Blockhead。
2)pre-prepare阶段:当前视图主节点集{0}广播预准备消息(pre-prepare)至系统中的各共识节点,而pre-prepare主体形式为
其中numv表示当前视图的编号值,numr表示requst消息的序列值,topol0表示主节点集{0}所存储的共识节点信息表(其中包含节点的信誉值等信息),σ0表示主节点集签名信息,而digest表示信息的摘要。
3)prepare阶段:当前视图下共识节点1,2,3在收到来自主节点集{0}所发送的pre-prepare消息后,先验证消息的正确性,若正确性通过则向系统中其他共识节点发送准备消息(prepare),prepare形式为:
其中,topoli表示共识节点i所存储的共识节点信息表,dropi表示共识节点i所存储的与共识节点i断开链接的节点信息表。
4)commit阶段:当前视图下其他共识节点在收到prepare消息后,计算消息源节点的直接信誉值αi(或间接信誉值).当αi≥αk时,共识节点更新本地共识节点列表以及区块状态信息,并发送提交消息至主节点集(commit),commit形式为:
5)reply阶段:在提交阶段完成后,当前视图共识节点在本地更新当前系统状态,主节点集中的节点将针对新区块的共识输出结果回复给客户端,并对当前视图中共识节点进行基于信誉值的排序,在正常信誉值阈值(阈值设定如表6)以外的节点将被隔离出共识过程。在达到预设共识周期轮数主节点集完成激励机制后,共识进入下一轮周期。
本发明从共识机制中节点之间的动态链接交互对节点信誉值进行演化博弈模型的建立。通过相关收益函数的建立,分析节点信誉值演化的稳定性并以此建立激励机制,保证算法的稳健性。
改进PBFT共识中的演化博弈模型包括以下内容。
(1)结合信誉的共识机制博弈建模
本发明通过节点之间链接与断开的动态过程,对信誉值的变化进行稳定性分析,旨在通过演化博弈理论分析共识过程中节点之间交互对信誉值的影响。其中诚实共识节点为获取高的信誉值会选择最佳的投票行为策略,并就该策略行为对应的收益学习更高收益节点的策略行为。
基于信誉机制的共识节点链路演化博弈模型(EMCNLBR,evolutionary gamemodel ofconsensus node link based on reputation mechan-ism)形式化定义为:
模型中相关参数符号含义见下表3。表中包括博弈的主体、博弈策略以及与策略相对应的收益函数。
表3 符号释义
其中通过结合信誉机制计算出来的信誉数值而Spure=[0,αmax]表示纯策略集合,Smixed表示混合策略集合,αmax表示最大信誉值。
(2)EMCNLBR模型中相关定义
1)节点之间拓扑链接结构
区块链系统中任意两节点i、j之间的关系定义为:
本发明中关于任意节点之间的关系是对称的,即区块链系统中节点连接形成的拓扑结构图的邻接矩阵是对称矩阵,且A中对角元素全为零,即rii=0。节点连通度:区块链系统中任意共识节点i∈N在系统中与之连接节点总个数有定义如下:
其中表示节点i∈N与系统中其他节点通过路由表或者ID(Node)建立链接的个数,通过图论中点的度值(degree)来定义。由节点关系可知,本发明中节点i∈N出度值与入度值/>是相同的。
2)节点链路适应函数与收益函数
正常共识节点的链接关系总是为共识机制的完成起到积极性的作用。本发明基于此对链路适应函数分为静态与动态,静态为该节点与其他节点链接适应度以及因链接所产生的成本加和表示;动态情形下节点在t∈T时不仅依靠当下链接的节点获得适应度收益,同时与产生新链接关系的节点有关。基于现有技术中节点链路适应度的定义,本发明给出节点的链接适应函数,具体间如下定义。静态链路适应函数定义为:
其中,p>q>0。
动态链路适应函数定义为:/>
rik(creat)表示节点k与节点i建立新链接。则相应链路变化总适应函数为:
节点链路状态总收益函数F。用F表示节点在系统中链路状态的总收益函数,在链路适应函数的基础上,本发明采用如下所示的收益向量函数。
Fi表示策略i所对应的收益值。
3)模型形式化
本发明以链路适应性对系统中节点进行演化模型的建立,并使用Sigmod函数对策略转移概率进行形式化的定义,具体使用为:
式(15)和(16)为策略转移概率,其中
η>0表示系统的噪声因子。由式(17)可看出,当ΔF越大,转移概率越接近1,ΔFij表示策略转移下收益值的变化。
由式(4)(8)(9)(10)(15)(17)可得,EMCNLBR的动态微分方程表示为
说明演化均衡策略存在性与稳定性。
(1)EMCNLBR中纳什均衡的存在性
证明EMCNLBR中存在纳什均衡:EMCNLBR模型的策略空间集定义在[0,αmax]上,因此EMCNLBR模型中的策略空间集合是欧氏空间上非空的有界闭凸集合。
/>
考虑F在R是连续的,则收益函数对/>的一阶偏微分为
则由可微函数中一阶优化必要性可知,令则由极大值定理,可得收益函数/>对/>的二阶偏微分为:
因此,收益函数在R上具有凹性。则由上述证明过程与纳什均衡定义可知,EMCNLBR中存在纳什均衡。
(2)EMCNLBR中纳什均衡的稳定性
利用公式(18)刻画共识系统中节点信誉值的动态变化,便可得到关于系统中节点信誉变化的动态微分方程组:
其中:
证明EMCNLBR中纳什均衡是稳定的:假定所有节点的度相同,即dNum=d固定。若α*∈[0,αmax]是EMCNLBR模型中纳什均衡点,则有:
即收益向量在此状态下的策略转移概率指向均衡策略恒为正。
对于矩阵H(α(t))利用Jacobian矩阵分析法,首先求解H(α(t))中各个元的偏微分,即是:
/>
则可得矩阵H(α(t))的Jacobian矩阵为:
对任意非零实值列向量记H(α(t))的Jacobian矩阵为JH(α(t)):
β=[β1,β2,...,βn]T
有:
即证JH(α(t))是负定矩阵且所对应的特征值都是负数,即纳什均衡α*∈[0,αmax]是EMCNLBR中的稳定纳什均衡点。
(3)稳定的激励机制设计
基于信誉稳定策略的存在性,通过奖励激励机制对共识节点进行激励,旨在提高系统中共识节点参与共识的积极性。
基于信誉策略的激励机制过程如算法3所示,算法3中各值所代表含义如下:
1.topol_tablei用来存放与节点i在共识阶段交互的节点信息、节点i与目标节点的拓扑距离、节点在共识周期内参与共识次数以及参与共识正确性次数、是否采用演化稳定策略ESS以及节点自身的链路的收益。
2.drop_tablei用来存放与节点i断开链接的节点信息,并在共识阶段广播给其他节点。
3.reputation_tablei用来存放与节点i进行交互的相关节点信誉值。
算法3:基于演化稳定信誉策略的激励机制算法。
输入:reputation_table:信誉值表,系统总收益,ω:权重参数。
输出:fi:共识节点收益,主节点收益值,topol_tablei,drop_tablei。
1)首先主节点更新reputation_table对当前共识节点进行排序并统一更新节点状态信息表,再广播给系统中其他的节点进行确认。
2)主节点收到m个共识节点的确认回复后,则根据以下分配函数进行奖励分配。
副节点收益分配函数:
主节点收益分配函数:
3)输出fi和相应的值,系统中的共识节点基于reputation_table,同步更新本地topol_table和drop_table;正常共识节点标记恶意节点并断开与恶意节点的链接,以保持自身拓扑链接的良性。
安全性与性能分析
1、通信成本分析
本发明所改进PBFT共识机制的通信次数为m(n2+m-2)。
假设系统中有mn个节点,其中有m个主节点,其余m(n-1)个为共识节点。
1)首先,客户端向主节点集中的节点发送请求消息,节点在收到请求消息后在主节点集中进行预准备阶段消息共识,该阶段通信次数为m(m-1)。
2)在预准备阶段,主节点集中节点向所在节点组中广播预准备消息,该阶段通信次数为m(n-1)。
3)在准备阶段,各节点组独立进行对共识消息的验证,该阶段通信次数为m(n-1)2。
4)在提交阶段,主节点集合中节点接收共识节点的验证消息并进行验证,该阶段通信次数为m(n-1)。
因此改进的PBFT共识算法通信次数为m(n2+m-2),同节点数目下原PBFT共识算法通信次数为2mn(mn-1),而当1<m<<n时,有m(n2+m-2)<2mn(mn-1)。
虽然改进共识算法的通信复杂度仍为O(n2),但结合信誉机制的共识算法使得通信次数大大降低。
2改进PBFT算法的安全性、一致性与活性
(1)安全性分析
改进PBFT共识依靠PBFT共识中各共识节点之间交互消息中的签名、时间戳保证了消息的安全性,而视图中共识协议的完整性限制节点不能进行超过当前视图编号的共识,保证共识执行的安全性。
同时,改进PBFT共识通过信誉机制对共识节点按照信誉值进行分片,使得各组内的节点拥有与共识相匹配的信誉度,通过限制低信誉度节点参与共识的权利以及剔除劣性信誉值的节点以保证组内与组间共识节点的可靠性与安全性。根据3.1节信誉机制中信誉策略可知,节点的信誉度表示对节点共识过程中共识行为的评价,而偏离共识协议节点的共识行为具有任意性,因此所设计的信誉机制具有对抗拜占庭节点恶意共识行为的能力。
通过上述分析可知,本发明所设计的方案能够在安全性的前提下输出正确共识结果。
(2)一致性分析
改进PBFT共识在PBFT共识的基础上实现共识的一致性,并通过信誉机制对节点在共识过程中的投票行为进行评估,保证协议方案共识输出结果的一致性。改进PBFT共识过程中,在容错阈值fmalicious≤(m-1)/3以内,主节点集合通过正常执行PBFT协议达成区块共识的一致性。同理,组内节点在阈值fmalicious≤(n-1)/3时,组内共识节点也可以正常执行PBFT协议来保证共识输出结果的一致性。在改进PBFT共识协议执行的过程中,信誉机制会对执行共识协议的节点行为进行评价度量,将偏离共识协议的节点从共识系统中剔除,以保证协议在多数诚实节点上进行执行并达成一致性。
共识机制中主节点为集合形式的存在,一定通信量的产生使得所改进PBFT共识机制不会频繁更换视图。恶意节点会在共识机制的节点状态更新中被删除,相应信誉值较低的节点也会因为信誉机制的迭代从系统中被剔除。因此共识节点中的节点可信度保证了共识一致性的达成。
(3)活性
改进PBFT共识算法的活性主要是由PBFT共识过程中的视图切换和信誉机制的迭代所提供。在共识节点组内或组间的共识过程中,通过均匀分布的随机性,选取信誉值良好的节点作为主节点,而共识视图编号依次递增。在共识节点收到超时信息或者主节点为恶意的情形下,有fmalicious+1个共识节点确认当前视图的无效,则共识节点一致性的进入下一个视图进行共识协议的执行。
当主节点发生故障时,组内共识节点通过算法1进行主节点的选取更新以保证改进PBFT共识算法应对节点宕机故障的能力,结合信誉机制的主节点选举则保证了主节点的可靠性,降低主节点偏离协议的概率的同时增强了改进PBFT共识算法的活性。
现有结合信誉机制的共识方案中都存在不同程度的信誉积累问题,进而给系统的安全性带来一定的威胁。与现有的信誉机制的共识方案相比,而本发明方案受信誉积累问题所带来的威胁性较小,且设计激励机制保证方案的稳健性。
在3.60GHz的8核64位Intel(R)Core(TM)i7-4790U处理器、12GB内存(RAM)、Windows10操作系统的实验环境中,通过设置不同节点数量,对共识算法在交易事务吞吐量、节点信誉值变化等方面进行评测分析。同时对节点信誉演化模型进行仿真试验,证明本发明所设计信誉机制的演化稳定有效性。
在设置不同fmalicious比率情形下,对所改进PBFT共识算法的成功共识率与共识周期中共识节点的平均信誉值进行关联性仿真实验。设定fmalicious(图8中fm)分别为0.10、0.20、0.25、0.30,总节点数目N=50,同时配置不同类型节点,即如表6所示。在无激励机制的影响下,如图8结果所示。固定系统中的fmalicious的比率,随着系统平均信誉值的增加,系统趋于稳定状态,而共识的成功率也逐渐趋于稳定。
fmalicious为0.25时,在系统平均信誉阈值超过0.6后,共识的成功率逐渐趋于平缓,最终达到稳定值0.82,此时系统中恶意节点的影响已被排除在共识系统之外,但共识成功效率仍然受到部分消极共识节点的影响。fmalicious为0.30时,由于初始系统平均信誉值较低,使得共识的成功率无法达到正常水平,但随着正常共识周期轮次的增加,使得正常共识节点的信誉值逐渐增加,但由于共识算法不能完全隔离恶意节意节点,使得系统中存在消极共识节点与恶意节点并存,导致共识成功率在系统稳定时仍处于较低的水平,但信誉机制的存在使得共识的成功率在可控容阈值内得到可观的平稳变化,使得陡增的恶意节点对系统瞬时的破坏性减少。
在加入激励机制的情形中,对消极共识节点的共识行为进行积极的促进,基于信誉演化策略的选择,理性的共识节点拥有良好的信誉值,对共识的成功起到积极的作用。在激励机制的促进下,信誉值良好的节点对应更高的信誉收益,而共识过程中消极共识节点的共识积极性便得到提升,使得基于理性的信誉激励机制对共识的达成起到重要的积极作用。
针对本发明所设计的信誉机制采用Matlab语言进行仿真分析,主要通过模拟节点在共识机制信誉机制下的信誉演化过程,分析共识节点信誉在链路中的变化。表6所示为仿真实验系统中的节点信誉策略阈值的设定,按照信誉值区间降序排序分别设定了合作、诚实、背叛三种行为策略集。
表6 策略阈值
图9为信誉值演化过程。本实施例实验中,设定节点初始信誉值α=0.5,信誉迭代轮次t=5,实验设定迭代周期轮次为T=50,同时节点演化速率设定在[0.4,0.7]。
由图9可知,节点信誉演化稳定状态都在设定安全阈值之内,迭代次数稳定在15-20次之间可以达到收敛状态。本实施例实验针对节点到达信誉演化稳定的周期过程进行仿真,而受节点之间拓扑链接的变化影响,最终演化模型中节点的信誉值应该在最终收敛阈(α*-ε,α*+ε)之内波动,而共识节点最终就链路状态达成一致,使得系统处于演化模型中的稳定状态。
所设置拓扑链路结构中节点数目为30,主要是对节点信誉值在激励机制中的动态变化模拟,得出演化稳定策略在不同节点数量的情况下的收敛性。仿真过程中对不同节点分配不同的演化速率,使得节点的信誉值不仅受到链路交互的影响,同时受到系统环境因素的制约,这使的信誉值在演化模型中的变化更加具有可靠性。当节点数量设定为30时,节点信誉值仍然良好的稳定在[0.4,0.6]之间。
结合信誉机制的容错算法中通常会因为机制原理产生信誉积累问题,使得采用算法的系统中心化程度较高,导致系统出现安全性问题,且不利于系统的扩展。本发明提出一种基于信誉和演化博弈模型的PBFT算法,在尝试解决原PBFT算法吞吐量等性能低的基础上,结合循环重置的信誉机制在保证安全的前提下消除信誉积累问题,并设计激励机制提升方案的稳健性。仿真测试表明本发明所设计算法与同类算法比较,在吞吐量与信誉机制方面有着明显的优势,且信誉机制良好的收敛效果保证了系统共识的稳健性。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种基于演化博弈的拜占庭容错共识方法,其特征在于,包括:
通过客户端将交易信息集发送到当前视图下的主节点集;所述主节点集中各主节点对应一个共识节点组,各共识节点组同步独立运行共识机制;
通过所述主节点集对所述交易信息集进行打包并发送至新区块中,根据所述交易信息集生成预准备消息;
通过当前视图主节点集广播预准备消息至各共识节点;所述预准备消息中包括当前视图下共识节点的信誉值;
在当前视图下的共识节点i收到主节点集发生的预准备消息后,共识节点i向对应共识节点组中除了共识节点i之外的其他共识节点j发送准备消息;i∈[1,2,...,n],j∈[1,2,...,n],j不等于i,n表示共识节点组中共识节点的数量;所述准备消息包括共识节点i的信誉值;
在共识节点j接收到准备消息后,计算共识节点i的信誉值,当计算得到的信誉值大于或等于信誉阈值时,将共识节点i与共识节点j之间的链接关系更新至对应主节点的共识节点列表,并通共识节点j向当前视图下的主节点集发送提交消息;所述提交消息包括信誉值表i,信誉值表i用来存放与共识节点i进行交互的节点的信誉值;
在当前视图主节点集接收各共识节点发送的提交消息后,将对所述新区块的共识结果反馈至客户端,对当前视图中共识节点按照信誉值进行排序,断开在设定的信誉值范围之外的共识节点的链接;所述新区块的共识结果为是否将新区块添加到区块链上。
2.根据权利要求1所述的基于演化博弈的拜占庭容错共识方法,其特征在于,所述方法还包括:
根据信誉值计算公式,在共识周期完成后计算主节点和共识节点的信誉值;
信誉值计算公式表示为:
其中,表示节点i的直接信誉值,节点i为共识节点,/>表示节点i的初始信誉值,/>表示节点i的共识成功次数,mt表示共识周期内共识次数,/>表示共识周期内被添加到区块链中的事务数量值,txT表示共识周期前收集到的事务集数量值,/>表示节点i认同共识过程中主节点集发布区块正确性次数,/>表示节点i反对共识过程中主节点集发布区块正确性次数,t表示共识周期的时间段,T表示共识周期的序号。
3.根据权利要求1所述的基于演化博弈的拜占庭容错共识方法,其特征在于,所述方法还包括:
通过主节点更新信誉表,对当前共识节点按照信誉值进行排序并更新节点状态信息表;所述节点状态信息表包括节点的身份信息,所述身份信息包括主节点、共识节点和拜占庭错误节点;
将共识节点排序信息和节点状态信息表广播到区块链系统中其他共识节点进行确认;
当所述主节点接收到m个共识节点的确认回复信息后,则基于信誉机制的共识节点链路演化博弈模型存在纳什均衡,根据收益分配函数进行收益的奖励分配;m表示共识节点组的数量;所述收益分配函数包括副节点收益分配函数和主节点收益分配函数;
副节点收益分配函数表示为:
其中,fi表示共识节点i的收益,ω表示权重参数,表示区块链系统总收益,αi表示节点i的信誉值,αj表示节点j的信誉值,/>表示副节点最小信誉值,/>表示副节点最大信誉值,jfollower表示副节点集;
主节点收益分配函数表示为:
其中,表示主节点的收益,/>表示主节点最小信誉值,/>表示主节点最大信誉值。
4.根据权利要求1所述的基于演化博弈的拜占庭容错共识方法,其特征在于,所述方法还包括:
当共识节点i接收到当前视图中主节点中发送的错误消息时,共识节点i将主节点发送错误消息的行为发生至共识节点j,并向主节点集发送更换主节点请求;
当至少fmalicious+1个共识节点确认主节点的发送错误消息行为后,采用随机机制选取新的主节点并通过主节点集广播主节点更换消息;fmalicious表示恶意节点阈值;
当共识节点j更新为主节点并接收到2fmalicious+1个不同共识节点发送更新主节点更换消息时,共识节点j向主节点集合发送主节点确认消息;
更新视图的主节点集并向区块链系统中共识节点发送主节点更新完成消息。
5.根据权利要求4所述的基于演化博弈的拜占庭容错共识方法,其特征在于,所述采用随机机制选取新的主节点,还包括:
将区块链系统中m×n个节点按照信誉值降序排列,并按照排列顺序分成m个共识节点组,每组中有n个节点;
从每个共识节点组中随机选出一个节点作为主节点;各组的主节点构成主节点集。
6.根据权利要求1所述的基于演化博弈的拜占庭容错共识方法,其特征在于,所述方法还包括:
当主节点在区块链系统中广播错误消息时,诚实节点对错误消息进行验证,将广播错误消息的主节点标记为拜占庭错误节点;所述诚实节点为信誉值在设定诚实阈值区间内的节点。
7.根据权利要求1所述的基于演化博弈的拜占庭容错共识方法,其特征在于,所述方法还包括:
当共识节点在区块链系统中广播错误消息时,诚实节点接收并验证该错误消息后从本地路由表中删除该共识节点的路由信息,并标记该共识节点为拜占庭错误节点;所述诚实节点为信誉值在设定诚实阈值区间内的节点。
8.根据权利要求1所述的基于演化博弈的拜占庭容错共识方法,其特征在于,基于信誉机制的共识节点链路演化博弈模型表示为:
其中,N表示共识节点集合,S表示节点信誉策略,ξ表示噪声因子,ΔESS表示演化稳定策略集,Q表示链路变化总适应函数,ρij表示策略转移概率,示稳定策略集合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111288652.6A CN114003584B (zh) | 2021-11-02 | 2021-11-02 | 一种基于演化博弈的拜占庭容错共识方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111288652.6A CN114003584B (zh) | 2021-11-02 | 2021-11-02 | 一种基于演化博弈的拜占庭容错共识方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114003584A CN114003584A (zh) | 2022-02-01 |
CN114003584B true CN114003584B (zh) | 2024-02-23 |
Family
ID=79926447
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111288652.6A Active CN114003584B (zh) | 2021-11-02 | 2021-11-02 | 一种基于演化博弈的拜占庭容错共识方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114003584B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174565B (zh) * | 2022-05-18 | 2023-08-15 | 国网河南省电力公司信息通信公司 | 一种基于区块链分片技术的共识方法及装置 |
CN115065468B (zh) * | 2022-07-15 | 2024-04-30 | 辽宁工程技术大学 | 一种基于分组信誉值的pbft共识优化方法 |
CN115633035B (zh) * | 2022-12-07 | 2023-03-17 | 长春大学 | 一种基于改进的pbft物联网区块链共识算法 |
CN116709341B (zh) * | 2023-07-31 | 2024-04-30 | 中国人民解放军军事科学院系统工程研究院 | 针对无人蜂群的实用拜占庭容错共识算法优化方法及系统 |
CN117745433B (zh) * | 2024-02-19 | 2024-05-28 | 成都理工大学 | 基于改进pbft共识机制的能源区块链节点共识方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109767199A (zh) * | 2018-12-10 | 2019-05-17 | 西安电子科技大学 | 基于信誉的pbft共识系统及方法、区块链数据处理系统 |
CN110493198A (zh) * | 2019-07-26 | 2019-11-22 | 北京工业大学 | 一种基于改进PBFT算法防御区块链中Sybil攻击的方法 |
CN110784346A (zh) * | 2019-10-18 | 2020-02-11 | 深圳供电局有限公司 | 一种基于信誉值的pbft共识系统及方法 |
KR20200083145A (ko) * | 2018-12-28 | 2020-07-08 | 연세대학교 산학협력단 | 블록체인 네트워크의 합의 방해요인 제거를 위한 장애 허용 합의 방법 |
CN111612455A (zh) * | 2020-04-21 | 2020-09-01 | 国网江苏省电力有限公司电力科学研究院 | 一种面向用电信息保护的拜占庭容错联盟链共识方法及其系统、存储介质 |
CN112039964A (zh) * | 2020-08-24 | 2020-12-04 | 大连理工大学 | 一种基于区块链的节点信誉共识方法 |
-
2021
- 2021-11-02 CN CN202111288652.6A patent/CN114003584B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109767199A (zh) * | 2018-12-10 | 2019-05-17 | 西安电子科技大学 | 基于信誉的pbft共识系统及方法、区块链数据处理系统 |
KR20200083145A (ko) * | 2018-12-28 | 2020-07-08 | 연세대학교 산학협력단 | 블록체인 네트워크의 합의 방해요인 제거를 위한 장애 허용 합의 방법 |
CN110493198A (zh) * | 2019-07-26 | 2019-11-22 | 北京工业大学 | 一种基于改进PBFT算法防御区块链中Sybil攻击的方法 |
CN110784346A (zh) * | 2019-10-18 | 2020-02-11 | 深圳供电局有限公司 | 一种基于信誉值的pbft共识系统及方法 |
CN111612455A (zh) * | 2020-04-21 | 2020-09-01 | 国网江苏省电力有限公司电力科学研究院 | 一种面向用电信息保护的拜占庭容错联盟链共识方法及其系统、存储介质 |
CN112039964A (zh) * | 2020-08-24 | 2020-12-04 | 大连理工大学 | 一种基于区块链的节点信誉共识方法 |
Non-Patent Citations (1)
Title |
---|
基于树形拓扑网络的实用拜占庭容错共识算法;包振山;王凯旋;张文博;;应用科学学报;20200130(01);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114003584A (zh) | 2022-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114003584B (zh) | 一种基于演化博弈的拜占庭容错共识方法 | |
Popov et al. | The coordicide | |
Feng et al. | Two-layered blockchain architecture for federated learning over the mobile edge network | |
Wang et al. | A trusted consensus fusion scheme for decentralized collaborated learning in massive IoT domain | |
Wang et al. | Beh-Raft-Chain: a behavior-based fast blockchain protocol for complex networks | |
CN112163856A (zh) | 用于区块链与物联网融合场景的共识方法及系统 | |
CN115378604B (zh) | 一种基于信誉值机制的边缘计算终端设备的身份认证方法 | |
CN110945831A (zh) | 抗Sybil攻击身份的生成 | |
CN112217683A (zh) | 跨异构链数据可达性处理方法、系统、介质、设备、终端 | |
CN115499129A (zh) | 一种多模信任跨链共识方法、系统、介质、设备及终端 | |
CN113422805B (zh) | 一种基于可验证随机函数的分片共识方法 | |
CN111798234B (zh) | 一种轻量级区块链系统及构造方法 | |
CN116015672B (zh) | 一种基于信誉模型的pbft共识机制 | |
CN115174570A (zh) | 一种基于动态委员会的跨链共识方法及系统 | |
Liu et al. | Communitychain: Toward a Scalable Blockchain in Smart Home | |
CN116582550A (zh) | 基于信任评估组建跨链系统的方法、交易传递方法、装置 | |
Yang et al. | User-centric blockchain for industry 5.0 applications | |
Jiang et al. | Autonomous trust establishment | |
Li et al. | A hybrid trust management framework for wireless sensor and actuator networks in cyber-physical systems | |
Wu et al. | Main-Secondary Blockchain Framework: Cross-Domain Trust Management Mechanism Using Trust Ticket | |
Otsuki et al. | Impact of saving attacks on blockchain consensus | |
Li et al. | EBFT: A hierarchical and group-based byzantine fault tolerant consensus algorithm | |
CN114301598A (zh) | 基于分层权威的区块链共识算法、系统及存储介质 | |
Bu et al. | RepShardChain: A reputation-based sharding blockchain system in smart city | |
Pan et al. | Hybrid consensus algorithm based on hierarchy authority |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |