一种区块链多方协同交叉共识验证方法及系统与流程

文档序号:25614260发布日期:2021-06-25 15:43阅读:886来源:国知局
一种区块链多方协同交叉共识验证方法及系统与流程

1.本发明属于区块链技术领域,具体涉及一种区块链多方协同交叉共识验证方法及系统。


背景技术:

2.随着区块链技术的发展与应用,目前常用的区块链共识方法,如pow、pos、bft、paxos、raft等,这些常用的共识算法因存在性能低、耗能大的问题变得不再适用。于是,在技术实践的过程中,针对区块链的具体应用场景提出了各种新的共识方法,这些新的共识方法大多来自于已有共识方法的组合和更新,不具备通用性。
3.总之,单一的共识算法已变得越来越不适用,并且面对日益增长的区块链应用,存在各种问题,这就引发了对各种新共识方法的探究和尝试,复合型共识算法逐渐得到越来越多的关注,这些组合共识方法一方面针对具体应用场景没有通用性,另一方面在共识效率上依然存在瓶颈。
4.因此,需一种适用于通用区块链应用场景的共识验证方法,解决区块链共识验证效率低下的问题,提高区块链共识性能。


技术实现要素:

5.本发明基于上述背景和现有技术所存在的问题,拟设计一种区块链多方协同交叉共识验证方法,其将全网节点分成两组对数据进行验证,能够减少验证开销,提高验证节点验证区块数据的效率,进而提高共识过程的效率。
6.为了实现本发明的这些目的和其它优点,提供了一种区块链多方协同交叉共识验证方法,具体实现步骤包括:
7.区块链全网中,总共有n个组织节点作为验证节点u,在一轮区块链交易数据验证过程中,包括x个组织节点作为第一组验证节点ux和剩下的n

x个组织节点作为第二组验证节点un

x,x≥n/2,n为不为0的自然数,x为整数;
8.验证准备阶段,随机在组织节点中选取x个组织节点作为第一组验证节点,同时触发x的阈值控制合约,准备执行验证节点补录操作,使得参与验证的验证节点数量x落在满足系统此次验证要求的数量范围内;
9.根据所述x的阈值控制合约反馈的结果触发节点控制合约,补足第一组验证节点;
10.获取需要系统验证的数据,第一组验证节点对区块交易进行验证,交易验证通过,第一组验证节点提交账本,并将消息广播到全网;
11.第二组验证节点un

x监督第一组验证节点行为,记录第一组验证节点验证情况;
12.接收到广播的全网节点对区块数据进行同步,同时更新区块链状态数据库,所述状态数据库更新完毕后将验证完成通知发送到全网节点;
13.全网节点接收到验证完成的消息后触发随机数合约,执行第二组验证节点的选取,将第一组验证节点进行监督,同时触发轮次控制合约进行计时;所述随机数合约执行
后,控制本轮次第一组和第二组验证节点验证顺序的执行。
14.第二组验证节点完成验证后,完成一轮次两组多方协同验证过程;
15.至此,完成两次多方消息传递协同,上述过程实现多方协同交叉验证机制,其中,
16.每组数据验证通过后形成区块链数据索引,将处理完毕的区块链数据索引存入区块链缓存数据库,并将数据验证通过结果广播到全网。
17.进一步地,所述多方协同交叉验证机制,为了验证节点分组验证顺序的不可预测性,引入随机数r,n为n个验证节点的数量,当r为奇数则替换第二组验证节点进行验证,所述替换第二组验证节点为没有参与验证的剩余组织节点及其补录的机器验证节点,当r为偶数则保留当前第一组验证节点作为第二组验证节点进行验证,所述随机数r通过随机数合约控制验证节点分组的验证顺序。所述随机数合约执行后,控制本轮次第一组和第二组验证节点顺序。
18.进一步地,设置阈值控制合约使最终通过验证的组织节点数量为区块链全网组织节点的2/3以上,使得每组参与验证的验证节点数量大于等于n,其中,所述参与验证的验证节点,包括选取的x个组织节点和补录的机器验证节点,所述补录是对验证节点不满足大于等于n的x的差额进行补录操作。
19.进一步地,所述x个第一组验证节点ux选取的过程中,遇到u中的节点宕机或失效的情况,补录备选节点或机器验证节点作为新的验证节点,由阈值控制合约控制所述补录的节点的数量,即增补宕机或失效节点的数量;所述机器验证节点由节点控制合约生成,所述机器验证节点采用人工智能及大数据分析技术进行数据验证。
20.进一步地,设置轮次控制合约,按照一定的轮数随机选取验证节点后,调整和打乱全网组织节点进行重新选取验证节点并分组。所述设置轮次控制合约中,选取验证节点的轮数设置有下限和上限,所述下限为确保区块链交易失效率低于33%的最小轮次,所述上限为根据实际需求配置的可选轮次。所述可选轮次可通过设置预言机智能合约进行轮次数选取。所述轮次控制合约内部设置时钟,同时在全网节点中部署验证次数阈值合约和事故节点阈值控制合约,触发任意三者中的一个,进行验证节点重组,并检查事故节点,所述事故节点为被监督恶意验证的验证节点。
21.另一方面,本发明提出了一种区块链多方协同交叉共识验证系统。由本发明的过程容易想到,完成本发明的核心组成部件包括区块链缓存数据库、状态数据库、随机数合约、阈值控制合约、节点控制合约、轮次控制合约、验证次数阈值合约以及事故控制合约,且本发明的这些核心组成部件的组成总结如下:
22.区块链缓存数据库:临时缓存区块链浏览器数据信息,将部分囤积数据转移到链下数据库;
23.区块链状态数据库:存储区块链上链数据的最新信息,同时更新相应的状态信息;
24.随机数合约:用于控制验证节点分组的验证顺序,即用于在全网节点接收到验证完成的消息后,触发随机数合约执行第二组验证节点的选取,即用于控制本轮次第一组和第二组验证节点顺序;
25.x的阈值控制合约:使最终通过验证的节点数量为区块链全网组织节点的2/3以上,使得每组参与验证的验证节点的数量大于等于n,差额进行补录节点操作,同时控制所
述补录节点的数量;
26.x的阈值控制合约,用于控制x的数值范围;
27.节点控制合约:生成机器验证节点;根据所述阈值控制合约反馈的结果触发节点控制合约,补足第一组验证节点;
28.轮次控制合约:用于在按照一定的轮数随机选取验证节点后,调整和打乱全网节点进行重新选取验证节点并进行分组,其中,选取验证节点的轮数包括下限和上限,所述下限为确保区块链交易失效率低于33%的最小轮次,所述上限为根据实际需求配置的可选轮次;所述轮次控制合约内部设置时钟,用于计时;
29.验证次数阈值合约:记录节点验证次数及验证质量;
30.事故控制合约:事故控制合约根据所述验证次数阈值合约返回的事故记录选择执行全网验证节点重组的操作。
31.本发明至少包括以下有益效果:
32.(1)本发明将全网组织节点分为两组分别进行验证,同时补录机器验证节点,所述机器节点采用人工智能及大数据分析技术进行数据验证,提高了区块链共识过程的效率引入随机数r,r控制验证节点组次的顺序,避免可预测的验证过程;
33.(2)在本发明的共识验证过程中,阈值控制合约控制补录节点数量,确保在此后控制最终通过验证的节点数为全网组织节点的2/3以上,保证验证交易的有效性,进而保证交易的可信性;阈值控制合约包含合约函数,控制一轮第一组验证节点数量的上下限范围,确保本发明共识验证过程是有效的;
34.(3)本发明可部署预言机智能合约对轮次控制合约进行重复执行,即设置轮次数选取,以适应不同的应用场景;
35.(4)本发明还在轮次控制合约中部署时钟,同时部署了验证次数阈值合约和事故控制合约进行共识验证过程中的事故控制,触发三者中的一个则重组验证节点并且检查区块链网络,打击恶意验证的行为。
附图说明
36.图1为本发明多方协同交叉共识验证原理图;
37.图2为本发明区块链交叉共识验证系统结构图;
38.图3为本发明一轮两组多方交叉共识验证流程图。
具体实施方式
39.为了清晰地阐述本发明,使本发明实施例的目的、技术方案和优点更加清楚,下面结合了本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,以令本领域技术人员参照说明书文字能够据以实施。下面将附图结合具体实施方式对本发明的技术加以详细说明。
40.区块链共识过程中,对数据进行验证是必不可少的一环,且极其重要,因此区块链共识验证环节是拖慢区块链共识效率的因素之一。
41.图1示出了根据本发明多方协同交叉共识验证原理图的一种实现形式,可实现区块链多方协同交叉共识验证,具体实现步骤包括:
42.step1:区块链全网中,总共有n个组织节点作为验证节点u,在一轮区块链交易数据验证过程中,包括x个组织节点作为第一组验证节点ux和剩下的n

x个组织节点作为第二组验证节点un

x,x≥n/2,n为不为0的自然数,x为整数;
43.其中,设置阈值控制合约使最终通过验证的节点数量为区块链全网组织节点的2/3以上,为了保证一组验证节点的数量大于等于n,对选取x个验证节点后,不足的数量进行差额进行补录操作,参与验证的验证节点包括选取的x个组织节点和补录的机器验证节点,所述补录是对验证节点不满足大于等于n的x的差额进行补录操作。
44.其中,所述x个第一组验证节点ux选取的过程中,补录备选节点或机器验证节点,由阈值控制合约控制所述补录节点的数量,遇到u中的节点宕机或失效的情况,增补宕机或失效节点的数量;所述机器验证节点由节点控制合约生成,所述机器验证节点采用人工智能大数据分析技术进行数据验证。
45.step2:验证准备阶段,随机在组织节点中选取x个组织节点作为第一组验证节点,同时触发x的阈值控制合约,使得参与验证的验证节点数量x落在满足系统此次验证要求的数量范围内;
46.其中,设置轮次控制合约,当区块链系统在共识验证的过程中按照一定的轮数随机选取验证节点后,调整和打乱全网节点全网组织节点进行重新选取验证节点并分组,选取验证节点的轮数设置有下限和上限,所述下限为确保区块链交易失效率低于33%的最小轮次,所述上限为根据实际需求配置的可选轮次,所述可选轮次通过设置预言机智能合约进行轮次数选取。
47.所述轮次控制合约内部设置时钟,同时在全网节点中部署验证次数阈值合约和事故控制合约,当区块链系统在共识验证的过程中触发任意三个合约中的任意一个,进行验证节点重组,并检查事故节点,所述事故节点为被监督恶意验证的验证节点;所述验证次数阈值合约记录节点验证次数及验证质量;所述事故控制合约根据所述验证次数阈值合约返回的事故记录选择执行全网验证节点重组的操作。
48.step3:根据所述x的阈值控制合约反馈的结果触发节点控制合约,补足第一组验证节点;
49.step4:获取需要系统验证的数据,第一组验证节点对区块交易进行验证,交易验证通过,第一组验证节点提交账本,并将消息广播到全网;
50.step5:第二组验证节点监督第一组验证节点行为,记录第一组验证节点验证情况;
51.step6:接收到广播的全网节点对区块数据进行同步,同时更新区块链状态数据库,所述状态数据库更新完毕后将验证完成通知发送到全网节点;
52.step7:全网节点接收到验证完成的消息后触发随机数合约,执行第二组验证节点的选取,将第一组验证节点进行监督,同时触发轮次控制合约进行计时;
53.在下一次协同的时候由剩下的n

x个验证节点un

x作为第二组对数据进行验证,由上一组ux进行验证监督,其中所述监督的实现通过第二组验证节点查询验证节点状态,记录正在验证的验证节点是否存在验证无效交易的情况,当某一验证节点验证无效交易的次数超过阈值触发验证次数阈值合约终止验证过程。
54.至此,完成两次多方消息传递协同,上述过程实现多方协同交叉验证机制。
55.其中,
56.所述多方协同交叉验证机制中,为了分组验证节点验证顺序的不可预测性,引入随机数r,n为n个验证节点的数量,当r为奇数则替换第二组验证节点进行验证,所述替换第二组验证节点为没有参与验证的剩余组织节点及其补录的机器验证节点,当r为偶数则保留当前第一组验证节点作为第二组验证节点进行验证,所述随机数r通过随机数合约控制多方协同交叉验证机制的验证节点分组的验证顺序。所述随机数合约执行后,控制本轮次第一组和第二组验证节点验证顺序的执行。
57.step8:第二组验证节点完成验证后,完成一轮次两组多方协同验证过程。
58.其中,
59.基于所述多方协同交叉验证机制中,每组数据验证通过后形成区块链数据索引,将处理完毕的区块链数据索引存入区块链缓存数据库,并将数据验证通过结果广播到全网。
60.实施例2:
61.在另一种实例中,如图2所示,为本发明多方协同交叉验证机制的系统结构图。采用本发明的方案具有提高共识验证效率有利之处。并且,这种方式只是一种较佳实例的说明,但并不局限于此。在实施本发明时,可以根据使用者对于区块链功能的需求改变实施态样。本发明的过程中,涉及到完成本发明的核心组成部件包括区块链缓存数据库、状态数据库、随机数合约、阈值控制合约、节点控制合约、轮次控制合约、验证次数阈值合约以及事故控制合约,且本发明的这些核心组成部件具体实现总结如下:
62.区块链缓存数据库:临时缓存区块链浏览器数据信息,将部分囤积数据转移到链下数据库;
63.区块链状态数据库:存储区块链上链数据的最新信息,同时更新相应的状态信息;
64.随机数合约:用于控制多方协同交叉验证机制的验证节点分组的验证顺序,即用于在全网节点接收到验证完成的消息后,触发随机数合约执行第二组验证节点的选取,即用于控制本轮次第一组和第二组验证节点分组的验证顺序;
65.x的阈值控制合约:使最终通过验证的节点数量为区块链全网组织节点的2/3以上,使得每组参与验证的验证节点的数量大于等于n,差额进行补录节点操作,同时控制所述补录节点的数量;
66.x的阈值控制合约,用于控制x的数值范围;
67.节点控制合约:生成机器验证节点;根据所述阈值控制合约反馈的结果触发节点控制合约,补足第一组验证节点;
68.轮次控制合约:用于在按照一定的轮数随机选取验证节点后,调整和打乱全网节点进行重新选取验证节点并进行分组,其中,选取验证节点的轮数包括下限和上限,所述下限为确保区块链交易失效率低于33%的最小轮次,所述上限为根据实际需求配置的可选轮次;所述轮次控制合约内部设置时钟,用于计时;
69.验证次数阈值合约:记录节点验证次数及验证质量;
70.事故控制合约:事故控制合约根据所述验证次数阈值合约返回的事故记录选择执行全网验证节点重组的操作。
71.具体实施例3:
72.图3示出了本发明一轮两组多方交叉共识验证流程,本发明不仅局限于两组共识验证过程,可根据实际应用场景调整组数,选取验证节点的轮数设置有下限和上限,所述下限为确保区块链交易失效率低于33%的最小轮次,所述上限为根据实际需求配置的可选轮次。本发明选择两组验证过程是适用于大部分区块链应用场景的最优选择,分组数过多可能导致可预测的验证顺序,同时针对海量节点由本发明也可以引申出多轮多组多方交叉共识验证方法。本发明共识验证的具体实现流程包括:
73.s1.验证准备阶段,随机选取x个第一组验证节点,触发x的阈值控制合约和x的阈值控制合约,执行补录操作,使得参与一组验证的总验证节点x落在满足系统此次验证要求的数量范围内;
74.s2.根据所述x的阈值控制合约反馈的结果触发节点控制合约,补足第一组验证节点;
75.s3.第一组验证节点对区块交易进行验证,交易验证通过,第一组验证节点提交账本,并将消息广播到全网;
76.s4.第二组验证节点监督第一组验证节点行为,记录第一组验证节点验证情况;
77.s5.接收到广播的全网节点对区块数据进行同步,同时更新区块链状态数据库,所述状态数据库更新完毕后将验证完成通知发送到全网节点;
78.s6.全网节点接收到验证完成的消息后触发随机数合约,执行第二组验证节点的选取,将第一组验证节点进行监督,同时触发轮次控制合约进行计时;所述轮次控制合约内部设置时钟,同时在全网节点中部署验证次数阈值合约和事故控制合约,当区块链系统在共识验证的过程中触发任意三个合约中的任意一个,进行验证节点重组,并检查事故节点,所述事故节点为被监督恶意验证的验证节点;所述验证次数阈值合约记录节点验证次数及验证质量;所述事故控制合约根据所述验证次数阈值合约返回的事故记录选择执行全网验证节点重组的操作;
79.s7.第二组验证节点完成验证后,完成一轮次两组多方协同验证过程,为了验证节点分组进行验证的顺序不可预测,引入随机数r,当r为奇数则替换第二组验证节点进行验证,所述替换第二组验证节点为没有参与验证的剩余组织节点及其补录的机器验证节点,当r为偶数则保留当前第一组验证节点作为第二组验证节点进行验证,所述随机数r通过随机数合约控制验证节点分组的验证顺序。即所述随机数合约执行后,控制本轮次第一组和第二组验证节点顺序。
80.上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1