CN114338053A - 一种动态的基于信誉的区块链共识方法和系统 - Google Patents

一种动态的基于信誉的区块链共识方法和系统 Download PDF

Info

Publication number
CN114338053A
CN114338053A CN202210257342.6A CN202210257342A CN114338053A CN 114338053 A CN114338053 A CN 114338053A CN 202210257342 A CN202210257342 A CN 202210257342A CN 114338053 A CN114338053 A CN 114338053A
Authority
CN
China
Prior art keywords
consensus
node
verification
nodes
monitoring
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.)
Granted
Application number
CN202210257342.6A
Other languages
English (en)
Other versions
CN114338053B (zh
Inventor
秦智
邱晓芳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu University of Information Technology
Original Assignee
Chengdu University of Information Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu University of Information Technology filed Critical Chengdu University of Information Technology
Priority to CN202210257342.6A priority Critical patent/CN114338053B/zh
Publication of CN114338053A publication Critical patent/CN114338053A/zh
Application granted granted Critical
Publication of CN114338053B publication Critical patent/CN114338053B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种动态的基于信誉的区块链共识方法和系统,包括区块创建模块,用于使验证节点在交易时间内验证并打包生成一个新区块,并将新区块广播至监控群组;以及判别验证节点在创建新区块时是否在交易时间内完成;共识评估模块,用于使验证节点通过节点行为判别算法评估验证节点是否正常的完成了共识流程,以及利用信誉评价算法对分布式网络中的所有节点进行信誉值动态更新。本发明通过节点行为判别算法来评估验证节点是否正常的完成了共识流程,以及引入信誉评价算法给每个节点赋予和更新信誉值,在每轮共识周期结束前动态更新验证节点及监控节点,从而解决PoA共识机制中验证节点权利过大导致的中心化问题。

Description

一种动态的基于信誉的区块链共识方法和系统
技术领域
本发明涉及区块链技术领域,特别涉及一种动态的基于信誉的区块链共识方法和系统。
背景技术
区块链基于去中心化、匿名性、不可篡改性等特征,区块链今年来也逐渐广泛运用于数字货币、金融、物联网、医疗等众多领域。但现有的区块链项目的交易速度不如传统的交易速度。共识机制作为影响区块链技术的重要因素之一,是将多个不可靠的单独节点组建成一个可靠的分布式系统的关键,主要解决如何实现区块链在分布式场景下的一致性。共识机制在维护区块链的安全和效率方面起着至关重要的作用,使用正确的共识机制可以提升系统性能、促进区块链技术得到广泛应用。
PoA是一种新的拜占庭类共识算法,它将区块的创建限制在一组固定的节点上,PoA的核心是指定一个或者一组固定的验证节点,由验证节点对网络中的交易进行验证并打包,其他节点直接从验证节点这里同步数据。与PoW算法不同,PoA不是资源密集型算法,它是轻量级的,具有更高的吞吐量。PoA共识机制不需要竞争记账权,区块链的安全性是由验证节点来保证的,因此PoA具有高度的可扩展性。但PoA共识机制中由于验证节点固定在一个或一组节点上,权限过高,如果验证节点自己作恶,自己发动对网络的攻击或者篡改账本,就很容易对整个区块链网络造成伤害。综上所述,PoA共识机制虽然高效,但存在去中心化问题。
发明内容
本发明的目的在于针对PoA共识机制的去中心化问题,提供一种动态的基于信誉的区块链共识方法和系统,通过节点行为判别算法来评估验证节点是否正常的完成了共识流程,以及引入信誉评价算法给每个节点赋予和更新信誉值,在每轮共识周期结束前动态更新验证节点及监控节点,从而解决PoA共识机制中验证节点权利过大导致的中心化问题。
为了实现上述发明目的,本发明实施例提供了以下技术方案:
一种动态的基于信誉的区块链共识方法,包括以下步骤:
步骤S1,从分布式网络中生成监控群组,所述监控群组中包括多个监控节点;生成监控群组后,从分布式网络中随机选取n%的节点作为验证节点,生成验证群组;
步骤S2,设定交易时间,验证群组中最先被选择的验证节点在交易时间内验证并打包生成一个新区块,并将创建的新区块广播至监控群组;若该验证节点在交易时间内未完成创建新区块,则按照验证群组中验证节点的生成顺序由下一个验证节点创建新区块,从而进入下一个共识回合;
步骤S3,根据创建的新区块,所有监控节点通过节点行为判别算法分别评估验证节点是否正常的完成了共识流程;如果验证节点正常完成则得到代币奖励,否则该新区块无效,所有监控节点评估完后进入下一个共识回合;
步骤S4,重复步骤S2、步骤S3,直到验证群组中所有的验证节点都完成共识流程;利用信誉评价算法对分布式网络中所有节点进行信誉值动态更新,从而结束本次共识周期;
步骤S5,重复步骤S1,得到下一个共识周期的监控节点,并根据步骤S5得到的信誉值,所有节点按照信誉值排序选择前n%的节点作为验证节点,进入下一个共识周期。
所述从分布式网络中生成监控群组的步骤,包括:各个节点加入分布式网络时,获得信誉初始值;信誉初始值高于阈值的节点,申请成为监控节点,从而生成监控群组。
设定交易时间△T;
验证节点检索待确认交易池,选择将要包含进区块的交易,对所选择的交易进行验证并打包;根据区块的容量限制,选择交易的数量由最高值约束;需要验证的交易信息包括交易是否包含有效的输入地址和输出地址、交易的输入总额和输出总额是否合理、是否有重复交易;
验证节点完成交易打包后,构造区块头;所述区块头包括前一个区块的哈希值、该验证节点的地址、当前验证群组的集合、MerkleRoot哈希、时间戳、本区块的哈希值;
生成新区块,验证节点将该新区块广播至监控群组。
所述根据创建的新区块,所有监控节点通过节点行为判别算法分别评估验证节点是否正常的完成了共识流程的步骤,包括:
每个监控节点接收新区块后,核查新区块内的交易及哈希值;
若该监控节点核查无误则标记新区块为legal并签名,若该监控节点核查有误则标记新区块为illegal并签名;
如果超过2/3的监控节点标记新区块为legal并签名,那么该新区块被确认,且生成该新区块的验证节点被认为完成一次good共识行为并获得代币奖励;做出legal标记的所有监控节点被认为完成了一次good共识行为,做出illegal标记的所有监控节点被认为完成了一次bad共识行为;
如果少于2/3的监控节点标记区块为legal并签名,那么认为该新区块非法,且生成该新区块的验证节点被认为完成一次bad共识行为;做出illegal标记的所有监控节点被认为完成了一次good共识行为,做出legal标记的所有监控节点被认为完成了一次bad共识行为。
当新区块内的交易是非法或区块头哈希值不正确时,监控节点核查该新区块有误。
所述利用信誉评价算法对分布式网络中所有节点进行信誉值动态更新的步骤,包括:
节点u的历史信誉评价值
Figure 800722DEST_PATH_IMAGE001
为:
Figure 573506DEST_PATH_IMAGE002
式(1)中,t表示当前共识周期,k表示当前共识周期之前的第k个共识周期;
Figure 114209DEST_PATH_IMAGE003
表示节点u在第k个共识周期的总信誉值;
Figure 288839DEST_PATH_IMAGE004
为时间衰减因子,表示第k个共识周期中获得的信誉值对历史信誉评价的影响程度;
节点u的共识信誉评价值
Figure 624005DEST_PATH_IMAGE005
为:
Figure 87347DEST_PATH_IMAGE006
式(2)中
Figure 962899DEST_PATH_IMAGE007
表示节点u在当前共识周期中被定义为good共识行为的次数,
Figure 460877DEST_PATH_IMAGE008
表示节点u在当前共识周期中被定义为bad共识行为的次数,
Figure 701365DEST_PATH_IMAGE009
表示bad共识行为的权重,
Figure 714321DEST_PATH_IMAGE010
表示节点u在当前共识周期中共识行为的总次数;
节点u的交易信誉评价值
Figure 331247DEST_PATH_IMAGE011
为:
Figure 480468DEST_PATH_IMAGE012
在当前共识周期中,式(3)中
Figure 423017DEST_PATH_IMAGE013
表示节点u的所有交易总数,
Figure 595372DEST_PATH_IMAGE014
表示其它节点对节点u第i笔交易的反馈评价,
Figure 824445DEST_PATH_IMAGE015
表示第i笔交易的交易对象,
Figure 31436DEST_PATH_IMAGE016
表示节点u的可信程度;
节点u在当前共识周期内的总信誉值
Figure 879306DEST_PATH_IMAGE017
为:
Figure 601275DEST_PATH_IMAGE018
(4)
在当前共识周期中,节点u的总信誉值
Figure 560003DEST_PATH_IMAGE017
由节点u的历史信誉评价值
Figure 683817DEST_PATH_IMAGE001
、共识信誉评价值
Figure 968168DEST_PATH_IMAGE005
、交易信誉评价值
Figure 115115DEST_PATH_IMAGE011
组成;式(4)中
Figure 674273DEST_PATH_IMAGE019
为历史信誉评价值
Figure 590276DEST_PATH_IMAGE001
的权重,
Figure 842266DEST_PATH_IMAGE020
为共识信誉评价值
Figure 476510DEST_PATH_IMAGE005
的权重,
Figure 42620DEST_PATH_IMAGE021
为交易信誉评价值
Figure 875447DEST_PATH_IMAGE011
的权重。
一种动态的基于信誉的区块链共识系统,包括:
群组生成模块,用于从分布式网络中生成监控群组和验证群组;
区块创建模块,用于使验证群组中的验证节点在交易时间内验证并打包生成一个新区块,并将创建的新区块广播至监控群组;以及判别验证节点在创建新区块时是否在交易时间内完成;
共识评估模块,用于使验证节点通过节点行为判别算法评估验证节点是否正常的完成了共识流程,以及利用信誉评价算法对分布式网络中的所有节点进行信誉值动态更新。
所述群组生成模块包括监控群组生成单元、验证群组生成单元,其中,
所述监控群组生成单元用于根据各个节点加入从分布式网络时获得的信誉初始值,将信誉初始值高于阈值的节点申请成为监控节点,从而生成监控群组;
所述验证群组生成单元用于等监控群组生成后,从分布式网络中随机选取n%的节点作为验证节点,从而生成验证群组。
所述区块创建模块包括区块创建单元、区块验证单元,其中,
所述区块创建单元用于设定交易时间,并使验证群组中最先被选择的验证节点在交易时间内验证并打包生成一个新区块,并将创建的新区块广播至监控群组;
所述区块验证单元用于判断验证节点是否在交易时间内完成创建新区块,若未完成则通知区块创建单元,按验证群组中验证节点的生成顺序使下一个验证节点创建新区块。
所述共识评估模块包括核查单元、信誉更新单元,其中,
所述核查单元用于使监控节点在接收新区块后核查新区块的交易和哈希值,并根据核查结果对验证节点和监控节点赋予共识行为次数,所述共识行为包括good共识行为、bad共识行为;
所述信誉更新单元用于利用信誉评价算法对分布式网络中所有节点进行信誉值动态更新。
与现有技术相比,本发明的有益效果:
首先本发明在共识周期开始前动态地选择验证节点和监控节点,验证节点通过抵押自己的信誉值来进行新区块打包,监控节点通过节点行为判别算法来评估验证节点是否正常的完成了共识流程;然后以节点的历史信誉为前提,依据节点参与现阶段共识流程的行为提出新的节点信誉评价算法,利用信誉评价算法动态地更新每个节点的信誉值,并更新验证节点与监控节点的选择;
此外本发明在不影响PoA共识效率的前提下,减小出错节点对共识流程的影响,提高了机制的容错性和安全性,解决了PoA共识机制的中心化问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍, 应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明方法流程图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性,或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
实施例1:
本发明通过下述技术方案实现,如图1所示,一种动态的基于信誉的区块链共识方法,包括以下步骤:
步骤S1,从分布式网络中生成监控群组和验证群组。
分布式网络中包括若干个节点,各个节点通过网络相互通信,各个节点加入分布式网络时,获得信誉初始值。设置一个阈值,信誉初始值高于阈值的节点则可以申请成为监控节点,从而生成监控群组。如果分布式网络中共有100个节点,信誉初始值高于阈值的节点有10个,那么生成的监控群组中则有10个监控节点。
在分布式网络中剩下的90个节点里随机选择n%的节点作为验证节点,从而生成验证群组。假设从分布式网络剩余的节点中随机选择10%的节点作为验证节点,生成验证群组,则验证群组中有9个验证节点。
先生成监控群组再从剩余的节点中选择验证节点,是为了防止验证节点可以贿赂其他节点成为监控节点去作恶。在第一次共识周期之前随机选择验证节点是因为共识流程还没有开始,所以进行的随机选择。
步骤S2,设定交易时间,验证群组中最先被选择的验证节点在交易时间内验证并打包生成一个新区块,并将创建的新区块广播至监控群组;若该验证节点在交易时间内未完成创建新区块,则按照验证群组中验证节点的生成顺序由下一个验证节点创建新区块,从而进入下一个共识回合。
设定交易时间为△T,验证节点检索待确认交易池,选择将要包含进区块的交易,对所选择的交易进行验证并打包。由于区块有容量限制,因此选择交易的数量由最高值约束。需要验证的交易信息包括交易是否包括但不限于有效的输入地址和输出地址、交易的输入总额和输出总额是否合理、是否有重复交易。
验证节点完成交易打包后,构造区块头;所述区块头包括六个部分:前一个区块的哈希值、该验证节点的地址、当前验证群组的集合、MerkleRoot哈希、时间戳、本区块的哈希值。从而生成新区块,验证节点将该新区块广播至监控群组。
假设为验证群组中的验证节点按照被选择的顺序进行编号,分别为验证节点1、验证节点2、验证节点3、验证节点4、验证节点5、验证节点6、验证节点7、验证节点8、验证节点9。设定交易时间为△T,最先被选择的验证节点1首先在交易时间△T内验证并打包一个新区块R1,并将该新区块R1广播至监控群组,使得监控群组中10个监控节点都接收到该新区块R1,然后进入步骤S3。
接着验证节点2在交易时间△T内验证并打包一个新区块R2,并将该新区块R2广播至监控群组,以此类推,直至10个验证节点都进行新区块的创建操作。
但是如果验证节点1在交易时间△T内未能完成创建新区块,则由验证节点2创建新区块R2,说明验证节点1的共识回合结束,进入了下一个共识回合,也就是进入了验证节点2的共识回合。由于一共有9个验证节点,则一个共识周期会进行9次共识回合。
步骤S3,根据创建的新区块,所有监控节点通过节点行为判别算法分别评估验证节点是否正常的完成了共识流程;如果验证节点正常完成则得到代币奖励,否则该新区块无效,所有监控节点评估完后进入下一个共识回合。
再假设为监控群组中的监控节点进行编号,编号的顺序可以是随机的,也可以是按照初始信誉值的大小顺序进行编号,分别为监控节点1、监控节点2、监控节点3、监控节点4、监控节点5、监控节点6、监控节点7、监控节点8、监控节点9、监控节点10。
当验证节点1在交易时间△T内验证并打包一个新区块R1,并将新区块R1广播至监控群组,使得监控群组中10个监控节点都接收到该新区块R1后,10个监控节点不分先后顺序对新区块R1内的交易和哈希值进行核查,如果只有1个监控节点核查的话,安全性很低。
若其中7个监控节点i(i=1,2,3,4,8,9,10)核查新区块R1无误,则这7个监控节点分别标记新区块R1为legal并各自签名,但其中3个监控节点j(j=5,6,7)核查新区块R1有误,即新区块R1的交易是非法的或区块头哈希值不正确,则这3个监控节点分别标记新区块R1为illegal并各自签名。
可以理解的,监控群组中的监控节点可以对新区块进行核查,也有可能个别监控节点不对新区块进行核查,也不会有签名,但如果监控节点不对新区块进行核查,则认为该监控节点失职。
如果超过2/3的监控节点标记新区块为legal并签名,那么该新区块被确认,且生成该新区块的验证节点被认为完成一次good共识行为并获得代币奖励;做出legal标记的所有监控节点被认为完成了一次good共识行为,做出illegal标记或者没有签名的所有监控节点被认为完成了一次bad共识行为。
从上述示例中可以看出,已经超过2/3的监控节点标记新区块R1为legal了,则新区块R1被确认。并且验证节点1被认为完成一次good共识行为并获得代币奖励。监控节点i(i=1,2,3,4,8,9,10)被认为完成了一次good共识行为,监控节点j(j=5,6,7)被认为完成了一次bad共识行为。
反之,如果少于2/3的监控节点标记区块为legal并签名,那么认为该新区块非法,且生成该新区块的验证节点被认为完成一次bad共识行为;做出illegal标记的所有监控节点被认为完成了一次good共识行为,做出legal标记或者没有签名的所有监控节点被认为完成了一次bad共识行为。
对验证节点1完成共识流程的评估后,则完成了本次共识回合,监控群组再对验证节点2创建的新区块R2进行共识流程的评估,从而进入下一个共识回合,以上就是节点行为判别算法。
步骤S4,重复步骤S2、步骤S3,直到验证群组中所有的验证节点都完成共识流程;利用信誉评价算法对分布式网络中所有节点进行信誉值动态更新,从而结束本次共识周期。
重复步骤S2、步骤S3,直到10个验证节点都完成共识流程,也就是完成了10次共识回合,利用信誉评价算法对分布式网络中所有节点进行信誉值动态更新,从而结束本次共识周期。
所述信誉评价算法为:
节点u的历史信誉评价值
Figure 236021DEST_PATH_IMAGE001
为:
Figure 623140DEST_PATH_IMAGE022
式(1)中,t表示当前共识周期,k表示当前共识周期之前的第k个共识周期;
Figure 524100DEST_PATH_IMAGE003
表示节点u在第k个共识周期的总信誉值;
Figure 414696DEST_PATH_IMAGE023
为时间衰减因子,表示第k个共识周期中获得的信誉值对历史信誉评价的影响程度;
节点u的共识信誉评价值
Figure 8488DEST_PATH_IMAGE005
为:
Figure 351745DEST_PATH_IMAGE024
式(2)中
Figure 525237DEST_PATH_IMAGE025
表示节点u在当前共识周期中被定义为good共识行为的次数,
Figure 332656DEST_PATH_IMAGE026
表示节点u在当前共识周期中被定义为bad共识行为的次数,
Figure 35033DEST_PATH_IMAGE009
表示bad共识行为的权重,
Figure 927903DEST_PATH_IMAGE027
表示节点u在当前共识周期中共识行为的总次数;
节点u的交易信誉评价值
Figure 373927DEST_PATH_IMAGE011
为:
Figure 239115DEST_PATH_IMAGE028
在当前共识周期中,式(3)中
Figure 174710DEST_PATH_IMAGE013
表示节点u的所有交易总数,
Figure 492559DEST_PATH_IMAGE014
表示其它节点对节点u第i笔交易的反馈评价,
Figure 539012DEST_PATH_IMAGE015
表示第i笔交易的交易对象,
Figure 524286DEST_PATH_IMAGE016
表示节点u的可信程度;
节点u在当前共识周期内的总信誉值
Figure 568465DEST_PATH_IMAGE017
为:
Figure 435927DEST_PATH_IMAGE018
(4)
在当前共识周期中,节点u的总信誉值
Figure 489334DEST_PATH_IMAGE017
由节点u的历史信誉评价值
Figure 63535DEST_PATH_IMAGE001
、共识信誉评价值
Figure 340932DEST_PATH_IMAGE005
、交易信誉评价值
Figure 633373DEST_PATH_IMAGE011
组成;式(4)中
Figure 224892DEST_PATH_IMAGE019
为历史信誉评价值
Figure 715916DEST_PATH_IMAGE001
的权重,
Figure 101898DEST_PATH_IMAGE020
为共识信誉评价值
Figure 147214DEST_PATH_IMAGE005
的权重,
Figure 339161DEST_PATH_IMAGE021
为交易信誉评价值
Figure 622375DEST_PATH_IMAGE011
的权重。
步骤S5,重复步骤S1,得到下一个共识周期的监控节点,并根据步骤S5得到的信誉值,所有节点按照信誉值排序选择前n%的节点作为验证节点,进入下一个共识周期。
可见,在每个共识周期结束时,都动态更新了分布式网络中所有节点的信誉值,也只有第1个共识周期开始前,是在剩余的90个节点中随机选择的10%个节点作为验证节点,从第2个共识周期开始,就是按照信誉值排序选择前10%个节点作为验证节点了。
现有的基于信誉的共识机制都是一群节点先生成区块,然后根据信誉评价来竞争区块上链资格。而本方案是先通过信誉值确定了验证节点,验证节点直接生成区块,由监控群组的行为判定来确定区块是否上链。
本方案还提出一种动态的基于信誉的区块链共识系统,以实现上述的方案,所述系统包括群组生成模块、区块创建模块、共识评估模块,其中:
群组生成模块,用于从分布式网络中生成监控群组和验证群组;
区块创建模块,用于使验证群组中的验证节点在交易时间内验证并打包生成一个新区块,并将创建的新区块广播至监控群组;以及判别验证节点在创建新区块时是否在交易时间内完成;
共识评估模块,用于使验证节点通过节点行为判别算法评估验证节点是否正常的完成了共识流程,以及利用信誉评价算法对分布式网络中的所有节点进行信誉值动态更新。
更进一步地,所述群组生成模块包括监控群组生成单元、验证群组生成单元,其中,
所述监控群组生成单元用于根据各个节点加入从分布式网络时获得的信誉初始值,将信誉初始值高于阈值的节点申请成为监控节点,从而生成监控群组;
所述验证群组生成单元用于等监控群组生成后,从分布式网络中随机选取n%的节点作为验证节点,从而生成验证群组。
更进一步地,所述区块创建模块包括区块创建单元、区块验证单元,其中,
所述区块创建单元用于设定交易时间,并使验证群组中最先被选择的验证节点在交易时间内验证并打包生成一个新区块,并将创建的新区块广播至监控群组;
所述区块验证单元用于判断验证节点是否在交易时间内完成创建新区块,若未完成则通知区块创建单元,按验证群组中验证节点的生成顺序使下一个验证节点创建新区块。
更进一步地,所述共识评估模块包括核查单元、信誉更新单元,其中,
所述核查单元用于使监控节点在接收新区块后核查新区块的交易和哈希值,并根据核查结果对验证节点和监控节点赋予共识行为次数,所述共识行为包括good共识行为、bad共识行为;
所述信誉更新单元用于利用信誉评价算法对分布式网络中所有节点进行信誉值动态更新。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种动态的基于信誉的区块链共识方法,其特征在于:包括以下步骤:
步骤S1,从分布式网络中生成监控群组,所述监控群组中包括多个监控节点;生成监控群组后,从分布式网络中随机选取n%的节点作为验证节点,生成验证群组;
步骤S2,设定交易时间,验证群组中最先被选择的验证节点在交易时间内验证并打包生成一个新区块,并将创建的新区块广播至监控群组;若该验证节点在交易时间内未完成创建新区块,则按照验证群组中验证节点的生成顺序由下一个验证节点创建新区块,从而进入下一个共识回合;
步骤S3,根据创建的新区块,所有监控节点通过节点行为判别算法分别评估验证节点是否正常的完成了共识流程;如果验证节点正常完成则得到代币奖励,否则该新区块无效,所有监控节点评估完后进入下一个共识回合;
步骤S4,重复步骤S2、步骤S3,直到验证群组中所有的验证节点都完成共识流程;利用信誉评价算法对分布式网络中所有节点进行信誉值动态更新,从而结束本次共识周期;
步骤S5,重复步骤S1,得到下一个共识周期的监控节点,并根据步骤S5得到的信誉值,所有节点按照信誉值排序选择前n%的节点作为验证节点,进入下一个共识周期。
2.根据权利要求1所述的一种动态的基于信誉的区块链共识方法,其特征在于:所述从分布式网络中生成监控群组的步骤,包括:各个节点加入分布式网络时,获得信誉初始值;信誉初始值高于阈值的节点,申请成为监控节点,从而生成监控群组。
3.根据权利要求1所述的一种动态的基于信誉的区块链共识方法,其特征在于:所述设定交易时间,验证群组中最先被选择的验证节点在交易时间内验证并打包生成一个新区块,并将创建的新区块广播至监控群组的步骤,包括:
设定交易时间△T;
验证节点检索待确认交易池,选择将要包含进区块的交易,对所选择的交易进行验证并打包;根据区块的容量限制,选择交易的数量由最高值约束;需要验证的交易信息包括交易是否包含有效的输入地址和输出地址、交易的输入总额和输出总额是否合理、是否有重复交易;
验证节点完成交易打包后,构造区块头;所述区块头包括前一个区块的哈希值、该验证节点的地址、当前验证群组的集合、MerkleRoot哈希、时间戳、本区块的哈希值;
生成新区块,验证节点将该新区块广播至监控群组。
4.根据权利要求1所述的一种动态的基于信誉的区块链共识方法,其特征在于:所述根据创建的新区块,所有监控节点通过节点行为判别算法分别评估验证节点是否正常的完成了共识流程的步骤,包括:
每个监控节点接收新区块后,核查新区块内的交易及哈希值;
若该监控节点核查无误则标记新区块为legal并签名,若该监控节点核查有误则标记新区块为illegal并签名;
如果超过2/3的监控节点标记新区块为legal并签名,那么该新区块被确认,且生成该新区块的验证节点被认为完成一次good共识行为并获得代币奖励;做出legal标记的所有监控节点被认为完成了一次good共识行为,做出illegal标记的所有监控节点被认为完成了一次bad共识行为;
如果少于2/3的监控节点标记区块为legal并签名,那么认为该新区块非法,且生成该新区块的验证节点被认为完成一次bad共识行为;做出illegal标记的所有监控节点被认为完成了一次good共识行为,做出legal标记的所有监控节点被认为完成了一次bad共识行为。
5.根据权利要求4所述的一种动态的基于信誉的区块链共识方法,其特征在于:当新区块内的交易是非法或区块头哈希值不正确时,监控节点核查该新区块有误。
6.根据权利要求4所述的一种动态的基于信誉的区块链共识方法,其特征在于:所述利用信誉评价算法对分布式网络中所有节点进行信誉值动态更新的步骤,包括:
节点u的历史信誉评价值
Figure 459044DEST_PATH_IMAGE001
为:
Figure 775756DEST_PATH_IMAGE002
式(1)中,t表示当前共识周期,k表示当前共识周期之前的第k个共识周期;
Figure 402784DEST_PATH_IMAGE003
表示节点u在第k个共识周期的总信誉值;
Figure 830355DEST_PATH_IMAGE004
为时间衰减因子,表示第k个共识周期中获得的信誉值对历史信誉评价的影响程度;
节点u的共识信誉评价值
Figure 95114DEST_PATH_IMAGE005
为:
Figure 582727DEST_PATH_IMAGE006
式(2)中
Figure 464095DEST_PATH_IMAGE007
表示节点u在当前共识周期中被定义为good共识行为的次数,
Figure 942961DEST_PATH_IMAGE008
表示节点u在当前共识周期中被定义为bad共识行为的次数,
Figure 593385DEST_PATH_IMAGE009
表示bad共识行为的权重,
Figure 986320DEST_PATH_IMAGE010
表示节点u在当前共识周期中共识行为的总次数;
节点u的交易信誉评价值
Figure 89406DEST_PATH_IMAGE011
为:
Figure 858778DEST_PATH_IMAGE012
在当前共识周期中,式(3)中
Figure 363709DEST_PATH_IMAGE013
表示节点u的所有交易总数,
Figure 426081DEST_PATH_IMAGE014
表示其它节点对节点u第i笔交易的反馈评价,
Figure 16462DEST_PATH_IMAGE015
表示第i笔交易的交易对象,
Figure 589526DEST_PATH_IMAGE016
表示节点u的可信程度;
节点u在当前共识周期内的总信誉值
Figure 948963DEST_PATH_IMAGE017
为:
Figure 683701DEST_PATH_IMAGE018
(4)
在当前共识周期中,节点u的总信誉值
Figure 997264DEST_PATH_IMAGE017
由节点u的历史信誉评价值
Figure 374019DEST_PATH_IMAGE001
、共识信誉评价值
Figure 587962DEST_PATH_IMAGE005
、交易信誉评价值
Figure 759181DEST_PATH_IMAGE011
组成;式(4)中
Figure 58575DEST_PATH_IMAGE019
为历史信誉评价值
Figure 471977DEST_PATH_IMAGE001
的权重,
Figure 540427DEST_PATH_IMAGE020
为共识信誉评价值
Figure 616967DEST_PATH_IMAGE005
的权重,
Figure 403657DEST_PATH_IMAGE021
为交易信誉评价值
Figure 122215DEST_PATH_IMAGE011
的权重。
7.一种动态的基于信誉的区块链共识系统,其特征在于:包括:
群组生成模块,用于从分布式网络中生成监控群组和验证群组;
区块创建模块,用于使验证群组中的验证节点在交易时间内验证并打包生成一个新区块,并将创建的新区块广播至监控群组;以及判别验证节点在创建新区块时是否在交易时间内完成;
共识评估模块,用于使验证节点通过节点行为判别算法评估验证节点是否正常的完成了共识流程,以及利用信誉评价算法对分布式网络中的所有节点进行信誉值动态更新。
8.根据权利要求7所述的一种动态的基于信誉的区块链共识系统,其特征在于:所述群组生成模块包括监控群组生成单元、验证群组生成单元,其中,
所述监控群组生成单元用于根据各个节点加入从分布式网络时获得的信誉初始值,将信誉初始值高于阈值的节点申请成为监控节点,从而生成监控群组;
所述验证群组生成单元用于等监控群组生成后,从分布式网络中随机选取n%的节点作为验证节点,从而生成验证群组。
9.根据权利要求7所述的一种动态的基于信誉的区块链共识系统,其特征在于:所述区块创建模块包括区块创建单元、区块验证单元,其中,
所述区块创建单元用于设定交易时间,并使验证群组中最先被选择的验证节点在交易时间内验证并打包生成一个新区块,并将创建的新区块广播至监控群组;
所述区块验证单元用于判断验证节点是否在交易时间内完成创建新区块,若未完成则通知区块创建单元,按验证群组中验证节点的生成顺序使下一个验证节点创建新区块。
10.根据权利要求7所述的一种动态的基于信誉的区块链共识系统,其特征在于:所述共识评估模块包括核查单元、信誉更新单元,其中,
所述核查单元用于使监控节点在接收新区块后核查新区块的交易和哈希值,并根据核查结果对验证节点和监控节点赋予共识行为次数,所述共识行为包括good共识行为、bad共识行为;
所述信誉更新单元用于利用信誉评价算法对分布式网络中所有节点进行信誉值动态更新。
CN202210257342.6A 2022-03-16 2022-03-16 一种动态的基于信誉的区块链共识方法和系统 Active CN114338053B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210257342.6A CN114338053B (zh) 2022-03-16 2022-03-16 一种动态的基于信誉的区块链共识方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210257342.6A CN114338053B (zh) 2022-03-16 2022-03-16 一种动态的基于信誉的区块链共识方法和系统

Publications (2)

Publication Number Publication Date
CN114338053A true CN114338053A (zh) 2022-04-12
CN114338053B CN114338053B (zh) 2022-05-13

Family

ID=81033594

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210257342.6A Active CN114338053B (zh) 2022-03-16 2022-03-16 一种动态的基于信誉的区块链共识方法和系统

Country Status (1)

Country Link
CN (1) CN114338053B (zh)

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108122165A (zh) * 2017-12-15 2018-06-05 北京中电普华信息技术有限公司 一种区块链共识方法及系统
CN108492103A (zh) * 2018-02-07 2018-09-04 北京大学深圳研究生院 一种联盟区块链共识方法
CN109727038A (zh) * 2019-01-02 2019-05-07 浙江师范大学 一种基于信用证明PoC的区块链共识机制及实现方法
CN109921909A (zh) * 2019-02-15 2019-06-21 北京工业大学 基于贡献证明的区块链共识方法及装置
EP3547199A1 (en) * 2017-04-28 2019-10-02 Alibaba Group Holding Limited Consensus verification method and device
CN110505091A (zh) * 2019-08-23 2019-11-26 昆明理工大学 一种基于pbft改进的共识方法
CN111131181A (zh) * 2019-12-05 2020-05-08 重庆邮电大学 一种基于信誉机制和DPBFT算法的区块链动态DPoS共识方法
CN111131298A (zh) * 2019-12-31 2020-05-08 预言机(重庆)科技有限公司 一种基于信用去中心化的poc高效共识机制及实现方法
CN111355810A (zh) * 2020-03-17 2020-06-30 重庆邮电大学 一种基于信誉与投票机制的改进pbft共识方法
CN113645074A (zh) * 2021-08-11 2021-11-12 永旗(北京)科技有限公司 一种基于区块链的共识方法
CN114143104A (zh) * 2021-12-06 2022-03-04 昆明理工大学 一种基于动态信任模型的DPoS共识机制节点信誉值度量方法
CN114172680A (zh) * 2021-08-16 2022-03-11 北京天德科技有限公司 一种基于节点信誉机制的区块链系统及其运行方法
CN114185995A (zh) * 2021-06-23 2022-03-15 湖北大学 一种基于贡献值和信誉度的区块链共识机制

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3547199A1 (en) * 2017-04-28 2019-10-02 Alibaba Group Holding Limited Consensus verification method and device
CN108122165A (zh) * 2017-12-15 2018-06-05 北京中电普华信息技术有限公司 一种区块链共识方法及系统
CN108492103A (zh) * 2018-02-07 2018-09-04 北京大学深圳研究生院 一种联盟区块链共识方法
CN109727038A (zh) * 2019-01-02 2019-05-07 浙江师范大学 一种基于信用证明PoC的区块链共识机制及实现方法
CN109921909A (zh) * 2019-02-15 2019-06-21 北京工业大学 基于贡献证明的区块链共识方法及装置
CN110505091A (zh) * 2019-08-23 2019-11-26 昆明理工大学 一种基于pbft改进的共识方法
CN111131181A (zh) * 2019-12-05 2020-05-08 重庆邮电大学 一种基于信誉机制和DPBFT算法的区块链动态DPoS共识方法
CN111131298A (zh) * 2019-12-31 2020-05-08 预言机(重庆)科技有限公司 一种基于信用去中心化的poc高效共识机制及实现方法
CN111355810A (zh) * 2020-03-17 2020-06-30 重庆邮电大学 一种基于信誉与投票机制的改进pbft共识方法
CN114185995A (zh) * 2021-06-23 2022-03-15 湖北大学 一种基于贡献值和信誉度的区块链共识机制
CN113645074A (zh) * 2021-08-11 2021-11-12 永旗(北京)科技有限公司 一种基于区块链的共识方法
CN114172680A (zh) * 2021-08-16 2022-03-11 北京天德科技有限公司 一种基于节点信誉机制的区块链系统及其运行方法
CN114143104A (zh) * 2021-12-06 2022-03-04 昆明理工大学 一种基于动态信任模型的DPoS共识机制节点信誉值度量方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Y. WANG等: "Study of Blockchains’s Consensus Mechanism Based on Credit", 《IEEE ACCESS》 *
周健,张杰,闫石,屈冉: "基于动态信任的区块链激励共识机制研究", 《计算机应用研究》 *
罗方: "基于动态信誉的区块链共识算法研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 *
赖英旭等: "基于改进PBFT算法防御区块链中sybil攻击的研究", 《通信学报》 *

Also Published As

Publication number Publication date
CN114338053B (zh) 2022-05-13

Similar Documents

Publication Publication Date Title
CN109743173B (zh) 区块链中出块节点确定方法、区块验证方法及区块链系统
JP2021502746A (ja) 変更から検証鍵を保護し、正当性のプルーフの有効性を確かめるためのシステム
CN111090892A (zh) 一种基于vrf和门限签名的区块链共识方法和装置
US11928222B2 (en) Distributed ledger network implementing a synchronous trust consensus model
CN112437049B (zh) 一种基于bft的区块链共识方法及装置
AU2018346326B2 (en) Declarative smart contracts
CN112257095A (zh) 一种联盟链共识节点的选择方法
CN111817855B (zh) 基于以太坊区块链的电子投票方法及系统
CN111082943A (zh) 一种高效的区块链共识方法
Sun et al. Rtchain: A reputation system with transaction and consensus incentives for e-commerce blockchain
CN113992526B (zh) 一种基于可信度计算的联盟链跨链数据融合方法
CN106920097A (zh) 一种量子链共识协议的生成时间块链方法
KR102179160B1 (ko) 블록체인 간의 통신을 위해 메시지를 증명하는 시스템 및 방법
CN110868286A (zh) 一种基于区块链智能合约生成随机数的方法
CN112398949A (zh) 交易确认方法、系统、装置和计算机设备
CN112769936B (zh) 一种基于投票与信用机制的povt共识算法
CN114338053B (zh) 一种动态的基于信誉的区块链共识方法和系统
CN109078323B (zh) 一种游戏过程数据生产系统
CN114005217A (zh) 一种基于区块链的电子投票系统及方法
CN117195314A (zh) 一种基于dag账本结构的区块链安全共识方法
CN111416703A (zh) 一种区块链跨越式和跳跃式快速同步方法及系统
CN115643043B (zh) 一种基于验证延迟函数的跨链共识选举方法及系统
CN109409899A (zh) 一种交易验证方法、装置及系统
CN115412263A (zh) 一种基于双重盲化的拜占庭容错共识方法
CN112907246A (zh) 基于BFT协议和PoW机制的区块链共识协议实现方法和系统

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