一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种区块链的PBFT改进共识算法的制作方法

2022-07-13 17:41:25 来源:中国专利 TAG:

一种区块链的pbft改进共识算法
技术领域
1.本发明涉及区块链技术领域,具体而言,涉及一种区块链的pbft改进共识算法。


背景技术:

2.区块链技术是一种分布式的账本技术,它是基于p2p协议、非对称加密算法、共识机制和分布式存储技术共同集成的;区块链依靠p2p协议进行节点间的交易信息传递和点对点传输,依靠非对称加密算法保证了交易信息在传递过程中的安全性和可靠性,依靠共识机制保证了区块链节点账本的一致性和新区块的稳定生成,依靠分布式存储技术对交易信息进行存储。
3.共识算法是区块链共识机制的核心算法,也可以说区块链共识机制由共识算法构成的,例如公有链通常运用的共识算法有:工作量证明(pow)、权益证明(pos)和股份权益证明(dpos)等,各种算法既有它的优点,又有它的不足。
4.pbft共识算法是一种基于联盟链挑选记账者的共识算法,pbft共识算法的流程如下:
5.(1)从全网节点选举出一个主节点,新区块由主节点负责生成。
6.(2)每个节点把新交易向全网广播,主节点把从网络收集到的需放在新区块内的多个交易排序后存入列表,并将该列表向全网广播。
7.(3)每个节点接收到交易列表后,依据排序模拟执行交易;所有交易执行完后,基于交易结果计算新区块的哈希摘要,并向全网广播。
8.(4)如果一个节点收到的2f(f为可容忍的恶意节点数)条其它节点发来的摘要都和自己相同,就向全网广播一条commit消息。
9.(5)如果一个节点收到2f 1条commit消息,即可正式提交新区块及其交易到本地的区块链和状态数据库。
10.pbft共识过程的每个区块都由唯一的主节点生成,所以不存在分叉的可能;但是在该算法中步骤3和4两个阶段需要传输的网络消息过多,将会造成很大的网络开销;因此,目前基于pbft共识算法的区块链系统性能并不高。


技术实现要素:

11.本发明的目的在于克服现有技术存在的以上问题,以及在原有技术基础上大大提高其技术效果;为此,本发明提供了一种区块链的pbft改进共识算法。
12.为了实现上述目的,本发明的第一方面的技术方案提供了一种区块链的pbft改进共识算法,适用于联盟链,包括:
13.建立区块链交易信息排序的智能合约和验证信息统计的智能合约,通过激活所述交易信息排序的智能合约对区块链中特定时间内获取的交易信息进行排序,通过激活验证信息统计的智能合约对区块链各节点验证的交易信息合法性进行判定;
14.区块链上各节点对排序后的交易信息进行总哈希值的运算,并将运算的结果发送
到区块链网络系统中;
15.激活区块链验证信息统计的智能合约,通过验证节点签名信息,比较各节点将排序后的交易信息转化的哈希值和排序后的交易信息实际哈希值是否一致,统计验证一致的哈希值节点数量和节点总数量关系是否满足区块链可容忍恶意节点数量上限;
16.区块链向各节点发送交易信息哈希值一致的信息,区块链各节点向其他节点发出接收到的哈希值一致的信息,将首先接收到其他全部节点发送的哈希值一致的信息的节点作为区块链的记账者。
17.进一步地,区块链交易信息排序的智能合约包括:激活所述智能合约,则获取区块链一段时间内的合法的交易信息,并将合法的交易信息暂存在交易池中,所述交易池为区块链的一种虚拟存储结构,用于存储通过节点验证合法的交易信息。
18.进一步地,区块链交易信息排序的智能合约还包括:对获取的交易信息进行随机排序,并将排序后的交易信息转化为哈希值,将转化的哈希值保存在交易池对照组。
19.进一步地,验证信息统计的智能合约包括:激活所述智能合约,则统计节点将排序后的交易信息转化的哈希值与交易池中对照组哈希值相同的节点数量。
20.进一步地,验证信息统计的智能合约还包括:统计节点将排序后的交易信息转化的哈希值与交易池中对照组哈希值相同的节点数量是否满足区块链可容忍恶意节点数量上限,所述区块链可容忍恶意节点数量上限为:3f 1<n,其中f为恶意节点数量,n为区块链参加验证交易信息的总节点数量。
21.进一步地,区块链上各节点对排序后的交易信息进行总哈希值的运算包括:区块链各节点对接收到的排序后的交易信息运用sha256算法进行总哈希值的运算,并将计算结果发送给区块链系统。
22.进一步地,通过验证节点签名信息包括:当区块链系统接收到首个节点发送的交易信息总哈希值时,则激活区块链验证信息统计的智能合约;激活该智能合约,首先对各节点的签名信息进行验证。
23.进一步地,通过验证节点签名信息还包括:通过统计区块链各节点的签名信息,确定区块链各节点的身份信息和统计参与进行哈希运算的节点数量。
24.进一步地,统计验证一致的哈希值节点数量和节点总数量关系是否满足区块链可容忍恶意节点数量上限包括:所述验证一致的哈希值节点数量和节点总数量关系是否满足区块链可容忍恶意节点数量上限则认为区块链系统对交易信息达成共识,并将交易信息达成共识的信息在区块链中广播,反馈到区块链的各个节点上。
25.进一步地,将首先接收到其他全部节点发送的哈希值一致的信息的节点作为区块链的记账者还包括:在记账者生成的同时,区块链生成新区块,挑选出的记账节点将交易池中除对照组交易信息外的其他信息写入到新形成的区块。
26.本发明的有益效果
27.本发明通过建立区块链交易信息排序的智能合约代替pbft挑选主节点对交易信息进行排序,使得排序过程更加安全,同时通过激活验证信息统计的智能合约对各节点验证的交易信息进行共识统计,在节点共识过程中,将pbft共识算法中两个阶段传输的网络消息过多导致开销过大,减少为一个阶段,降低了pbft节点共识过程的网络开销。
附图说明
28.本发明的上述优点和一些隐藏的优点,将结合下面附图对实施例的描述中将变得明显和容易理解,其中:
29.图1:一种区块链的pbft改进共识算法的流程图。
具体实施方式
30.为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。
31.需要注意的是,在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以有其他实施方式以及其变形,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
32.如图1所示,根据本发明的一种区块链的pbft改进共识算法的流程图,适用于联盟链,包括:步骤s200,建立区块链交易信息排序的智能合约和验证信息统计的智能合约,通过激活所述交易信息排序的智能合约对区块链中特定时间内获取的交易信息进行排序,通过激活验证信息统计的智能合约对区块链各节点验证的交易信息合法性进行判定;步骤s201,区块链上各节点对排序后的交易信息进行总哈希值的运算,并将运算的结果发送到区块链网络系统中;步骤s202,激活区块链验证信息统计的智能合约,通过验证节点签名信息,比较各节点将排序后的交易信息转化的哈希值和排序后的交易信息实际哈希值是否一致,统计验证一致的哈希值节点数量和节点总数量关系是否满足区块链可容忍恶意节点数量上限;步骤s203,区块链向各节点发送交易信息哈希值一致的信息,区块链各节点向其他节点发出接收到的哈希值一致的信息,将首先接收到其他全部节点发送的哈希值一致的信息的节点作为区块链的记账者。
33.在本实施例中,具体地,通过在区块链中建立交易信息排序的智能合约和验证信息统计的智能合约,将所述智能合约写入区块链中,通过激活所述交易信息排序的智能合约对区块链中特定时间内获取的交易信息进行排序,通过激活验证信息统计的智能合约对区块链各节点验证的交易信息合法性进行判定;通过对区块链中特定时间内获取的交易信息进行排序后,将交易信息发送到区块链的各节点上,区块链上各节点对排序后的交易信息进行总哈希值的运算,并将运算的结果发送到区块链网络系统中;随后,激活区块链验证信息统计的智能合约,通过验证节点签名信息,比较各节点将排序后的交易信息转化的哈希值和排序后的交易信息实际哈希值是否一致,统计验证一致的哈希值节点数量和节点总数量关系是否满足区块链可容忍恶意节点数量上限;若满足条件,则区块链向各节点发送交易信息哈希值一致的信息,区块链各节点向其他节点发出接收到的哈希值一致的信息,将首先收到其他全部节点发送的哈希值一致的信息的节点作为区块链的记账者。
34.步骤s200,建立区块链交易信息排序的智能合约和验证信息统计的智能合约,通过激活所述交易信息排序的智能合约对区块链中特定时间内获取的交易信息进行排序,通过激活验证信息统计的智能合约对区块链各节点验证的交易信息合法性进行判定;具体地,在区块链代码中加入含有区块链交易信息排序的智能合约和验证信息统计的智能合约的代码;通过达成某种激活智能合约的条件,激活智能合约;分别是,通过激活所述交易信息排序的智能合约对区块链中特定时间内获取的交易信息进行排序,通过激活验证信息统
计的智能合约对区块链各节点验证的交易信息合法性进行判定。
35.具体地,激活区块链交易信息排序的智能合约,则获取区块链一段时间内的合法的交易信息,并将合法的交易信息暂存在交易池中,所述交易池为区块链的一种虚拟存储结构,用于存储通过节点验证合法的交易信息。
36.在上述技术方案中,具体地,激活区块链交易信息排序的智能合约对获取的交易信息进行随机排序,并将排序后的交易信息转化为哈希值,将转化的哈希值保存在交易池对照组。
37.在上述技术方案中,激活验证信息统计的智能合约,则统计节点将排序后的交易信息转化的哈希值与交易池中对照组哈希值相同的节点数量;另外将节点对排序后的交易信息转化的哈希值与交易池中对照组哈希值不同的节点叫做恶意节点。
38.随后,统计节点将排序后的交易信息转化的哈希值与交易池中对照组哈希值相同的节点数量是否满足区块链可容忍恶意节点数量上限,所述区块链可容忍恶意节点数量上限为:3f 1<n,其中f为恶意节点数量,n为区块链参加验证交易信息的总节点数量。
39.步骤s201,区块链上各节点对排序后的交易信息进行总哈希值的运算,并将运算的结果发送到区块链网络系统中;具体地,区块链上的各节点接收到区块链系统发送的排序后的交易信息,计算总的交易信息哈希值,并将计算的总的交易信息哈希值在区块链全网进行广播。
40.优选地,区块链上各节点对排序后的交易信息进行总哈希值的运算的方法:区块链各节点对接收到的排序后的交易信息运用sha256算法进行总哈希值的运算,并将计算结果发送给区块链系统。
41.步骤s202,激活区块链验证信息统计的智能合约,通过验证节点签名信息,比较各节点将排序后的交易信息转化的哈希值和排序后的交易信息实际哈希值是否一致,统计验证一致的哈希值节点数量和节点总数量关系是否满足区块链可容忍恶意节点数量上限;具体地,通过激活区块链验证信息统计的智能合约,首先,激活该智能合约通过验证节点签名信息,识别节点身份;比较各节点将排序后的交易信息转化的哈希值和排序后的交易信息实际哈希值是否一致,统计验证一致的哈希值节点数量和节点总数量关系是否满足区块链可容忍恶意节点数量上限。
42.具体地,激活区块链验证信息统计的智能合约的条件是:当区块链系统接收到首个节点发送的交易信息总哈希值时,则激活区块链验证信息统计的智能合约;激活该智能合约,首先对各节点的签名信息进行验证。
43.在上述技术方案中,通过统计区块链各节点的签名信息,确定区块链各节点的身份信息,以及统计参与进行哈希运算的节点数量。
44.在上述技术方案中,统计验证一致的哈希值节点数量和节点总数量关系是否满足区块链可容忍恶意节点数量上限包括:所述验证一致的哈希值节点数量和节点总数量关系是否满足区块链可容忍恶意节点数量上限,进而区块链系统对交易信息达成共识,并将交易信息达成共识的信息在区块链中广播,反馈到区块链的各个节点上。
45.在上述技术方案中,若验证一致的哈希值节点数量和节点总数量关系满足区块链可容忍恶意节点数量上限,即满足:3f 1<n,其中f为恶意节点数量,n为区块链参加验证交易信息的总节点数量,则认为所有节点是合法的;若验证一致的哈希值节点数量和节点总
数量关系不满足区块链可容忍恶意节点数量上限,即不满足:3f 1<n,其中f为恶意节点数量,n为区块链参加验证交易信息的总节点数量,则认为所有节点是不合法的,该轮共识终止。
46.s203,区块链向各节点发送交易信息哈希值一致的信息,区块链各节点向其他节点发出接收到的哈希值一致的信息,将首先接收到其他全部节点发送的哈希值一致的信息的节点作为区块链的记账者;具体地,区块链向各节点发送交易信息哈希值一致的信息,同时区块链各节点向其他节点发出接收到的哈希值一致的信息,区块链的各节点统计从其他节点发送的节点哈希值一致的信息,将首先统计其他全部节点的哈希值一致的信息的节点作为区块链的记账者。
47.在上述技术方案中,具体地,将首先接收到其他全部节点发送的哈希值一致的信息的节点作为区块链的记账者:区块链节点接收其他节点发送的哈希值一致的信息,对其他节点的签名信息进行统计和计数;当某个节点首先接收并统计出其他全部在线节点发送的哈希值一致的信息,则将该节点作为本轮的获胜者,即该节点成为本轮的记账节点。
48.优选地,在记账者生成的同时,区块链生成新区块,挑选出的记账节点将交易池中除对照组交易信息外的其他信息写入到新形成的区块。
49.需要理解的是,上述实施例为本发明的一个或多个实施例,基于本发明还有很多其他实施例及其变形;本行业的普通技术人员在没有作出开拓性的创新的时候,通过本发明进行的变形和修改,均属于本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献