1.本发明涉及区块链技术领域,尤其涉及一种基于信任模型的自适应切换高效容错共识方法。
背景技术:2.区块链是一种结合了分布式数据存储、点对点传输、加密算法、以及共识机制等计算机技术的一种新型分布式系统,他的优势在于去中心化,区块链技术利用数据加密,分布式共识,时间戳等技术,使得点对点交易不再需要可信的第三方背书,从而能够极大的解决由于数据的中心化存储导致的成本难以降低,数据容易泄露,以及数据存储安全性差等问题。
3.共识机制是保证区块链系统一致性的核心机制,它指的是如何让处在分布式系统中的一系列节点就某一个决策达成一致。一个安全稳定的共识算法可以让分布式系统中的所有节点运行得像一个节点实体一样,是区块链中数据保持一致的根本保障。
4.现有的共识算法按照是否可以容忍拜占庭错误可以分为拜占庭容错共识算法与非拜占庭容错共识算法,这两种类别中最为主流的共识算法分别为《practical byzantine fault tolerance》一文中提出的pbft共识算法与《in search of an understandable consensus algorithm》一文中提出的raft共识算法。
5.pbft共识算法能够解决区块链系统在共识过程中节点出现的拜占庭错误,但是它的算法复杂度高,且对于主节点的负载压力高,导致它的算法效率难以提升。raft共识算法虽然运行效率高于pbft共识算法,但是它无法抵抗区块链系统中的拜占庭攻击。除了这两种共识算法外,现有的主流共识算法中也没有一种共识算法能够做到兼顾拜占庭容错性与高效性。
技术实现要素:6.为了解决上述问题,本发明提出了一种基于信任模型的自适应切换高效容错共识方法。
7.本发明的技术方案如下:
8.一个基于信任模型的自适应切换高效容错共识方法,包括以下步骤:
9.步骤(1)客户端向区块链系统发起交易请求《request,tx,σc》给主节点,此时区块链系统中运行raft共识算法,其中tx为客户端请求执行的交易,σc为客户端签名。
10.步骤(2)主节点收到交易请求后,首先发送增加新日志条目的消息到所有从节点,每个从节点在接收到消息,复制成功后将反馈复制成功的消息给主节点。
11.步骤(3)主节点收集反馈消息并统计,当收到超过半数从节点成功复制日志条目的反馈信息,即共识成功,此时区块链系统中继续运行raft共识算法;若反馈消息未达到半数,则进入一致性检查阶段。
12.步骤(4)进入一致性检查阶段,所有节点互相发送验证消息检验每个节点的最新
日志是否相同,若一致,继续运行raft共识算法;若不一致,则主节点向所有节点发送共识切换通知,区块链系统进入基于信任模型的自适应共识切换阶段,区块链系统将由raft共识算法切换为pbft共识算法。
13.步骤(5)进入基于信任模型的自适应共识切换阶段,系统根据信任模型将所有节点进行分类:节点按照信任值高低分别归入高信任值组与低信任值组,pbft共识算法只在高信任值组中的节点间运行;低信任值组的节点只发送数据,不参与共识。
14.步骤(6)节点分组完成后,高信任组中节点互相发送“主节点选举”信息,进入主节点选举阶段,此时的主节点选举方法舍弃了传统pbft中用视图转换更换主节点的方法,采取更加安全的自适应主节点选取方法对主节点进行选取。
15.步骤(7)在选出主节点后,高信任值组中其余节点则为从节点。至此,区块链系统中的共识算法由raft共识算法切换为pbft共识算法。随后所有节点互相发送验证消息请求达成共识;在所有节点进行一轮完整的pbft共识后,区块链系统根据信任模型将所有节点的信用值更新,并重新分类。随后在新的高信任组中执行步骤(6)以重新选择主节点,保证了在共识中表现良好的节点可以更换为主节点进行共识。
16.步骤(8)经过多轮pbft共识后,作恶节点或者表现差的节点已在区块链系统中非主要节点参与共识或被剔出,此时由pbft共识中的主节点触发共识切换回raft共识。自适应主节点选取算法保证了在pbft共识中主节点大概率为信用值高,即表现良好的节点,所以在切换回raft共识算法后,主节点直接可作为raft共识算法中的主节点,其余节点为从节点,继续运行raft共识算法。
17.进一步地,对于所述步骤(5),具体实现过程如下:
18.(1)信任模型:
19.共识行为信任t
cons
:根据节点在共识过程中每一轮的行为和表现,在每一轮结束时对节点进行信任评估,将节点分为三种状态:良性状态、宕机状态以及作恶状态;
20.良性状态是指在一轮共识中,若节点i为主节点:节点i产生有效的区块,并能够正确的达成一致;若节点i为从节点:节点i广播相同的消息并与大部分节点保持一致;
21.宕机状态是指在一轮共识中,若节点i为主节点:节点i不生成新区块;若节点i为从节点:节点i由于崩溃无法广播消息;
22.作恶状态是指在一轮共识中,若节点i为主节点:节点i在这轮共识中生成一个无效的区块;若节点i为从节点:节点i广播的信息互不相同,或者节点i广播的信息与大部分节点不同;
23.节点i在第t轮的共识行为信任计算如下:
24.若节点i为主节点:
[0025][0026]
若节点i为从节点:
[0027][0028]
其中x
p
与xb分别代表主节点与从节点信任值下降的速度,0《x
p
《xb《1;y
p
与yb分别代表主节点和从节点信任值上升的速度,0《yb《y
p
《0.03。
[0029]
所述步骤(6),自适应主节点选取的具体实现过程如下:
[0030]
采用自适应主节点选取机制进行主节点的选取,以保证在共识过程中表现良好的节点有更高的概率被选举为主节点,从而减少作恶节点成为主节点时区块链容易遭受攻击的情况发生。通过下面的公式计算良性节点i在第t轮共识被选为主节点的概率:
[0031][0032]
其中n为共识节点的数量,α》1为概率因数,由下面的公式计算:
[0033][0034]
其中和分别为第t轮共识和第t-1轮共识节点的平均信用值。
[0035]
为了保证主节点选举过程的不可预测性,应该生成一个分布在区间[0,1]上的随机数rnum;通过sha256算法对最新区块的块头进行哈希处理来生成
[0036]
若节点i被选为新一轮共识的主节点,需要满足以下条件:
[0037]
本发明的有益效果是,在物联网数据共享等对于共识算法的高效性与拜占庭容错性有着双重要求的场景下,本发明能够让共识算法在raft与pbft算法之间安全高效的切换,保证系统的稳定性同时,能够兼顾算法的高效性与拜占庭容错性。除此之外,本发明设计了信用评估模型与自适应主节点选取机制,通过对节点进行信用值评估,保证了在算法切换的过程中,表现良好的节点由更大的概率成为主节点,降低区块链遭受攻击的可能性。
附图说明
[0038]
图1为本发明整体流程图。
具体实施方式
[0039]
以下结合附图和技术方案,进一步说明本发明的具体实施方式。
[0040]
本发明的具体实施流程图如图1所示。
[0041]
(1)raft共识阶段:客户端向区块链系统发起交易请求《request,tx,σc》给主节
点,此时区块链系统中运行raft共识算法,其中tx为客户端请求执行的交易,σc为客户端签名。
[0042]
主节点收到交易请求后,首先发送增加新日志条目的消息《appendentriesrpc,term,leaderid,previndex,preterm,entris[],commit》到从节点,其中leaderid表示leader的id;previndex表示节点中最新一条日志的索引,preterm表示节点中最新一条日志的任期;entris[]表示日志条目,commit表示leader中最新提交的日志,每个从节点在接收到消息,复制成功后将反馈复制成功的消息给主节点。
[0043]
从节点在接收到消息后,复制成功后会反馈复制成功的消息《success,index,followerid,uniquenum》给主节点,其中followerid表示反馈消息的发送者;uniquenum表示唯一性字段;leader收集反馈消息并统计,当有过半的从节点成功复制日志条目,即共识成功。
[0044]
主节点收集反馈消息并统计,当收到超过半数从节点成功复制日志条目的反馈信息,即共识成功,此时区块链系统中继续运行raft共识算法;若反馈消息未达到半数,则进入一致性检查阶段,
[0045]
(2)一致性检查阶段:进入一致性检查阶段,所有节点互相发送验证消息检验每个节点的最新日志是否相同,若一致,继续运行raft共识算法;若不一致,则主节点向所有节点发送共识切换通知,区块链系统进入基于信任模型的自适应共识切换阶段,区块链系统将由raft共识算法切换为pbft共识算法。
[0046]
(3)共识切换阶段(从raft到pbft):首先系统会为所有节点初始化一个信用值,用来判断节点的在共识中的状态和信用度。在初始化时,若检测模块检测到节点在raft共识中发送错误或不一致的消息时,会重置该节点。由于该节点曾经是恶意节点,因此继续进行恶意行为的可能性仍然存在。因此该节点的信用值初始化为0.2。其他节点的信用值初始化为0.5。将作恶节点和其他个节点放到低信任值组,所有节点相互发送消息以确认转换为pbft。
[0047]
节点按照信任值高低分别归入高信任值组与低信任值组后,pbft共识算法只在高信任值组中的节点间运行;低信任值组的节点只发送数据,不参与共识。。直到节点的信用值超过阈值,共识机制才会转换为raft。
[0048]
(4)pbft共识阶段:高信任组中节点互相发送“主节点选举”信息,进入主节点选举阶段,此时的主节点选举方法舍弃了传统pbft中用视图转换更换主节点的方法,采取更加安全的自适应主节点选取方法对主节点进行选取。
[0049]
在选出主节点后,高信任值组中其余节点则为从节点。pbft共识在高信任值组中开始运行。所有节点互相发送验证消息请求达成共识;在所有节点进行一轮完整的pbft共识后,区块链系统根据信任模型将所有节点的信用值更新,并重新分类。随后在新的高信任组中重新选择主节点,保证在共识中表现良好的节点可以更换为主节点进行共识;
[0050]
(5)共识切换状态(从pbft到raft):经过多轮pbft共识后,作恶节点或者表现差的节点已在区块链系统中非主要节点参与共识或被剔出,此时由pbft共识中的主节点触发共识切换回raft共识。自适应主节点选取算法保证了在pbft共识中主节点大概率为信用值高,即表现良好的节点,所以在切换回raft共识算法后,主节点直接可作为raft共识算法中
的主节点,其余节点为从节点,继续运行raft共识算法。
技术特征:1.一个基于信任模型的自适应切换高效容错共识方法,其特征在于,包括以下步骤:步骤(1)客户端向区块链系统发起交易请求<request,tx,σ
c
>给主节点,此时区块链系统中运行raft共识算法,其中tx为客户端请求执行的交易,σ
c
为客户端签名;步骤(2)主节点收到交易请求后,首先发送增加新日志条目的消息到所有从节点,每个从节点在接收到消息,复制成功后将反馈复制成功的消息给主节点;步骤(3)主节点收集反馈消息并统计,当收到超过半数从节点成功复制日志条目的反馈信息,即共识成功,此时区块链系统中继续运行raft共识算法;若反馈消息未达到半数,则进入一致性检查阶段;步骤(4)进入一致性检查阶段,所有节点互相发送验证消息检验每个节点的最新日志是否相同,若一致,继续运行raft共识算法;若不一致,则主节点向所有节点发送共识切换通知,区块链系统进入基于信任模型的自适应共识切换阶段,区块链系统将由raft共识算法切换为pbft共识算法;步骤(5)进入基于信任模型的自适应共识切换阶段,系统根据信任模型将所有节点进行分类:节点按照信任值高低分别归入高信任值组与低信任值组,pbft共识算法只在高信任值组中的节点间运行;低信任值组的节点只发送数据,不参与共识;步骤(6)节点分组完成后,高信任组中节点互相发送“主节点选举”信息,进入主节点选举阶段,采取自适应主节点选取方法对主节点进行选取;步骤(7)在选出主节点后,高信任值组中其余节点则为从节点;至此,区块链系统中的共识算法由raft共识算法切换为pbft共识算法;随后所有节点互相发送验证消息请求达成共识;在所有节点进行一轮完整的pbft共识后,区块链系统根据信任模型将所有节点的信用值更新,并重新分类;随后在新的高信任组中执行步骤(6)以重新选择主节点,保证在共识中表现良好的节点可以更换为主节点进行共识;步骤(8)经过多轮pbft共识后,作恶节点或者表现差的节点已在区块链系统中非主要节点参与共识或被剔出,此时由pbft共识中的主节点触发共识切换回raft共识;自适应主节点选取算法保证在pbft共识中主节点大概率为信用值高,即表现良好的节点,所以在切换回raft共识算法后,主节点直接可作为raft共识算法中的主节点,其余节点为从节点,继续运行raft共识算法。2.根据权利要求1所述的一个基于信任模型的自适应切换高效容错共识方法,其特征在于,所述步骤(5),具体实现过程如下:(1)信任模型:共识行为信任t
cons
:根据节点在共识过程中每一轮的行为和表现,在每一轮结束时对节点进行信任评估,将节点分为三种状态:良性状态、宕机状态以及作恶状态;良性状态是指在一轮共识中,若节点i为主节点:节点i产生有效的区块,并能够正确的达成一致;若节点i为从节点:节点i广播相同的消息并与大部分节点保持一致;宕机状态是指在一轮共识中,若节点i为主节点:节点i不生成新区块;若节点i为从节点:节点i由于崩溃无法广播消息;作恶状态是指在一轮共识中,若节点i为主节点:节点i在这轮共识中生成一个无效的区块;若节点i为从节点:节点i广播的信息互不相同,或者节点i广播的信息与大部分节点不同;
节点i在第t轮的共识行为信任计算如下:若节点i为主节点:若节点i为从节点:其中x
p
与x
b
分别代表主节点与从节点信任值下降的速度,0<x
p
<x
b
<1;y
p
与y
b
分别代表主节点和从节点信任值上升的速度,0<y
b
<y
p
<0.03。3.根据权利要求1或2所述的一个基于信任模型的自适应切换高效容错共识方法,其特征在于,所述步骤(6),自适应主节点选取的具体实现过程如下:通过下面的公式计算良性节点i在第t轮共识被选为主节点的概率:其中n为共识节点的数量,α>1为概率因数,由下面的公式计算:其中和分别为第t轮共识和第t-1轮共识节点的平均信用值;为保证主节点选举过程的不可预测性,生成一个分布在区间[0,1]上的随机数rnum;通过sha256算法对最新区块的块头进行哈希处理来生成过sha256算法对最新区块的块头进行哈希处理来生成若节点i被选为新一轮共识的主节点,需要满足以下条件:
技术总结本发明涉及区块链技术领域,尤其涉及一种基于信任模型的自适应切换高效容错共识方法。该方法首先将Raft与PBFT共识算法进行优化,随后提出了一种共识切换机制,以保证兼顾共识算法的拜占庭容错性与高效性。最后针对共识切换机制提出了信任模型与自适应主节点选取方法,以保证在共识切换过程中区块链系统的稳定性与安全性。与安全性。与安全性。
技术研发人员:朱宝峰 王祎 李凤岐
受保护的技术使用者:大连理工大学
技术研发日:2022.06.10
技术公布日:2022/11/1