基于Event-B方法的区块链PBFT共识算法的形式化建模和安全性验证方法技术

技术编号:27839932 阅读:36 留言:0更新日期:2021-03-30 12:21
本发明专利技术提供一种基于Event

【技术实现步骤摘要】
基于Event

B方法的区块链PBFT共识算法的形式化建模和安全性验证方法


[0001]本专利技术属于区块链安全性建模验证
,具体来说,是一种用Event

B建模验证语言设计一种基于Event

B方法的区块链共识算法安全性的建模与验证的方法。

技术介绍

[0002]目前区块链方面存在基于Event

B方法的安全性验证的研究,但开展的许多研究只针对智能合约,对于区块链上的共识算法,致力于改进和优化共识算法,而缺少对应用于区块链上的共识算法的安全性的形式化验证。
[0003]Event

B作为一种建模与验证的形式化方法,具有严格而精确的数学逻辑和语义。Eclipse集成开发环境下开发的Rodin平台作为Event

B的建模环境,集成了多种模型检测和验证工具,可以从不同视角观察所建模的行为顺序。基于Event

B的形式化验证方法,对区块链底层框架以及P2P网络下的通信机制进行抽象建模,引入具体的PBFT共识算法进行精化,验证PBFT共识算法的功能安全性,并支持所设计的基于区块链共性的抽象模型对不同共识算法的精化以及安全性验证,具有现实意义和良好应用前景。

技术实现思路

[0004]本专利技术解决的问题是:根据区块链底层框架以及PBFT共识算法在区块链上的运行机制分析需求,用Event

B建模平台Rodin实现区块链上的PBFT共识算法,建立不变式表示区块链上PBFT共识算法的安全性质并进行形式化验证。
[0005]本专利技术提出的基于Event

B方法的区块链PBFT共识算法的形式化建模和安全性验证方法包括:
[0006]步骤1:确定实现区块链PBFT共识算法的模型核心元素,包括区块、节点和节点行为类型;
[0007]步骤2:在Event

B模型中对步骤1所述模型核心元素进行声明;
[0008]步骤3:在Event

B模型中定义全局区块链,在Event

B模型的Machine里建立不变式,保证本地区块链的链式无环结构;对全局区块链的操作进行映射,建立抽象模型,在Event

B模型的Machine里建立不变式,保证全局区块链的操作都是由诚实行为的节点完成的;
[0009]步骤4:在Event

B模型中对节点通信机制进行映射,建立抽象模型;其中网络中任意节点都可以发送消息,并且网络中任意节点都最终会接收到其他节点发送的消息;
[0010]步骤5:将步骤3所述全局区块链精化为分布式系统下每个节点的本地区块链;在Event

B模型的Machine里建立不变式,保证本地区块链的链式无环结构,本地区块链与全局虚拟区块链自身具有相同的结构,除了增加区块链结构到节点的映射,表示每个节点具有的本地区块链;
[0011]步骤6:在Event

B模型中引入PBFT共识算法,对本地区块链的操作进行映射,并对
全局区块链操作的前置条件进行精化;在Event

B模型的Machine里建立不变式,保证模型之间的精化关系,并保证每次共识达成时,步骤5所述的每个节点的本地区块链与全局虚拟区块链是一致的;对实现PBFT共识算法的元素进行声明,包括消息、消息接收方与发送方和节点所处阶段,对不同类型的消息的发送与接收建立对应的事件进行映射;
[0012]步骤7:在Event

B模型中引入节点存在的恶意行为,包括篡改消息,对区块错误编号以及不遵守共识算法执行机制的行为;在Event

B模型的Machine里建立不变式,表示存在节点发生恶意行为时,达成共识的主节点仍然是做出诚实行为的节点,验证所实现模型始终具有安全性。
[0013]本专利技术提出的基于Event

B方法的区块链PBFT共识算法的形式化建模和安全性验证方法中,所述步骤2包括以下子步骤:
[0014]步骤21:建立区块集合,区块集合中元素为打包好的包括上传到区块链以及未上传到区块链的区块;建立节点集合,节点集合中元素为参与共识并验证区块正确性的节点,对节点作为常量进行声明;建立类型集合,类型集合中元素为节点的行为类型;
[0015]步骤22:建立区块链结构,定义区块变量,表示已上传到区块链的区块,定义区块结构变量,表示区块之间的连接结构;在Event

B模型的Machine里建立不变式,保证区块链的链式无环结构;定义节点结构常量,在Event

B模型的Context里建立公理,定义节点之间的网络结构,实现节点之间互相通信,节点所在的网络为全连接结构。
[0016]本专利技术提出的基于Event

B方法的区块链PBFT共识算法的形式化建模和安全性验证方法中,所述步骤3包括以下子步骤:
[0017]步骤31:根据节点行为类型是不确定的,定义类型变量,表示当前节点的行为类型;
[0018]步骤32:根据区块链上的区块是不可篡改的,建立对区块链增加区块的事件,在Event

B模型的Machine里建立不变式,保证区块链上的区块都是做出诚实行为的节点上传的。
[0019]本专利技术提出的基于Event

B方法的区块链PBFT共识算法的形式化建模和安全性验证方法中,所述步骤4包括以下子步骤:
[0020]步骤41:建立消息集合,消息集合中元素为节点之间进行通信的消息;
[0021]步骤42:定义消息变量,表示消息发送节点、消息接收节点到消息的映射;
[0022]步骤43:建立发送消息和接收消息的事件。
[0023]本专利技术提出的基于Event

B方法的区块链PBFT共识算法的形式化建模和安全性验证方法中,所述步骤6包括以下子步骤:
[0024]步骤61:建立抽象模型,定义状态变量,表示节点当前所处的状态;节点的行为类型不确定,根据PBFT共识算法的执行条件,在Event

B模型的Machine中建立不变式,保证每次共识产生恶意行为的节点数量不超过做出诚实行为的节点数量的一半;建立新事件,判断当前到达确认状态的节点数量是否满足达成共识的条件;
[0025]步骤62:对本地区块链的操作进行映射,新增本地区块链加区块的事件;对全局区块链操作的前置条件进行精化;在Event

B模型的Machine里建立不变式,保证模型之间的精化关系,以及一次共识完成后全局区块链和本地区块链之间满足的一致性;
[0026]步骤63:定义PBFT共识算法的确认消息变量、准备消息变量和预准备消息变量,根
据模块进行分层精化,建立相应事本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Event

B方法的区块链PBFT共识算法的形式化建模和安全性验证方法,其特征在于,包括:步骤1:确定实现区块链PBFT共识算法的模型核心元素,包括:区块、节点和节点行为类型;步骤2:在Event

B模型中对所述模型核心元素进行声明;步骤3:在Event

B模型中定义全局区块链,在Event

B模型的Machine里建立不变式,保证全局区块链的链式无环结构;对全局区块链的操作进行映射,建立抽象模型,在Event

B模型的Machine里建立不变式,保证全局区块链的操作都是由诚实行为的节点完成的;步骤4:在Event

B模型中对节点通信机制进行映射,建立抽象模型;其中,网络中任意节点都可以发送消息,并且网络中任意节点都最终会接收到其他节点发送的消息;步骤5:将步骤3所述全局区块链精化为分布式系统下每个节点的本地区块链;在Event

B模型的Machine里建立不变式,保证本地区块链的链式无环结构,本地区块链与全局虚拟区块链自身具有相同的结构,除了增加区块链结构到节点的映射,表示每个节点具有的本地区块链;步骤6:在Event

B模型中引入PBFT共识算法,对本地区块链的操作进行映射,并对全局区块链操作的前置条件进行精化;在Event

B模型的Machine里建立不变式,保证模型之间的精化关系,并保证每次共识达成时,步骤5所述的每个节点的本地区块链与全局虚拟区块链是一致的;对实现PBFT共识算法的元素进行声明,包括消息、消息接收方与发送方和节点所处阶段,对不同类型的消息的发送与接收建立对应的事件进行映射;步骤7:在Event

B模型中引入节点存在的恶意行为,包括篡改消息,对区块进行错误编号以及不遵守共识算法执行机制的行为;在Event

B模型的Machine里建立不变式,表示存在节点发生恶意行为时,达成共识的主节点仍然是做出诚实行为的节点,验证所实现的模型始终具有安全性。2.如权利要求1所述的基于Event

B方法的区块链PBFT共识算法的形式化建模和安全性验证方法,其特征在于,所述步骤2包括以下子步骤:步骤21:建立区块集合,区块集合中元素为打包好的包括上传到区块链以及未上传到区块链的区块;建立节点集合,节点集合中元素为参与共识并验证区块正确性的节点,对节点作为常量进行声明;建立类型集合,类...

【专利技术属性】
技术研发人员:冯世玲李钦
申请(专利权)人:华东师范大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1