一种区块链平台交易的形式化建模与验证方法技术

技术编号:36297307 阅读:16 留言:0更新日期:2023-01-13 10:12
本发明专利技术公开了一种区块链平台交易的形式化建模与验证方法,对区块链交易场景中的客户端与智能合约建立通用的形式化模型,提取交易过程中必须满足的性质并转化为线性时态逻辑表达式,然后运用模型检测工具对模型仿真以及对线性时态逻辑表达式描述的性质进行形式化验证,旨在通过形式化分析与验证加强区块链商品交易的可信性。本发明专利技术具体提出了区块链交易场景中各交易实体的通用模型及转移系统,将提出的方法运用到一个基于区块链特定场景的交易案例,在构建出包括区块链在内的各交易实体的状态机模型后,运用模型检测的方法对抽象出的交易行为的安全性质进行验证。的交易行为的安全性质进行验证。的交易行为的安全性质进行验证。

【技术实现步骤摘要】
一种区块链平台交易的形式化建模与验证方法


[0001]本专利技术属于区块链信息安全
,涉及一种区块链平台交易的形式化建模与验证方法,对区块链交易场景的正确性进行形式化验证。

技术介绍

[0002]智能合约是区块链技术的一个巨大进步,通过引入智能合约,区块链从最初单一的加密数字货币应用融入到社会生产生活的各个领域。由于区块链不可篡改的特性,所有的交易记录一旦生成便不可修改,这使得智能合约在部署到区块链前确保其正确性就显得尤为重要。通常情况下智能合约必须满足两个条件才能获得用户的信任:首先智能合约是一段可执行的代码,它不应该有任何的语法错误和语义错误;同时智能合约对于安全性有着更高的要求,它在与客户端实际交易的过程中应当按照参与者先前达成的协议有效执行,具备一定的功能准确性。当前,已经有很多方法和工具被提出用来解决智能合约的安全问题,但是多数方法与工具很少在智能合约与客户端交互的具体场景下验证整个交易过程的安全性。

技术实现思路

[0003]为了解决现有技术存在的不足,本专利技术的目的是提出了一种区块链平台交易的形式化建模与验证方法,将形式化的方法运用到区块链商品交易中,以验证在基于智能合约的场景下交易的安全性与正确性是否得到保障。
[0004]本专利技术的核心思想在于首先提出了区块链交易场景中各交易实体的转移系统,通过转移系统可构建出各交易实体的通用模型。然后将该方法运用到一个具体的区块链商品交易实例中,构建出了包括区块链在内的各交易实体的模型。此外,通过将时间离散化表示让模型具有了时间特性。最后,本专利技术构建了该交易实例的PROMELA模型,并通过SPIN模型检查器对交易过程进行仿真以及验证一些性质,包括死锁、不变性、安全性和活性。
[0005]本专利技术提出了一种区块链平台交易的形式化建模与验证方法,包括:
[0006]步骤一:从区块链交易场景中抽象出交易规范,所述区块链的交易场景由客户端与智能合约端组成,客户端与智能合约端之间的交互可分为初始化、响应、交易与终止四个阶段;
[0007]步骤二:根据步骤一的交易规范分别对区块链交易场景中的客户端与智能合约端构建通用的形式化模型;
[0008]步骤三:针对具体的区块链交易场景找到客户端与智能合约端等主体,根据步骤一分析各主体间的交互行为,并利用步骤二的建模思想对交易场景中的各主体构建有限状态机模型;
[0009]步骤四:运用Promela系统描述语言对步骤三中各主体的状态机模型进行代码实现;
[0010]步骤五:从已知正确的区块链交易场景规范中提取自然语言性质,并将自然语言
性质转换为线性时态逻辑LTL表达式;
[0011]步骤六:基于步骤四代码实现的状态机模型,使用SPIN模型检测工具对交易场景中各主体的交互过程进行模拟仿真,并对步骤五的LTL表达式进行验证,若模型满足LTL表达式描述的性质,SPIN提示无任何错误,证明模型与该交易场景是正确的;若模型不满足LTL表达式描述的性质,SPIN会产生一个反例;
[0012]步骤七:若步骤六的验证结果产生一个反例,检查出现问题的性质是否有误,有误则回到步骤五检查性质的转换;无误则检查模型构建是否有错,若模型有错则回到步骤三修改或重新构建有限状态机模型,若模型无错则模型对应的区块链交易场景存在安全隐患。
[0013]本专利技术提出的区块链平台交易的形式化建模与验证方法中,所述步骤一的抽象交易规范中客户端与智能合约端的四阶段交互包括以下步骤:
[0014]步骤A1:在初始阶段,客户端和智能合约端分别初始化来准备交易;
[0015]步骤A2:在智能合约端的响应阶段,智能合约端会等待接受外部条件的触发,客户端通过触发合约内部的预置响应规则,使得智能合约端按照预设逻辑,执行相应的行为动作;
[0016]步骤A3:客户端和智能合约端进入到交易阶段,在交易过程中,客户端仍需按照智能合约中的协议条款进行操作,若客户端违背了交易条件,则智能合约端拒绝与客户端继续交易,双方进入到终止阶段;若客户端按照合约条款执行操作,则交易最终会顺利完成。待交易结束后,客户端和智能合约端会回到初始阶段。
[0017]本专利技术提出的区块链平台交易的形式化建模与验证方法中,步骤二中,客户端和智能合约端的通用形式化模型包分别如下:
[0018]客户端模型可采用四元组C
m
=(S1,∑1,δ1,I1)表示。S1表示客户端在模型中的状态集合,S1={start,wait,trade},其中start表示初始状态,wait表示客户端在触发智能合约内部的响应规则后,等待合约的反馈,若智能合约响应,则进入交易阶段,否则直接进入终止状态;trade表示客户端成功满足智能合约中的响应条件,双方进行交易。∑1表示动作的集合,∑1={ch,succeed,fail,end},其中ch表示通信动作,succeed表示智能合约响应成功动作,fail表示智能合约响应失败动作,end表示交易结束动作。客户端的初始状态集合I1={start},start表示初始状态;δ1表示转移关系;
[0019]智能合约端模型可采用四元组SC
m
=(S2,∑2,δ2,I2)表示。S2表示智能合约端在模型中的状态集合,S2={idle,judge,execute},其中idle表示智能合约端的初始状态,judge表示智能合约端判断客户端是否触发了交易的响应规则,若成功触发并响应,双方进入交易阶段,否则进入终止阶段,execute表示在响应后,智能合约自动执行合约内容与客户端进行交易;∑2表示动作集合,∑2={ch,succeed,fail,end},其中ch表示通信动作,succeed表示客户端成功触发响应规则动作,fail表示客户端触发响应规则失败动作,end表示交易结束动作;初始状态集合I2={idle},idle表示智能合约端的初始状态;δ2表示转移关系的集合。
[0020]本专利技术提出的区块链平台交易的形式化建模与验证方法中,所述步骤三剥离客户端与智能合约端主体并对各主体构建有限状态机模型包括以下步骤:
[0021]步骤B1:在具体的区块链交易场景中找到客户端主体与智能合约端主体;
[0022]步骤B2:根据步骤A1~A3整理各主体之间的交互行为;
[0023]步骤B3:根据步骤二中客户端和智能合约端的通用形式化模型和B2的交互行为对各客户端主体、智能合约端主体构建有限状态机模型。
[0024]本专利技术提出的区块链平台交易的形式化建模与验证方法中,所述步骤四运用Promela系统描述语言对各主体的状态机模型进行代码实现的关键操作包括以下步骤:
[0025]步骤C1:状态声明,状态机中的每个状态都被定义为mtype类型,表示状态机当前状态的变量也被定义为mtype类型;
[0026]步骤C2:通道声明,各进程间通过通道实现消息的发送和接收,通道都被声明为channel变量,状态机中交互的消息都被定义成mtype类型本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链平台交易的形式化建模与验证方法,其特征在于,包括以下步骤:步骤一:从区块链交易场景中抽象出交易规范,所述区块链的交易场景由客户端与智能合约端组成,客户端与智能合约端之间的交互分为初始化、响应、交易与终止四个阶段;步骤二:根据步骤一的交易规范分别对区块链交易场景中的客户端与智能合约端构建通用的形式化模型;步骤三:针对具体的区块链交易场景找到包括客户端与智能合约端在内的主体,分析各主体间的交互行为,并对各主体构建有限状态机模型;步骤四:运用Promela系统描述语言对步骤三中各主体的状态机模型进行代码实现;步骤五:从已知正确的区块链交易场景规范中提取自然语言性质,并将自然语言性质转换为线性时态逻辑LTL表达式;步骤六:基于步骤四代码实现的状态机模型,使用SPIN模型检测工具对交易场景中各主体的交互过程进行模拟仿真,并对步骤五的LTL表达式进行验证,若模型满足LTL表达式描述的性质,SPIN模型检测工具提示无任何错误,证明模型与该交易场景是正确的;若状态机模型不满足LTL表达式描述的性质,SPIN模型检测工具将产生一个反例;步骤七:若步骤六的验证结果产生一个反例,检查出现问题的性质是否有误,有误则回到步骤五检查性质的转换;无误则检查状态机模型构建是否有错,若状态机模型有错则回到步骤三修改或重新构建有限状态机模型,若状态机模型无错则模型对应的区块链交易场景存在安全隐患。2.如权利要求1所述的区块链平台交易的形式化建模与验证方法,其特征在于,所述步骤一的抽象交易规范中客户端与智能合约端的四阶段交互包括以下步骤:步骤A1:在初始阶段,客户端和智能合约端分别初始化来准备交易;步骤A2:在智能合约端的响应阶段,智能合约端会等待接受外部条件的触发,客户端通过触发合约内部的预置响应规则,使得智能合约端按照预设逻辑,执行相应的行为动作;步骤A3:客户端和智能合约端进入到交易阶段,在交易过程中,客户端仍需按照智能合约中的协议条款进行操作,若客户端违背了交易条件,则智能合约端拒绝与客户端继续交易,双方进入到终止阶段;若客户端按照合约条款执行操作,则交易最终会顺利完成;待交易结束后,客户端和智能合约端会回到初始阶段。3.如权利要求1所述的区块链平台交易的形式化建模与验证方法,其特征在于,步骤二中,客户端和智能合约端的通用形式化模型分别如下:客户端模型采用四元组C
m
=(S1,∑1,δ1,I1)表示;S1表示状态集合,S1={start,wait,trade},其中start表示初始状态,wait表示客户端在触发智能合约内部的响应规则后,等待合约的反馈,若智能合约响应,则进入交易阶段,否则直接进入终止状态;trade表示客户端成功满足智能合约中的响应条件,双方进行交易;∑1表示动作的集合,∑1={ch,succeed,fail,end},其中ch表示通信动作,succeed表示智能合约响应成功动作,fail表示智能合约响应失败动作,end表示交易结束动作;客户端的初始状态集合I1={start},start表示初始状态;δ1表示转移关系;智能合约端模型采用四元组SC
m
=(S2,∑2,δ2,I2)表示;S2表示状态集,S2={idle,judge,execute},其中idle表示智能合约端的初始状态,judge表示智能合约端判断客户端是否触发了交易的响应规则,若成功触发并响应,双方进入交易阶段,否则进入终止阶段,execute表示在响应后,智能合约自动执行合约内容与客
户端进行交易;∑2表示动作集合,∑2={ch,succeed,fail,end},其中ch表示通信动作,succeed表示客户端成功触发响应规则动作,fail表示客户端触发响应规则失败动作,end表示交易结束动作;初始状态集合I2={idle},idle表示智能合约端的初始状态;δ2表示转移关系的集合。4.如权利要求2所述的区块链平台交易的形式化建...

【专利技术属性】
技术研发人员:郭建戴美怡杨哲蒲戈光
申请(专利权)人:上海工业控制安全创新科技有限公司
类型:发明
国别省市:

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

1