本发明涉及一种基于节点互评声誉的区块链共识方法,属于区块链共识。
背景技术:
1、在区块链系统中没有像银行一样的中心化机构,所以在进行传输信息、价值转移时,解决共识机制并保证每一笔交易在所有记帐节点上的一致性和正确性问题尤其重要。区块链的共识机制使其在不依靠中心化组织的情况下,依然大规模高效协作完成运转。
2、共识是一个决策过程,它的目标是确保所有参与者在添加新数据块后,能就其当前状态达成一致。换言之,共识协议确保了一条链的正确性,并为做出贡献的参与者提供了激励措施。共识协议对区块链来说是非常重要的,它可以防止一个人单独控制整个系统,并确保每个人都遵守网络规则,除了密码学技术外,共识机制也是区块链必要元素及核心部分,是保障区块链系统不断运行的关键。
3、现有的共识机制中,基于声誉的共识机制被广泛使用,其中每个节点的声誉值要么根据该节点所贡献的有效工作的总量以及在给定时期内该贡献的规律性来计算,要么直接由一个负责更新节点声誉值的法官进行确定,使得中心化网络的安全性和公平性均偏低。
技术实现思路
1、本申请的目的在于提供一种基于节点互评声誉的区块链共识方法,用以解决现有共识方法使得中心化网络的安全性和公平性均偏低的问题。
2、为实现上述目的,本申请提出了一种基于节点互评声誉的区块链共识方法的技术方案,方法包括以下步骤:
3、1)基于n个节点组成网络,确定各节点的初始声誉值;
4、2)第一轮共识前,根据各节点的初始声誉值创建第一轮共识小组,并确定第一轮共识小组的主节点;
5、3)第一轮共识开始,各节点之间进行交易,得到第一轮各节点的评价值集合,评价值集合包括各评价节点对该节点的评价值;第一轮共识小组的主节点将各节点之间的交易事项打包添加到第一轮的区块中,并且根据第一轮各节点的评价值集合和各节点的初始声誉值计算各节点第一轮的声誉值;
6、4)第一轮共识小组的主节点使用自身的密钥对第一轮的区块签名生成第一轮区块的hash值,并形成第一轮的提交消息,将第一轮的提交消息发送给第一轮共识小组中的其他节点;第一轮共识小组中的其他节点对第一轮的提交消息进行验证;第一轮的提交消息包括第一轮的区块、第一轮区块的hash值、第一轮共识小组的主节点的公钥、以及各节点第一轮的声誉值;
7、5)根据验证通过后的节点的声誉值进行第一轮的区块认证,第一轮的区块认证通过后进入下一轮共识;
8、6)第k轮共识前(k≥2),根据各节点第k-1轮的声誉值创建第k轮共识小组,并确定第k轮共识小组的主节点;
9、7)第k轮共识开始,各节点之间进行交易,得到第k轮各节点的评价值集合,评价值集合包括各评价节点对该节点的评价值;第k轮共识小组的主节点将各节点之间的交易事项打包添加到第k轮的区块中,并且根据第k轮各节点的评价值集合和各节点第k-1轮的声誉值计算各节点第k轮的声誉值;
10、8)第k轮共识小组的主节点使用自身的密钥对第k轮的区块签名生成第k轮区块的hash值,并形成第k轮的提交消息,将第k轮的提交消息发送给第k轮共识小组中的其他节点;第k轮共识小组中的其他节点对第k轮的提交消息进行验证;第k轮的提交消息包括第k轮的区块、第k轮区块的hash值、第k轮共识小组的主节点的公钥、以及各节点第k轮的声誉值;
11、9)根据验证通过后的节点的声誉值进行第k轮的区块认证,第k轮的区块认证通过后进入下一轮共识。
12、本发明的区块链共识方法的技术方案的有益效果是:本发明在每轮共识前进行共识小组的创建,并且每轮共识过程中,各节点的交易过程中各节点进行相互打分评价,得到每个节点的评价值集合,共识小组的主节点基于本轮每个节点的评价值集合以及每个节点上一轮的声誉值确定出每个节点本轮的声誉值,进而基于声誉值进行区块的认证。本发明通过节点之间的交易计算每轮的声誉值,提高了网络的活跃度和共识的公平性。同时在网络中,节点可以随时加入网络,使得网络的安全风险较大,通过节点之间的交易进行评价打分计算每轮的声誉值,对每次加入网络的节点进行评价,还可以提高共识的安全性。
13、进一步地,为了提高每轮声誉值计算的准确性,各节点第一轮的声誉值的计算过程为:
14、r1=α*s1*r0+(α-1)*r0;
15、各节点第k轮的声誉值的计算过程为:
16、rk=α*sk*rk-1+(α-1)*rk-1;
17、其中,r1为第一轮的声誉值矩阵;α为系数;s1为第一轮评价值矩阵;r0为初始声誉值矩阵;rk为第k轮的声誉值矩阵;sk为第k轮评价值矩阵;rk-1为第k-1轮的声誉值矩阵。
18、进一步地,得到每一轮各节点的评价值集合后,还包括将各节点的评价值集合进行归一化的步骤,做出评价值的节点为评价节点,被评价的节点为接收节点,归一化的过程为:
19、
20、其中,sin′为第n个评价节点对接收节点i的归一化后的评价值;sin为第n个评价节点对接收节点i的评价值;si为接收节点i的评价值集合。
21、进一步地,为了使得共识小组更具有代表性,第k轮共识小组的创建过程为:按照各节点的第k-1轮的声誉值从高到低进行排序,首先选出第k-1轮的声誉值最高的节点,接着选出第k-1轮的声誉值次高的节点,直至所选出的节点的第k-1轮的声誉值之和超过全体第k-1轮的声誉值之和的设定比例,停止节点的选取,选出的节点为第k轮共识小组的成员节点,完成第k轮共识小组的创建。
22、进一步地,为了提高共识小组中其他节点对主节点验证的准确性,共识小组每轮共识小组的主节点确定后,还包括将每轮共识小组的主节点的公钥在对应共识小组中广播的步骤,每轮共识小组中的其他节点对相应的提交消息进行验证的过程包括将该轮的提交消息中的该轮共识小组的主节点的公钥与通过广播得到的该轮共识小组的主节点的公钥进行对比的步骤。
23、进一步地,为了提高共识小组中其他节点对主节点验证的准确性,每轮共识小组中的其他节点对相应的提交消息进行验证的过程还包括使用该轮共识小组的主节点的公钥检查该轮区块的hash值、以及检查该轮区块中交易有效性的步骤。
24、进一步地,为了提高认证的准确性,所述步骤5)中,若验证通过后的节点的初始声誉值之和超过设定阈值,则第一轮的区块完成认证;所述步骤9)中,若验证通过后的节点的第k-1轮的声誉值之和超过设定阈值,则第k轮的区块完成认证。
25、进一步地,若某一轮的区块认证未完成,则更换该轮共识小组的主节点重新进行认证,直至认证完成。
26、进一步地,为了提高主节点选取的效率,通过随机函数确定每轮共识小组的主节点。
27、进一步地,为了消除第三方管理声誉值的需要,每轮的区块认证通过后,通过侧链存储各节点该轮的声誉值。
1.一种基于节点互评声誉的区块链共识方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于节点互评声誉的区块链共识方法,其特征在于,各节点第一轮的声誉值的计算过程为:
3.根据权利要求1或2所述的基于节点互评声誉的区块链共识方法,其特征在于,得到每一轮各节点的评价值集合后,还包括将各节点的评价值集合进行归一化的步骤,做出评价值的节点为评价节点,被评价的节点为接收节点,归一化的过程为:
4.根据权利要求1所述的基于节点互评声誉的区块链共识方法,其特征在于,第k轮共识小组的创建过程为:按照各节点的第k-1轮的声誉值从高到低进行排序,首先选出第k-1轮的声誉值最高的节点,接着选出第k-1轮的声誉值次高的节点,直至所选出的节点的第k-1轮的声誉值之和超过全体第k-1轮的声誉值之和的设定比例,停止节点的选取,选出的节点为第k轮共识小组的成员节点,完成第k轮共识小组的创建。
5.根据权利要求1所述的基于节点互评声誉的区块链共识方法,其特征在于,每轮共识小组的主节点确定后,还包括将每轮共识小组的主节点的公钥在对应共识小组中广播的步骤,每轮共识小组中的其他节点对相应的提交消息进行验证的过程包括将该轮的提交消息中的该轮共识小组的主节点的公钥与通过广播得到的该轮共识小组的主节点的公钥进行对比的步骤。
6.根据权利要求5所述的基于节点互评声誉的区块链共识方法,其特征在于,每轮共识小组中的其他节点对相应的提交消息进行验证的过程还包括使用该轮共识小组的主节点的公钥检查该轮区块的hash值、以及检查该轮区块中交易有效性的步骤。
7.根据权利要求1所述的基于节点互评声誉的区块链共识方法,其特征在于,所述步骤5)中,若验证通过后的节点的初始声誉值之和超过设定阈值,则第一轮的区块完成认证;所述步骤9)中,若验证通过后的节点的第k-1轮的声誉值之和超过设定阈值,则第k轮的区块完成认证。
8.根据权利要求1所述的基于节点互评声誉的区块链共识方法,其特征在于,若某一轮的区块认证未完成,则更换该轮共识小组的主节点重新进行认证,直至认证完成。
9.根据权利要求1所述的基于节点互评声誉的区块链共识方法,其特征在于,通过随机函数确定每轮共识小组的主节点。
10.根据权利要求1所述的基于节点互评声誉的区块链共识方法,其特征在于,每轮的区块认证通过后,通过侧链存储各节点该轮的声誉值。