【技术实现步骤摘要】
一种区块链平台交易的形式化建模与验证方法
[0001]本专利技术属于区块链信息安全
,涉及一种区块链平台交易的形式化建模与验证方法,对区块链交易场景的正确性进行形式化验证。
技术介绍
[0002]智能合约是区块链技术的一个巨大进步,通过引入智能合约,区块链从最初单一的加密数字货币应用融入到社会生产生活的各个领域。由于区块链不可篡改的特性,所有的交易记录一旦生成便不可修改,这使得智能合约在部署到区块链前确保其正确性就显得尤为重要。通常情况下智能合约必须满足两个条件才能获得用户的信任:首先智能合约是一段可执行的代码,它不应该有任何的语法错误和语义错误;同时智能合约对于安全性有着更高的要求,它在与客户端实际交易的过程中应当按照参与者先前达成的协议有效执行,具备一定的功能准确性。当前,已经有很多方法和工具被提出用来解决智能合约的安全问题,但是多数方法与工具很少在智能合约与客户端交互的具体场景下验证整个交易过程的安全性。
技术实现思路
[0003]为了解决现有技术存在的不足,本专利技术的目的是提出了一种区块链平台交易的形式化建模与验证方法,将形式化的方法运用到区块链商品交易中,以验证在基于智能合约的场景下交易的安全性与正确性是否得到保障。
[0004]本专利技术的核心思想在于首先提出了区块链交易场景中各交易实体的转移系统,通过转移系统可构建出各交易实体的通用模型。然后将该方法运用到一个具体的区块链商品交易实例中,构建出了包括区块链在内的各交易实体的模型。此外,通过将时间离散化表示让模型具有了时间特 ...
【技术保护点】
【技术特征摘要】
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所述的区块链平台交易的形式化建...
【专利技术属性】
技术研发人员:郭建,戴美怡,杨哲,蒲戈光,
申请(专利权)人:上海工业控制安全创新科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。