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的历史信誉评价值 为:
式(1)中,t表示当前共识周期,k表示当前共识周期之前的第k个共识周期; 表示节点u在第k个共识周期的总信誉值;为时间衰减因子,表示第k个共识周期中获得的信誉值对历史信誉评价的影响程度;
节点u的共识信誉评价值 为:
式(2)中 表示节点u在当前共识周期中被定义为good共识行为的次数,表示节点u在当前共识周期中被定义为bad共识行为的次数,表示bad共识行为的权重, 表示节点u在当前共识周期中共识行为的总次数;
节点u的交易信誉评价值 为:
在当前共识周期中,式(3)中 表示节点u的所有交易总数, 表示其它节点对节点u第i笔交易的反馈评价, 表示第i笔交易的交易对象, 表示节点u的可信程度;
节点u在当前共识周期内的总信誉值 为:(4)
在当前共识周期中,节点u的总信誉值 由节点u的历史信誉评价值 、共识信誉评价值 、交易信誉评价值 组成;式(4)中 为历史信誉评价值 的权重,为共识信誉评价值 的权重,为交易信誉评价值 的权重。
7.一种动态的基于信誉的区块链共识系统,其特征在于:包括:群组生成模块,用于从分布式网络中生成监控群组和验证群组;
区块创建模块,用于使验证群组中的验证节点在交易时间内验证并打包生成一个新区块,并将创建的新区块广播至监控群组;以及判别验证节点在创建新区块时是否在交易时间内完成;
共识评估模块,用于使验证节点通过节点行为判别算法评估验证节点是否正常的完成了共识流程,以及利用信誉评价算法对分布式网络中的所有节点进行信誉值动态更新。
8.根据权利要求7所述的一种动态的基于信誉的区块链共识系统,其特征在于:所述群组生成模块包括监控群组生成单元、验证群组生成单元,其中,所述监控群组生成单元用于根据各个节点加入从分布式网络时获得的信誉初始值,将信誉初始值高于阈值的节点申请成为监控节点,从而生成监控群组;
所述验证群组生成单元用于等监控群组生成后,从分布式网络中随机选取n%的节点作为验证节点,从而生成验证群组。
9.根据权利要求7所述的一种动态的基于信誉的区块链共识系统,其特征在于:所述区块创建模块包括区块创建单元、区块验证单元,其中,所述区块创建单元用于设定交易时间,并使验证群组中最先被选择的验证节点在交易时间内验证并打包生成一个新区块,并将创建的新区块广播至监控群组;
所述区块验证单元用于判断验证节点是否在交易时间内完成创建新区块,若未完成则通知区块创建单元,按验证群组中验证节点的生成顺序使下一个验证节点创建新区块。
10.根据权利要求7所述的一种动态的基于信誉的区块链共识系统,其特征在于:所述共识评估模块包括核查单元、信誉更新单元,其中,所述核查单元用于使监控节点在接收新区块后核查新区块的交易和哈希值,并根据核查结果对验证节点和监控节点赋予共识行为次数,所述共识行为包括good共识行为、bad共识行为;
所述信誉更新单元用于利用信誉评价算法对分布式网络中所有节点进行信誉值动态更新。