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

一种针对Tendermint共识协议的多阶段自动化的形式化验证方法与流程

2021-10-24 07:28:00 来源:中国专利 TAG:共识 形式化 验证 自动化 阶段

一种针对tendermint共识协议的多阶段自动化的形式化验证方法
技术领域
1.本发明涉及一种针对tendermint共识协议的多阶段自动化的形式化验证方法,属于区块链系统的共识安全验证领域。


背景技术:

2.随着区块链技术的广泛应用,区块链的生态变得越来越丰富,随之而来的安全问题也越来越严重。加之区块链技术本身的特点和不足,财务风险和安全问题不断暴露,安全事件不断重复,引发了越来越多的安全事件。共识层作为区块链技术中极为重要的一部分,共识协议的安全性直接影响到整个区块链系统的正常运行。tendermint作为一个易于理解大部分操作为异步的拜占庭容错共识协议,已被广泛应用于区块链系统中,但其安全性尚未得到验证。
3.目前,共识协议的安全性验证研究集中在安全性分析、形式化验证、建模分析等方法。安全性分析通过分析共识协议的机制和流程,从理论的角度探究共识协议是否满足安全要求,但该方法无法保证共识协议中一定不存在安全问题。形式化验证是使用数学的形式方法,证明基于系统的某种形式说明或性质符合协议预期的正确性,但形式化验证在面对状态数目较多的情况时往往需要较高的时间和空间成本。建模分析通过调整模型中的系统参数,从而模拟和分析不同环境下共识协议的各种情况,研究攻击者的攻击代价和攻击收益,并在此基础上设计防御策略,但是建模分析只能模拟共识协议的许多不同情况,而不能完全重现实际系统的情况。因此,通过建模分析只能提出一些共识安全和攻击防御的建议,而不能实现区块链系统的绝对安全,如何快速有效地验证共识协议的安全性和活性,对于保障区块链系统的安全十分重要。因此,迫切的需要一种新的方案解决上述技术问题。


技术实现要素:

4.本发明正是针对现有技术中存在的问题,提供一种针对tendermint共识协议的多阶段自动化的形式化验证方法,该技术方案通过spin工具模拟tendermint共识协议的算法流程,遍历共识过程中所有可能出现的情况,利用线性时序逻辑共识验证tendermint共识协议是否满足特定的安全要求。
5.为了实现上述目的,本发明的技术方案如下,针对tendermint共识协议的多阶段自动化的形式化验证方法,包括如下步骤:
6.步骤1)定义节点的角色并设置相应状态;
7.分析tendermint共识协议,定义节点的不同角色,分别有提案节点和验证节点。验证节点中包含了诚实节点以及拜占庭节点,根据tendermint共识协议的容错率设置诚实节点和拜占庭节点的数量;
8.步骤2)构建tendermint共识模型;
9.根据tendermint共识协议构建模型,模型主要包括三个阶段,分别是预投票阶段、
预提交阶段和提交阶段,设定不同节点在不同阶段会执行相应的操作:
10.a)预投票阶段:令提案节点提出一个提案并发送给其他验证节点,未被锁定的验证节点在收到提案后进行预投票,其中诚实节点会根据提案进行诚实地预投票,而拜占庭节点则会进行不诚实地预投票,每个节点同时会收集其他节点的预投票结果;
11.b)预提交阶段:诚实节点根据自己接收到的预投票情况再次进行投票,倘若收到超过2/3的预投票是肯定票则进行预提交投票,倘若因为网络问题等原因未能收到其他节点的预投票结果,则发送一个空投票给其他节点,而拜占庭节点仍会进行不诚实地投票,每个节点同时会收集其他节点的预提交结果;
12.c)提交阶段:对于每个诚实节点,在接收到的预提交情况进行下一步操作,倘若收到超过2/3的预提交数则进行提交操作,至此一轮共识结束。
13.步骤3)利用spin工具模拟实现tendermint共识协议;
14.通过spin工具模拟实现tendermint共识协议,遍历查看共识过程中所有节点进行不同操作时的所有结果。
15.步骤4)利用线性时序逻辑公式验证安全要求;
16.通过线性时序逻辑公式,验证tendermint共识协议是否满足特定的安全要求,包括一致性和终止性。一致性指所有诚实节点对同一个提案达成共识,终止性则指所有诚实节点最终都会对同一个提案达成共识并终止该轮共识。
17.作为发明的进一步改进,所述步骤2)中进行预提交操作的节点会被锁定在当前提案,直到收到超过2/3的空投票或者该轮共识结束才会被解锁,节点在被锁定时只能对当前提案进行投票,否则即使出现新的提案,该节点也无法对其进行投票。
18.作为发明的进一步改进,所述步骤3)中通过spin工具模拟实现tendermint共识协议是在步骤2)中构建tendermint共识模型的基础上实现的,通过spin工具可以模拟节点之间发送和接收消息,遍历所有可能出现的情况。
19.spin(simple promela interpreter)工具是一种适合于并行系统,尤其是协议一致性的辅助分析检测工具,spin验证工具主要关心的问题是进程之间的信息能否正确的交互,而不是进程内部的具体计算。spin是一个基于计算机科学的“形式化方法”工具,是将先进的理论验证方法应用于大型复杂的软件系统当中的模型检测工具。该工具以promela为输入语言,可以对网络协议设计中的规格的逻辑一致性进行检验,并报告系统中出现的死锁、无效的循环、未定义的接收和标记不完全等情况。
20.作为发明的进一步改进,所述步骤4)中线性时序逻辑是把系统状态变化的可能性看成是所有可能的系统初始状态经历各种可能变化的集合,一条路径所代表的是系统的一次可能的运行情况。spin工具能够对定义的线性时序逻辑公式进行验证,确定协议的正确性。
21.本发明提出了一种针对tendermint共识协议的多阶段自动化的形式化验证方法,主要是通过对tendermint共识协议进行构建模型,利用spin工具遍历不同节点在共识过程中所有可能出现的情况,从而验证tendermint共识协议是否满足特定的安全要求。
22.相对于现有技术,本发明具有如下优点,(1)该技术方案利用形式化方法验证tendermint共识协议,保证验证结果的可靠性。本发明方法通过对tendermint共识协议构建模型,利用spin工具模拟实现,能够完整遍历不同节点在共识过程中出现的全部情况,从
而保证tendermint共识协议符合相应的安全要求。相比于传统的分析和测试方法,本专利能够保证若验证过程未发现错误,则可证明tendermint共识协议一定不存在安全问题;(2)通过spin工具进行验证,提高了验证的自动化程度。本发明方法利用形式化验证中的模型检验方法对tendermint共识协议进行验证,相比于其他的安全验证方法,具有较高的自动化程度。本专利通过定义节点的角色并设置相应状态,然后对tendermint共识协议构建模型,在此基础上利用spin工具即可实现自动化验证;(3)具有较高的可扩展性。本发明方法在对tendermint共识构建模型时,能够较为方便地调整诚实节点和拜占庭节点的数量,以及对投票环节的设置。相比于其他传统方法只能单一地验证某一种共识协议,本专利能够通过简单调整实现对其他基于投票的具有不同容错率的共识协议进行验证,具有较高的可扩展性
附图说明
23.图1是本发明的流程图。
24.图2是tendermint共识模型图。
具体实施方式:
25.为了加深对本发明的理解,下面结合附图对本实施例做详细的说明。
26.实施例1:参见图1、图2,一种针对tendermint共识协议的多阶段自动化的形式化验证方法,所述方法包括以下步骤:
27.步骤1)定义节点的角色并设置相应状态;
28.分析tendermint共识协议,定义节点的不同角色,分别有提案节点和验证节点。验证节点中包含了诚实节点以及拜占庭节点,根据tendermint共识协议的容错率设置诚实节点和拜占庭节点的数量。
29.步骤2)构建tendermint共识模型;
30.根据tendermint共识协议构建模型,模型主要包括三个阶段,分别是预投票阶段、预提交阶段和提交阶段,设定不同节点在不同阶段会执行相应的操作:
31.a)预投票阶段:令提案节点提出一个提案并发送给其他验证节点,未被锁定的验证节点在收到提案后进行预投票,其中诚实节点会根据提案进行诚实地预投票,而拜占庭节点则会随意地进行预投票,每个节点同时会收集其他节点的预投票结果;
32.b)预提交阶段:诚实节点根据自己接收到的预投票情况再次进行投票,倘若收到超过2/3的预投票是肯定票则进行预提交投票,倘若因为网络问题等原因未能收到其他节点的预投票结果,则发送一个空投票给其他节点,而拜占庭节点仍会进行不诚实地投票,每个节点同时会收集其他节点的预提交结果;
33.c)提交阶段:对于每个诚实节点,在接收到的预提交情况进行下一步操作,倘若收到超过2/3的预提交数则进行提交操作,至此一轮共识结束。
34.步骤3)利用spin工具模拟实现tendermint共识协议;
35.通过spin工具模拟实现tendermint共识协议,遍历查看共识过程中所有节点进行不同操作时的所有结果。
36.步骤4)利用线性时序逻辑公式验证安全要求;
37.通过线性时序逻辑公式,验证tendermint共识协议是否满足特定的安全要求,包括一致性和终止性。一致性指所有诚实节点对同一个提案达成共识,终止性则指所有诚实节点最终都会对同一个提案达成共识并终止该轮共识。
38.步骤2)中进行预提交操作的节点会被锁定在当前提案,直到收到超过2/3的空投票或者该轮共识结束才会被解锁,节点在被锁定时只能对当前提案进行投票,否则即使出现新的提案,该节点也无法对其进行投票。
39.步骤3)中通过spin工具模拟实现tendermint共识协议是在步骤2)中构建tendermint共识模型的基础上实现的,通过spin工具可以模拟节点之间发送和接收消息,遍历所有可能出现的情况。
40.spin(simple promela interpreter)工具是一种适合于并行系统,尤其是协议一致性的辅助分析检测工具,spin验证工具主要关心的问题是进程之间的信息能否正确的交互,而不是进程内部的具体计算。spin是一个基于计算机科学的“形式化方法”工具,是将先进的理论验证方法应用于大型复杂的软件系统当中的模型检测工具。该工具以promela为输入语言,可以对网络协议设计中的规格的逻辑一致性进行检验,并报告系统中出现的死锁、无效的循环、未定义的接收和标记不完全等情况。
41.步骤4)中线性时序逻辑是把系统状态变化的可能性看成是所有可能的系统初始状态经历各种可能变化的集合,一条路径所代表的是系统的一次可能的运行情况。spin工具能够对定义的线性时序逻辑公式进行验证,确定协议的正确性。
42.具体实施例:参照图1—图2,按照本发明的一种针对tendermint共识协议的多阶段自动化的形式化验证方法,具体实施过程如下:
43.1)定义节点的角色并设置相应状态;
44.分析tendermint共识协议,定义节点的不同角色,分别有提案节点和验证节点。验证节点中包含了诚实节点以及拜占庭节点,根据tendermint共识协议的容错率设置诚实节点和拜占庭节点的数量。
45.tendermint共识协议在保证安全性和活性的前提下提供(n

1)/3的容错性,其中n为节点总数。为此在本实施例中设置2个提案节点a1和a2,以及4个验证节点,在验证节点中设置3个诚实节点,分别为p1、p2、p3,以及1个拜占庭节点p4。
46.2)构建tendermint共识模型;
47.根据tendermint共识协议构建模型,模型主要包括三个阶段,分别是预投票阶段、预提交阶段和提交阶段,设定不同节点在不同阶段会执行相应的操作,如图2所示。
48.3)利用spin工具模拟实现tendermint共识协议;
49.通过spin工具模拟实现tendermint共识协议,遍历查看共识过程中所有节点进行不同操作时的所有结果。
50.为了实现节点间传递消息,设置相应的消息通道。其中提案节点a1与4个验证节点间共用一个通道q1,提案节点a2与4个验证节点间共用一个通道q2,而4个验证节点间则设置12个通道,记为q
ij
(1≤i≤4,1≤j≤4,i≠j),分别存放节点i发送给节点j的消息。
51.在本实施例中,最初由提案节点a1通过通道q向4个验证节点发送提案x,此时诚实节点和拜占庭节点在收到提案x后进行预投票操作且都投了肯定票,每个节点通过通道q
ij
将各自的投票结果发送给其他节点。
52.诚实节点p1、p2、p3在收到来自其他节点的预投票后,由于肯定票超过了总数的2/3,每个诚实节点在预提交阶段投肯定票,并将投票结果发送给其他节点。而拜占庭节点p4虽然收到的肯定票数也超过了总数的2/3,但其采取不诚实的操作,向其他节点发送否定票,此时所有节点都被锁定在本轮共识中。
53.诚实节点p1收到了两个肯定票和一个否定票,加上自己的肯定票,肯定票数超过了2/3,因此诚实节点p1进行提交操作,p1本轮共识结束并被解除锁定。诚实节点p2、p3由于网络出现问题,未能收到其他节点的预提交结果,因此发送一个空投票,并仍被锁定在本轮共识中。拜占庭节点p4同样发送一个空投票并被锁定在本轮共识中。
54.此时提案节点a2通过消息通道q2发送一个提案y给4个验证节点,诚实节点p1在收到提案y后进行预投票操作。而诚实节点p2、p3以及拜占庭节点p4由于仍被锁定在上一轮共识中,因此仍只能提案x进行预投票。此时诚实节点p2、p3在预投票中投出肯定票,而拜占庭节点p4投出否定票。
55.诚实节点p2收到来自p3的肯定票和来自p4的否定票,加上p1和自己的肯定票,肯定票超过总数的2/3,因此诚实节点p2在预提交阶段继续投肯定票,诚实节点p3同样如此。而拜占庭节点p4则继续投否定票。
56.诚实节点p2收到来自p3的肯定票和来自p4的否定票,加上p1和自己的肯定票,肯定票超过总数的2/3,因此诚实节点p2进行提交操作,诚实节点p3同样如此。至此本轮共识结束,拜占庭节点p4是否采取提交操作不影响共识结果。
57.4)利用线性时序逻辑公式验证安全要求
58.通过线性时序逻辑公式,验证tendermint共识协议是否满足特定的安全要求,包括一致性和终止性。一致性指所有诚实节点对同一个提案达成共识,终止性则指所有诚实节点最终都会对同一个提案达成共识并终止该轮共识。
59.利用线性时序逻辑公式证实,所有城市节点最终都对提案x达成共识,且所有诚实节点最终都能在达成共识后终止该轮共识。
60.需要说明的是上述实施例,并非用来限定本发明的保护范围,在上述技术方案的基础上所作出的等同变换或替代均落入本发明权利要求所保护的范围。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜