一种基于区块链的节点信誉共识方法技术

技术编号:26606659 阅读:38 留言:0更新日期:2020-12-04 21:31
本发明专利技术涉及共识算法技术领域,提供一种基于区块链的节点信誉共识方法,包括:步骤100,获取行为记录表;步骤200,对行为记录表中节点进行信誉值评估;步骤300,根据节点的信誉值变化计算节点的信誉增长率;步骤400,根据节点的信誉值和信誉增长率进行权限管理,具有选举权限的节点可参与共识节点集的随机动态选举,并根据主节点选举算法选举出共识主节点;步骤500,共识主节点接收客户端发送的请求,之后将请求和签名一起广播给共识节点,开始共识过程;步骤600,要退出的节点需向共识主节点发送退出请求;或者,待加入的节点也需向所有共识节点以及主节点都发送加入请求消息。本发明专利技术能够对全网节点的可信性进行检测和评估。

【技术实现步骤摘要】
一种基于区块链的节点信誉共识方法
本专利技术涉及共识算法
,尤其涉及一种基于区块链的节点信誉共识方法。
技术介绍
区块链是一个去中心化的分布式账本技术。共识算法是区块链非常重要的一部分,也是其去中心化和信任机制建立的基础。典型的共识算法可划分为:基于证明的共识和基于投票的共识。基于证明的共识算法有PoW(ProofofWork,工作量证明)、PoS(ProofofStake,股权证明)、DPoS(DelegatedProofofStake,授权股权证明)等。这类算法要求加入网络的节点能证明自己比其他节点更有资格添加一个区块到链上。基于投票的共识算法有PBFT(PracticalByzantineFaultTolerance,实用拜占庭算法)、DBFT(delegatedByzantinefaulttolerance,授权拜占庭容错算法)以及Tendermint等。这类算法要求网络中的节点交换对当前新区块或者交易的验证结果,然后作出最终的决定。一般来说,联盟区块链系统节点间以PBFT算法作为共识算法,能很好地避免PoW等基于证明的共识算法存在的能源浪费问题,且能允许系统在少于个节点因断电或者被攻击而无法良好工作等情况下继续良好运行,具有很好的工业应用性。然而,PBFT共识机制存在的问题有:1)节点可靠性:如何对全网节点的可靠性进行检测和评估,确保选出可信的共识节点,以保障共识网络拓扑的稳定。2)安全性:如果共识节点的行为异常,共识协议能否采取相应的惩罚机制,以减轻恶意节点带来的后续影响。3)动态性:PBFT通常是在联盟链系统中运行的算法,并未考虑实际系统中可能出现的节点数量变化的情况,因此不能实现节点的动态加入和退出;4)可扩展性:PBFT共识过程中存在节点通信复杂度高的问题,当参与共识的节点增多时,共识交互消息会成几何倍数增长,从而影响系统性能。
技术实现思路
本专利技术主要解决现有技术的实用拜占庭算法共识机制的上述技术问题,提出一种基于区块链的节点信誉共识方法,以对全网节点的可信性进行检测和评估,确保选出可信的共识节点,保障共识网络拓扑的稳定。本专利技术提供了一种基于区块链的节点信誉共识方法,包括以下过程:步骤100,获取行为记录表,其中,所述行为记录表记录全网节点共同维护的节点信誉、信誉增长率及信誉参考因素;步骤200,对行为记录表中节点进行信誉值评估,得到每个节点的信誉值;步骤300,根据节点的信誉值变化计算节点的信誉增长率;步骤400,根据节点的信誉值和信誉增长率进行权限管理,具有选举权限的节点可参与共识节点集的随机动态选举,并根据主节点选举算法选举出共识主节点;步骤500,共识主节点接收客户端发送的请求,之后将请求和签名一起广播给共识节点,开始共识过程;步骤600,要退出的节点需向共识主节点发送退出请求,进行节点动态退出;或者,待加入的节点也需向所有共识节点以及主节点都发送加入请求消息,进行节点动态加入。进一步的,步骤200,包括步骤201至步骤203:步骤201,由系统初创节点进行共识,之后共识主节点发起信誉值更新请求,共识节点收到请求后,计算全网节点新的信誉值;步骤202,共识节点对信誉值进行共识;步骤203,主节点将将本轮信誉值发生变化的节点信誉写入行为记录表中并在全网广播。进一步的,在步骤201中,通过以下公式计算节点i的信誉值:其中,Ri表示节点i的信誉值,δi表示保证金比率,τi表示未完成率,ψi表示作恶率,表示活动率,ρi表示事务量级因子;各因素所占权重为:进一步的,步骤300,包括步骤301至步骤303:步骤301,由系统初创节点进行共识,之后共识主节点发起信誉增长率更新请求,共识节点收到请求后,计算全网节点新的信誉增长率;步骤302,对信誉增长率进行REPBFT共识;步骤303,主节点将本轮信誉增长率发生变化的节点信誉增长率写入行为记录表中并广播到网络。进一步的,在步骤301中,通过以下公式计算全网节点新的信誉增长率:其中,Y(t)表示信誉增长率,Ri,n表示当前轮次节点i的信誉值,Ri,t表示前t轮节点i的信誉值。进一步的,所述步骤400包括步骤401至步骤403:步骤401,根据节点的信誉值和信誉增长率对节点的权限进行分配,确定参与共识节点集选举的权限;步骤402,使用可验证随机函数VRF在有参与共识节点集选举权限的节点中进行随机抽样,选取出共识节点集,其中,共识节点集中按信誉值排名分为共识节点和候选共识节点;步骤403,选取出共识节点集后,初始化当前视图,并选举出当前视图的共识主节点。进一步的,所述步骤500包括步骤501至步骤505:步骤501,当系统中交易的发起者发起交易时,用私钥签署交易,然后广播到整个网络;步骤502,在节点收到交易后,如果它不是共识节点,则可以将其转发;如果是共识节点,则需要验证交易的合法性;如果合法,开始准备构建当前区块b;如果不合法,则直接丢弃且当主节点发送该交易信息时,可快速发起视图更换协议,而无需检查消息内容;步骤503,在Δt时间后,主节点向其他共识节点广播共识准备消息;步骤504,共识节点接收到主节点发送的准备消息后,对消息进行检验以判断主节点是否作恶或发生故障,若是,则发起视图转换请求并且将该节点标识记录到节点行为表中;否则,共识节点广播确认消息给主节点;步骤505,当全部共识节点收到2f+1个(f为系统允许的最大失效节点数量)相同的确认消息时,就达成共识,并且将执行客户端发送的请求并回复客户端且发布区块,视图编号v+1;否则执行视图切换过程并且将该节点标识记录到节点行为表中。进一步的,所述步骤600中节点动态退出,包括以下过程:(1)要退出的节点需向共识主节点发送退出请求;(2)如果当该节点退出后,共识节点集的数量少于3f+1,则进入节点动态加入阶段;否则,主节点和要退出的节点都向其他共识节点发送带有双方签名的退出确认消息。进一步的,所述步骤600中节点动态加入,包括以下过程:(1)主节点向候选共识节点发送共识节点更换消息;候选共识节点根据信誉值排名,排名最高的为新的共识节点;(2)新的共识节点向主节点和共识节点发送加入请求消息;(3)主节点和共识节点对此消息进行验证、确认后,发送确认节点加入消息给共识节点和新的共识节点。本专利技术提供的一种基于区块链的节点信誉共识方法,与现有技术相比具有以下优点:1、本专利技术对全网节点的可信性进行检测和评估,确保选出可信的共识节点,以保障共识网络拓扑的稳定;2、对行为异常的共识节点采取相应的信誉值降低和保证金惩罚机制,确保了节点因惩罚代价而不会作恶;3、实现了节点的动态加入和退出,提高了系统的可扩展性;4、本专利技术优化了PBFT的共识过程,节省了节点共识过程中产生的通信开销。...

【技术保护点】
1.一种基于区块链的节点信誉共识方法,其特征在于,包括以下过程:/n步骤100,获取行为记录表,其中,所述行为记录表记录全网节点共同维护的节点信誉、信誉增长率及信誉参考因素;/n步骤200,对行为记录表中节点进行信誉值评估,得到每个节点的信誉值;/n步骤300,根据节点的信誉值变化计算节点的信誉增长率;/n步骤400,根据节点的信誉值和信誉增长率进行权限管理,具有选举权限的节点可参与共识节点集的随机动态选举,并根据主节点选举算法选举出共识主节点;/n步骤500,共识主节点接收客户端发送的请求,之后将请求和签名一起广播给共识节点,开始共识过程;/n步骤600,要退出的节点需向共识主节点发送退出请求,进行节点动态退出;或者,待加入的节点也需向所有共识节点以及主节点都发送加入请求消息,进行节点动态加入。/n

【技术特征摘要】
1.一种基于区块链的节点信誉共识方法,其特征在于,包括以下过程:
步骤100,获取行为记录表,其中,所述行为记录表记录全网节点共同维护的节点信誉、信誉增长率及信誉参考因素;
步骤200,对行为记录表中节点进行信誉值评估,得到每个节点的信誉值;
步骤300,根据节点的信誉值变化计算节点的信誉增长率;
步骤400,根据节点的信誉值和信誉增长率进行权限管理,具有选举权限的节点可参与共识节点集的随机动态选举,并根据主节点选举算法选举出共识主节点;
步骤500,共识主节点接收客户端发送的请求,之后将请求和签名一起广播给共识节点,开始共识过程;
步骤600,要退出的节点需向共识主节点发送退出请求,进行节点动态退出;或者,待加入的节点也需向所有共识节点以及主节点都发送加入请求消息,进行节点动态加入。


2.根据权利要求1所述的基于区块链的节点信誉共识方法,其特征在于,步骤200,包括步骤201至步骤203:
步骤201,由系统初创节点进行共识,之后共识主节点发起信誉值更新请求,共识节点收到请求后,计算全网节点新的信誉值;
步骤202,共识节点对信誉值进行共识;
步骤203,主节点将本轮信誉值发生变化的节点信誉写入行为记录表中并在全网广播。


3.根据权利要求2所述的基于区块链的节点信誉共识方法,其特征在于,在步骤201中,通过以下公式计算节点i的信誉值:



其中,Ri表示节点i的信誉值,δi表示保证金比率,τi表示未完成率,ψi表示作恶率,表示活动率,ρi表示事务量级因子;各因素所占权重为:


4.根据权利要求1所述的基于区块链的节点信誉共识方法,其特征在于,步骤300,包括步骤301至步骤303:
步骤301,由系统初创节点进行共识,之后共识主节点发起信誉增长率更新请求,共识节点收到请求后,计算全网节点新的信誉增长率;
步骤302,对信誉增长率进行REPBFT共识;
步骤303,主节点将本轮信誉增长率发生变化的节点信誉增长率写入行为记录表中并广播到网络。


5.根据权利要求4所述的基于区块链的节点信誉共识方法,其特征在于,在步骤301中,通过以下公式计算全网节点新的信誉增长率:



其中,Y(t)表示信誉增长率,Ri,n表示当前轮次节点i的信誉值,Ri,t表示前t轮节点i的信誉值。


6.根据权利要求1所述的基于区...

【专利技术属性】
技术研发人员:原旭罗方于硕陈志奎孙野陈怡
申请(专利权)人:大连理工大学
类型:发明
国别省市:辽宁;21

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

1