CN112564972A - 基于Event-B方法的区块链PBFT共识算法的形式化建模和安全性验证方法 - Google Patents
基于Event-B方法的区块链PBFT共识算法的形式化建模和安全性验证方法 Download PDFInfo
- Publication number
- CN112564972A CN112564972A CN202011424640.7A CN202011424640A CN112564972A CN 112564972 A CN112564972 A CN 112564972A CN 202011424640 A CN202011424640 A CN 202011424640A CN 112564972 A CN112564972 A CN 112564972A
- Authority
- CN
- China
- Prior art keywords
- block chain
- event
- node
- model
- establishing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
- G06F16/212—Schema design and management with details for data modelling support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于Event‑B方法的区块链PBFT共识算法的形式化建模和安全性验证方法,根据PBFT共识算法在区块链上的运行机制,用Event‑B建模平台Rodin实现区块链上的PBFT共识算法,对PBFT共识算法的功能安全性进行形式化验证,包括确定模型的核心元素,根据不同元素的结构及性质转换成Event‑B模型的常量和变量,对常量定义相应公理,对变量定义相应不变式保证结构和性质成立;建立抽象模型,将算法执行过程映射为具体事件;按模块进行分层精化,增加不变式对区块链的安全性质进行表示,生成证明义务,验证算法的功能安全性。本发明实现了基于模型精化技术的区块链PBFT共识算法的形式化建模,利用形式化方法对算法的功能安全性进行了验证,并支持不同区块链共识算法的精化验证。
Description
技术领域
本发明属于区块链安全性建模验证技术领域,具体来说,是一种用Event-B建模验证语言设计一种基于Event-B方法的区块链共识算法安全性的建模与验证的方法。
背景技术
目前区块链方面存在基于Event-B方法的安全性验证的研究,但开展的许多研究只针对智能合约,对于区块链上的共识算法,致力于改进和优化共识算法,而缺少对应用于区块链上的共识算法的安全性的形式化验证。
Event-B作为一种建模与验证的形式化方法,具有严格而精确的数学逻辑和语义。Eclipse集成开发环境下开发的Rodin平台作为Event-B的建模环境,集成了多种模型检测和验证工具,可以从不同视角观察所建模的行为顺序。基于Event-B的形式化验证方法,对区块链底层框架以及P2P网络下的通信机制进行抽象建模,引入具体的PBFT共识算法进行精化,验证PBFT共识算法的功能安全性,并支持所设计的基于区块链共性的抽象模型对不同共识算法的精化以及安全性验证,具有现实意义和良好应用前景。
发明内容
本发明解决的问题是:根据区块链底层框架以及PBFT共识算法在区块链上的运行机制分析需求,用Event-B建模平台Rodin实现区块链上的PBFT共识算法,建立不变式表示区块链上PBFT共识算法的安全性质并进行形式化验证。
本发明提出的基于Event-B方法的区块链PBFT共识算法的形式化建模和安全性验证方法包括:
步骤1:确定实现区块链PBFT共识算法的模型核心元素,包括区块、节点和节点行为类型;
步骤2:在Event-B模型中对步骤1所述模型核心元素进行声明;
步骤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里建立不变式,表示存在节点发生恶意行为时,达成共识的主节点仍然是做出诚实行为的节点,验证所实现模型始终具有安全性。
本发明提出的基于Event-B方法的区块链PBFT共识算法的形式化建模和安全性验证方法中,所述步骤2包括以下子步骤:
步骤21:建立区块集合,区块集合中元素为打包好的包括上传到区块链以及未上传到区块链的区块;建立节点集合,节点集合中元素为参与共识并验证区块正确性的节点,对节点作为常量进行声明;建立类型集合,类型集合中元素为节点的行为类型;
步骤22:建立区块链结构,定义区块变量,表示已上传到区块链的区块,定义区块结构变量,表示区块之间的连接结构;在Event-B模型的Machine里建立不变式,保证区块链的链式无环结构;定义节点结构常量,在Event-B模型的Context里建立公理,定义节点之间的网络结构,实现节点之间互相通信,节点所在的网络为全连接结构。
本发明提出的基于Event-B方法的区块链PBFT共识算法的形式化建模和安全性验证方法中,所述步骤3包括以下子步骤:
步骤31:根据节点行为类型是不确定的,定义类型变量,表示当前节点的行为类型;
步骤32:根据区块链上的区块是不可篡改的,建立对区块链增加区块的事件,在Event-B模型的Machine里建立不变式,保证区块链上的区块都是做出诚实行为的节点上传的。
本发明提出的基于Event-B方法的区块链PBFT共识算法的形式化建模和安全性验证方法中,所述步骤4包括以下子步骤:
步骤41:建立消息集合,消息集合中元素为节点之间进行通信的消息;
步骤42:定义消息变量,表示消息发送节点、消息接收节点到消息的映射;
步骤43:建立发送消息和接收消息的事件。
本发明提出的基于Event-B方法的区块链PBFT共识算法的形式化建模和安全性验证方法中,所述步骤6包括以下子步骤:
步骤61:建立抽象模型,定义状态变量,表示节点当前所处的状态;节点的行为类型不确定,根据PBFT共识算法的执行条件,在Event-B模型的Machine中建立不变式,保证每次共识产生恶意行为的节点数量不超过做出诚实行为的节点数量的一半;建立新事件,判断当前到达确认状态的节点数量是否满足达成共识的条件;
步骤62:对本地区块链的操作进行映射,新增本地区块链加区块的事件;对全局区块链操作的前置条件进行精化;在Event-B模型的Machine里建立不变式,保证模型之间的精化关系,以及一次共识完成后全局区块链和本地区块链之间满足的一致性;
步骤63:定义PBFT共识算法的确认消息变量、准备消息变量和预准备消息变量,根据模块进行分层精化,建立相应事件对不同消息类型的发送接收进行映射,对消息接收到节点状态的切换进行映射;
步骤64:对网络中进行通信的消息结构进行精化,对区块结构进行精化;将节点对不同类型的消息进行发送和接收的判断条件进行加强。
本发明的有益效果包括:本发明成功地建立了区块链共性的底层框架及PBFT共识算法的执行环境模型,将所要验证区块链的结构和安全性质用不变式表示出来,通过生成的证明义务证明了PBFT共识算法在区块链环境下的功能安全性。该模型支持基于区块链共性的抽象模型对不同的共识算法的形式化精化建模与验证,具有一定的扩展性。解决了区块链共识算法尚未通过形式化验证的问题,为共识算法在区块链上的高效安全运行提供了保障。
附图说明
图1是本发明的基于Event-B方法的区块链PBFT共识算法的形式化建模和安全性验证方法的结构示意图。
图2是本发明的基于Event-B方法的区块链PBFT共识算法的形式化建模和安全性验证方法的整体流程图。
图3是本发明的基于Event-B方法的区块链PBFT共识算法的形式化建模和安全性验证方法中PBFT共识算法的具体执行流程图。
图4是本发明的基于Event-B方法的区块链PBFT共识算法的形式化建模和安全性验证方法中PBFT共识算法的建模精化流程图。
具体实施方式
为使本发明实施的目的以及技术方案更加清晰,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行更加详细的阐述。所描述的实施例是本发明的部分实施例,而不是全部的实施例。下面描述的实施例是示例性的,而不能理解为对本发明的限制。
本发明提供一种基于Event-B方法的区块链PBFT共识算法的形式化建模和安全性验证方法,本发明根据PBFT共识算法在区块链上的运行机制,用Event-B建模平台Rodin实现区块链上的PBFT共识算法,并对PBFT共识算法的功能安全性进行形式化验证,包括:确定模型的核心元素,根据不同元素的结构及性质转换成Event-B模型的常量和变量,对常量定义相应公理,对变量定义相应不变式保证结构和性质的成立;建立抽象模型,将算法执行过程映射为具体事件;按模块进行分层精化,并增加不变式对区块链的安全性质进行表示,生成证明义务,验证算法的功能安全性。本发明实现了基于模型精化技术的区块链PBFT共识算法的形式化建模,利用形式化方法对算法的功能安全性进行了验证,并支持不同区块链共识算法的精化验证。
本发明提出的基于Event-B方法的区块链PBFT共识算法的形式化建模和安全性验证方法,整体流程图如图2所示,包括以下步骤:
步骤1:确定实现区块链PBFT共识算法的模型核心元素。将区块链PBFT共识算法转化成Event-B模型,包括以下元素:区块,包含主节点打包并预上传到区块链的交易信息;节点,区块链下的网络结构为P2P网络,网络中的节点参与并对通信的区块进行正确性验证;节点行为类型,模型包含诚实行为和恶意行为,PBFT共识算法可以容忍1/3的恶意节点作恶。
步骤2:在Event-B模型中对模型核心元素进行声明。建立区块集合Block,区块集合中元素为打包好的包括上传到区块链以及未上传到区块链的区块;建立节点集合nodes,节点集合中元素为参与共识并验证区块正确性的节点,对节点作为常量进行声明,并定义数量常量quantity,表示节点的数量;建立类型集合Type,类型集合中元素为节点的行为类型,声明常量honest和malicious作为行为类型。建立区块链结构,定义区块变量block,表示已上传到区块链的区块,声明区块变量定义区块结构变量rl,表示区块之间的连接关系,在Event-B模型的Machine里建立不变式,保证区块链的链式无环结构;定义节点结构常量g,在Event-B模型的Context里建立公理,定义节点之间的网络结构,实现节点之间互相通信,节点所在的网络为全连接结构。
步骤3:在Event-B模型中对全局区块链的操作进行映射,建立抽象模型。根据节点行为类型是不确定的,定义类型变量type,表示当前节点的行为类型,声明类型变量type∈Type;根据区块链上的区块是不可篡改的,只建立对区块链加区块的事件,区块链操作的映射规则为:声明事件参数node,当判定条件变量type(node)为honest时,执行在全局区块链的链尾增加区块的操作,并将该区块与上传该区块的节点类型建立映射,其中将前置条件在事件的触发条件guards中声明,将后置条件在事件的动作actions中声明,并建立不变式保证区块链上的区块都是做出诚实行为的节点上传的;声明相应变式,必要时声明辅助变量,对新事件的收敛性进行验证。
步骤4:在Event-B模型中对节点通信机制进行映射,建立一个抽象模型;建立消息集合Message,消息集合中元素为节点之间进行通信的消息;定义消息变量msg,表示消息发送节点、消息接收节点到消息Message的映射;建立发送消息的事件,节点发送消息的映射规则为:网络中的任意节点都可以向其他节点发送消息;建立接收消息的事件,节点接收消息的映射规则为:网络中的任意节点都最终能收到其他节点发送的消息,其中将前置条件在事件的触发条件guards中声明,将后置条件在事件的动作actions中声明;声明相应变式,必要时声明辅助变量,对新事件的收敛性进行验证。
步骤5:将全局区块链精化为分布式系统下每个节点的本地区块链;定义区块变量local block,表示每个节点维护的区块,并定义区块结构变量local rl,表示每个节点维护的区块之间的连接结构;定义在Event-B模型的Machine里建立不变式,保证本地区块链的链式无环结构始终满足;本地区块链与全局虚拟区块链自身具有相同的结构,除了增加区块链结构到节点的映射,表示每个节点维护的本地区块链。
步骤6:在Event-B模型中引入PBFT共识算法,对本地区块链的操作进行映射,并对全局区块链操作的前置条件进行精化;在Event-B模型的Machine里建立不变式,保证模型之间的精化关系,以及一次共识完成后全局区块链和本地区块链之间满足的一致性。对实现PBFT共识算法的元素进行声明,包括消息、消息接收方与发送方和节点所处阶段,根据图3所示的有关PBFT共识算法的具体执行流程,对不同类型的消息的发送与接收建立对应的事件进行映射;并声明相应变式,必要时声明辅助变量,对新事件的收敛性进行验证。具体包括以下步骤:
建立抽象模型,定义状态变量state,表示节点当前所处的状态;节点的行为类型不确定,产生恶意行为的节点满足一定的数量限制,根据PBFT共识算法的执行条件,在Event-B模型的Machine中建立不变式,保证每次共识产生恶意行为的节点数量maliciousnumber和做出诚实行为的节点数量honest number满足:honest number≥2*maliciousnumber+1;建立新事件,判断当前到达确认状态的节点数量是否满足达成共识的条件,将该前置条件在事件的触发条件guards中声明;
由PBFT共识算法的引入,对本地区块链的操作进行映射,新增本地区块链加区块的事件,其中当该节点接收到满足达成共识条件的确认消息的数量时,节点达成共识并接受区块消息,执行在该节点的本地区块链链尾增加区块的操作;对原全局区块链的事件进行精化,将到达确认状态的节点数量是否满足达成共识的数量条件作为判断打包区块的节点是否是做出诚实行为的节点的依据,将该前置条件在事件的触发条件guard中声明,建立不变式,保证精化后的模型与原抽象模型满足精化关系;并建立不变式,保证在每次共识达成时,每个节点的本地区块链与虚拟的全局区块链是一致的;
按序定义PBFT共识算法的确认消息变量commit message、准备消息变量preparemessage和选取的主节点发送的预准备消息变量pre-prepare message,声明消息变量作为msg的子集,并根据消息模块进行分层精化,建立相应事件,对不同消息类型的发送与接受进行映射,以及对消息接收到节点状态的切换进行映射,图4所示是具体的精化流程,包括以下步骤:
定义PBFT共识算法的确认消息变量commit message,声明定义变量s_commit_r,表示确认消息发送方与接收方,用以记录每次通信时每个节点所接受的确认消息的数量,作为判断节点由准备状态切换为确认状态的条件;首先对确认消息的发送与接受操作进行抽象层次的映射,并建立节点接受区块信息的事件,节点接受区块信息的映射规则为:当节点接收的确认消息数量count(commit message)满足count(commit message)≥2*malicious number时,该节点由准备状态切换为确认状态;
定义PBFT共识算法的准备消息变量prepare message,声明定义变量s_prepare_r,表示准备消息发送方与接收方,用以记录每次通信时每个节点所接受的准备消息的数量,作为判断节点由预准备状态切换为准备状态的条件;首先对准备消息的发送与接受操作进行抽象层次的映射,并对确认消息的发送操作进行精化,发送确认消息的映射规则为:当节点接受的准备消息的数量count(preparemessage)满足count(prepare message)≥2*malicious number时,该节点向网络中其他节点发送准备消息;
定义PBFT共识算法的预准备消息变量pre-prepare message,声明 首先对预准备消息的发送与接受操作进行抽象层次的映射,并对准备消息的发送操作进行精化,发送准备消息的映射规则为:当节点接受主节点发送的预准备消息,该节点将区块信息进行备份并向网络中其他节点发送准备消息,其中将节点是否将区块信息进行存储作为该节点是否接受主节点发送的预准备消息的抽象层次上的判断条件;
定义编号常量num,表示每个节点的编号,定义视图变量view,表示当前的视图,从而建立视图切换的事件,并引入主节点的选取机制,主节点编号num(primary)根据公式num(primary)=view mod quantity进行选取;对预准备消息的发送操作进行精化,发送预准备消息的映射规则为:当节点是当前视图所选取的主节点时,该节点执行打包区块并发送预准备消息的操作;
对消息结构和区块结构进行精化,表示出消息和区块所包含的更多元素细节,包括消息的哈希摘要hash,消息编号no以及区块包含的交易信息transaction;将有关节点对不同消息进行接收的抽象事件的判断条件引入更细节的变量,在相应事件的guards中进行声明,对相应事件进行精化,其中引入的前置条件guards包括:消息哈希摘要的一致性判断消息是否篡改,消息编号是否在合理的水线范围内,以及区块中的交易信息是否一致。最终完成PBFT共识算法的完整执行过程的建模。
步骤7:在Event-B模型中引入节点存在的恶意行为,包括篡改消息,对区块错误编号,以及不遵守共识算法执行机制的行为,其中包括对消息进行不合理的编号,建立新事件分别对上述恶意行为进行映射;在Event-B模型的Machine里建立不变式,表示存在节点发生恶意行为时,达成共识的主节点仍然是做出诚实行为的节点,验证所实现模型始终具有安全性;声明相应变式,必要时声明辅助变量,对新事件的收敛性进行验证。在实现模型的最后,为精化后的每层模型生成对应证明义务,验证模型的无死锁性。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
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:建立区块集合,区块集合中元素为打包好的包括上传到区块链以及未上传到区块链的区块;建立节点集合,节点集合中元素为参与共识并验证区块正确性的节点,对节点作为常量进行声明;建立类型集合,类型集合中元素为节点的行为类型;
步骤22:建立区块链结构,定义区块变量,表示已上传到区块链的区块,定义区块结构变量,表示区块之间的连接结构;在Event-B模型的Machine里建立不变式,保证区块链的链式无环结构;定义节点结构常量,在Event-B模型的Context里建立公理,定义节点之间的网络结构,实现节点之间互相通信,节点所在的网络为全连接结构。
3.如权利要求1所述的基于Event-B方法的区块链PBFT共识算法的形式化建模和安全性验证方法,其特征在于,所述步骤3包括以下子步骤:
步骤31:根据节点行为类型是不确定的,定义类型变量,表示当前节点的行为类型;
步骤32:根据区块链上的区块是不可篡改的,建立对区块链增加区块的事件,在Event-B模型的Machine里建立不变式,保证区块链上的区块都是做出诚实行为的节点上传的。
4.如权利要求1所述的基于Event-B方法的区块链PBFT共识算法的形式化建模和安全性验证方法,其特征在于,所述步骤4包括以下子步骤:
步骤41:建立消息集合,消息集合中元素为节点之间进行通信的消息;
步骤42:定义消息变量,表示消息发送节点、消息接收节点到消息的映射;
步骤43:建立发送消息和接收消息的事件。
5.如权利要求1所述的基于Event-B方法的区块链PBFT共识算法的形式化建模和安全性验证方法,其特征在于,所述步骤6包括以下子步骤:
步骤61:建立抽象模型,定义状态变量,表示节点当前所处的状态;节点的行为类型不确定,根据PBFT共识算法的执行条件,在Event-B模型的Machine中建立不变式,保证每次共识产生恶意行为的节点数量不超过做出诚实行为的节点数量的一半;建立新事件,判断当前到达确认状态的节点数量是否满足达成共识的条件;
步骤62:对本地区块链的操作进行映射,新增本地区块链加区块的事件;对全局区块链操作的前置条件进行精化;在Event-B模型的Machine里建立不变式,保证模型之间的精化关系,以及一次共识完成后全局区块链和本地区块链之间满足的一致性;
步骤63:定义PBFT共识算法的确认消息变量、准备消息变量和预准备消息变量,根据模块进行分层精化,建立相应事件对不同消息类型的发送接收进行映射,对消息接收到节点状态的切换进行映射;
步骤64:对网络中进行通信的消息结构进行精化,对区块结构进行精化;将节点对不同类型的消息进行发送和接收的判断条件进行加强。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011424640.7A CN112564972B (zh) | 2020-12-09 | 2020-12-09 | 基于Event-B方法的区块链PBFT共识算法的形式化建模和安全性验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011424640.7A CN112564972B (zh) | 2020-12-09 | 2020-12-09 | 基于Event-B方法的区块链PBFT共识算法的形式化建模和安全性验证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112564972A true CN112564972A (zh) | 2021-03-26 |
CN112564972B CN112564972B (zh) | 2022-04-05 |
Family
ID=75059753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011424640.7A Active CN112564972B (zh) | 2020-12-09 | 2020-12-09 | 基于Event-B方法的区块链PBFT共识算法的形式化建模和安全性验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112564972B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109088741A (zh) * | 2017-06-14 | 2018-12-25 | 北京航空航天大学 | 一种区块链系统形式化建模与验证方法 |
CN109936457A (zh) * | 2019-02-20 | 2019-06-25 | 深圳前海微众银行股份有限公司 | 区块链多方见证方法、装置、设备及计算机可读存储介质 |
CN110543407A (zh) * | 2019-08-21 | 2019-12-06 | 杭州趣链科技有限公司 | 一种Solidity智能合约性能静态分析方法 |
US20200220770A1 (en) * | 2019-01-07 | 2020-07-09 | International Business Machines Corporation | Blockchain endorsement verification |
WO2020186901A1 (zh) * | 2019-03-19 | 2020-09-24 | 阿里巴巴集团控股有限公司 | 基于区块链的数据核对系统、方法、计算设备及存储介质 |
-
2020
- 2020-12-09 CN CN202011424640.7A patent/CN112564972B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109088741A (zh) * | 2017-06-14 | 2018-12-25 | 北京航空航天大学 | 一种区块链系统形式化建模与验证方法 |
US20200220770A1 (en) * | 2019-01-07 | 2020-07-09 | International Business Machines Corporation | Blockchain endorsement verification |
CN109936457A (zh) * | 2019-02-20 | 2019-06-25 | 深圳前海微众银行股份有限公司 | 区块链多方见证方法、装置、设备及计算机可读存储介质 |
WO2020186901A1 (zh) * | 2019-03-19 | 2020-09-24 | 阿里巴巴集团控股有限公司 | 基于区块链的数据核对系统、方法、计算设备及存储介质 |
CN110543407A (zh) * | 2019-08-21 | 2019-12-06 | 杭州趣链科技有限公司 | 一种Solidity智能合约性能静态分析方法 |
Non-Patent Citations (1)
Title |
---|
王群: "区块链原理及关键技术", 《计算机科学与探索》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112564972B (zh) | 2022-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Pîrlea et al. | Mechanising blockchain consensus | |
CN112488679B (zh) | 一种区块链的跨链合约解析方法、中继链及跨链系统 | |
CN111311255B (zh) | 一种基于预言机的智能合约形式化验证和纠错方法 | |
CN103488568B (zh) | 一种嵌入式软件可信属性建模与验证方法 | |
CN109088741B (zh) | 一种区块链系统形式化建模与验证方法 | |
Chou et al. | Understanding and verifying distributed algorithms using stratified decomposition | |
Chen et al. | A review of automated formal verification of ad hoc routing protocols for wireless sensor networks | |
CN107092491A (zh) | 一种配置加载方法和系统 | |
Duan et al. | Formal modeling and verification of blockchain system | |
Hentschel et al. | Flow: Separating Consensus and Compute--Execution Verification | |
CN112564972B (zh) | 基于Event-B方法的区块链PBFT共识算法的形式化建模和安全性验证方法 | |
Deng et al. | A framework for verifying data-centric protocols | |
CN116938523A (zh) | 区块链系统、运行方法、电子设备和存储介质 | |
Purushothaman et al. | Reasoning about probabilistic behavior in concurrent systems | |
Kalim et al. | Kaizen: Building a performant blockchain system verified for consensus and integrity | |
CN114298842A (zh) | 应用于区块链的dapp的状态数据的管理方法及装置 | |
CN112015373B (zh) | 一种基于形式化方法的内生安全应用软件形式建模方法 | |
CN114500347A (zh) | 一种对安全互联协议进行形式化验证的方法和系统 | |
Carchiolo et al. | ECCS and LIPS: Two languages for OSI systems specification and verification | |
CN114692221A (zh) | 提案投票方法 | |
Ji et al. | Research on model checking technology of UML | |
Li et al. | Towards the attacker's view of protocol narrations (or, how to compile security protocols) | |
CN114168680B (zh) | 基于智能合约的知识推理方法 | |
Meng et al. | Automatic Generation of Security Protocol Implementations Written in Java from Abstract Specifications Proved in the Computational Model. | |
CN117574320B (zh) | 数据处理方法、装置、计算机可读介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |