基于MSVL的区块链系统建模和安全性验证的方法及系统技术方案

技术编号:20369474 阅读:18 留言:0更新日期:2019-02-16 19:48
本发明专利技术属于形式化方法领域,公开了一种基于MSVL的区块链系统建模和安全性验证的方法及系统,在MC中用MSVL对区块链系统建模,用程序p表示;用PPTL描述区块链系统的性质,用公式φ表示;在MC中,加入MSVL的建模程序p和用PPTL描述的性质φ,验证区块链系统的安全性。本发明专利技术的区块链用MSVL程序进行建模,区块链的安全性性质用PPTL描述,而PPTL为PTL的命题子集,MSVL为PTL的可执行子集,因而MSVL和PPTL可以统一在MC中执行,相比于其他方法,本发明专利技术不需要使用另外的形式语言,也不需要调用另外的工具及大量的手工证明,只需要提供待验证性质的PPTL公式,证明过程由MC自动完成。

Method and System of Block Chain System Modeling and Security Verification Based on MSVL

The invention belongs to the field of formal methods, and discloses a method and system of block chain system modeling and security verification based on MSVL. In MC, block chain system is modeled by MSVL and expressed by program p; the property of block chain system is described by PPTL and expressed by formula_;; in MC, the safety of block chain system is verified by adding MSVL modelling program P and property_described by PPTL. \u3002 The block chain of the invention is modeled by MSVL program, and the security property of the block chain is described by PPTL, while PPTL is the proposition subset of PTL and MSVL is the executable subset of PTL, so MSVL and PTL can be executed in MC uniformly. Compared with other methods, the invention does not need to use another formal language, call other tools and a large number of manual proofs, and only needs to provide. The PPTL formula of the property to be verified is automatically proved by MC.

【技术实现步骤摘要】
基于MSVL的区块链系统建模和安全性验证的方法及系统
本专利技术属于计算机辅助设计
,尤其涉及一种基于MSVL的区块链系统建模和安全性验证的方法及系统。
技术介绍
目前,业内常用的现有技术是这样的:目前,用到区块链技术的系统应用的技术发展可以大致分为三个阶段。第一个阶段主要发展为数字加密货币系统;第二个阶段主要发展为金融系统;第三个阶段主要发展为区块链社会。目前正处于二阶段的初期,并且一定不会长期处于该时期。区块链是以时间线索来组织数据,并且每隔一段时间将数据进行打包成区块,再以链条和时间顺序链接这些区块而成的特定数据结构,保证了其可追溯性,并且以密码学的方式保证其不可篡改和不可伪造,是一个分布式、去中心化、公开共享的总账本。区块链的数据结构可简单的描述如下:一种基于时间戳的链式结构,区块链的基本组成单位是区块,区块有包含了区块头和区块体,区块头包含六个基本要素:前一区块的摘要值,是经过hash加密后的固定长度的字符串;时间戳;挖矿难度;该区块中交易打包的摘要值;经过挖矿大量的计算后得到的随机数;本区块链的摘要值。区块体只要包含了该时间段的所有交易,使用Merkle树的数据结构,所有交易是Merkle树的叶子结点,然后每两个结点生成一个父亲结点,依次类推直到生成根结点。区块链具有五大特性:去中心化、时序数据、集体维护、可编程、安全可信。即便是区块链具有以上五大特性并且区块链技术被广泛的应用,但是区块链技术仍然存在着安全方面的问题,不同技术层面都可能存在安全问题。在节点层,与传统服务器的安全防范措施相比,区块链系统中的每一个计算节点可以说都是“裸奔”的,每一个计算节点很容易受到各种非法攻击。在合约层,以太坊上的智能合约,可能只是一段js代码,存在很多潜在的漏洞,这些漏洞很容易被人利用。在数据层,用户在区块链上的账户名需要公布出来,通过用户的账户名,很容易获得用户的账户的交易信息和账户余额,隐私问题也是个大问题。因此,区块链系统是一个分布式系统,它增加了威胁和风险的可能,就系统本身而言,是降低了安全性而不是增加了安全性。所以对区块链进行安全验证是非常有必要的。2016年黑客通过TheDao,利用智能合约中的漏洞,成功盗取360万以太币。TheDAO事件发生后,以太坊创始人VitalikButerin提议修改以太坊代码,对以太坊区块链实施硬分叉,将黑客盗取资金的交易记录回滚,在得到社区大部分矿工支持的同时也遭到了少数人的强烈反对,最终导致了以太坊社区的分裂。2017年7月19日,多重签名钱包Parity1.5及以上版本出现安全漏洞,15万个ETH被盗,共价值3000万美元。两次被盗事件都是因为区块链系统中的漏洞,由此可见,加强各技术层的安全性能是提高区块链安全的重要保证,其中形式化验证是解决区块链系统安全性审核的一个有效方法。形式化验证就是基于已建立的形式化规格,对所规格系统的相关特性进行分析和验证,以评判系统是否满足期望的特性。形式化验证并不能完全确保系统的性能正确无误,但是可以最大限度地理解和分析系统,并尽可能地发现其中的不一致性、模糊性、不完备性等错误。形式化验证的主要技术包括模型验证和定理证明。本专利技术正是从这个方面入手,打造一个形式化验证的模型框架,用形式化验证的方式去验证系统可能存在的漏洞。综上所述,现有技术存在的问题是:现有的区块链技术存在很容易获得用户的账户的交易信息和账户余额,安全性较低。
技术实现思路
针对现有技术存在的问题,本专利技术提供了一种基于MSVL的区块链系统建模和安全性验证的方法及系统。本专利技术是这样实现的,一种基于MSVL的区块链系统建模和安全性验证的方法,所述基于MSVL的区块链系统建模和安全性验证的方法在MC中用MSVL对区块链系统建模,用程序p表示;用PPTL描述区块链系统的性质,用公式φ表示;在MC中,加入MSVL的建模程序p和用PPTL描述的性质φ,验证区块链系统的安全性。进一步,所述基于MSVL的区块链系统建模和安全性验证的方法利用MSVL程序p对区块链系统进行建模;利用PPTL公式φ描述区块链系统的性质。进一步,所述基于MSVL的区块链系统建模和安全性验证的方法包括以下步骤:步骤一,使用MSVL语言对区块链系统建模,数据结构中的结构体表示区块链系统中的区块、交易、用户以及用户间的通信;在建模中,用函数表示区块链系统中的基本操作;使用数据结构中的图结构建模p2p网络,顶点的集合即用户集;步骤二,分别从数据层,网络层,共识层,激励层,合约层找用户关心的性质,采用PPTL公式描述,对区块链建模系统的安全性进行验证;步骤三,将建模的MSVL程序和描述性质的PPTL公式在MC验证,检查区块链系统的安全性性质是否满足。进一步,使用MSVL语言对区块链系统建模的区块链系统中的用户类型分为四种,分别用四个参数表示具体为:k1:表示用户有无路由功能,决定了该用户能否与其他用户通信;k2:表示用户有无钱包功能,决定了该用户能否与其他用户交易;k3:表示用户有无挖矿功能,决定了该用户是否具有获取奖励的资格及共识机制是否有效;k4:表示用户有无管理功能,决定了该用户是否具有发行货币的权利;使用数据结构中的结构体表示区块链系统中的区块、交易、用户以及用户间的通信,具体为:区块链中的区块信息用结构体structBlock表示;区块链中的交易信息用结构体structTrade表示;区块链中的用户信息用结构体structNodes表示;区块链中的用户间通信用结构体structEdges表示;区块链系统中的功能用函数表示,具体为:functionpass表示进入区块链系统的一个简单的身份认证函数;functionBAAC_max表示区块链系统的共识机制-活跃度与信用度的权衡比较算法,用来计算出获得奖励的矿工;functionpay表示一条交易中的转账支付的函数;functionrecord表示生成新区块前的所有交易记录的函数;functionp2p表示p2p网络用户结点及其相互通信的遍历检测函数。进一步,PPTL公式根据具体要验证的安全性性质确定,首先根据需要验证的性质,定义命题;然后根据命题的逻辑关系,得出相应合理的PPTL公式。进一步,用MSVL对需要进行验证的区块链系统进行建模的方法具体包括:(1)建模程序中的用户类型用四个参数表示:k1:用户有无路由功能,;k2:用户有无钱包功能;k3:用户有无挖矿功能;k4:用户有无管理功能;(2)定义四个结构体来表示区块链系统中的用户、交易、区块;结构体structBlock:区块链中的区块信息用结构体structBlock表示,结构体包括五个成员:ID用来表示当前区块的摘要值;preID用来表示前一区块的摘要值;Ntrade用来表示所有交易的交易打包摘要值,即Merkle树根结点的hash值;x用来表示挖矿过程生成的随机数;t用来表示时间戳;(3)区块链系统中的功能用函数表示,具体为:functionpass表示进入区块链系统的一个简单的身份认证函数;functionBAAC_max表示区块链系统的共识机制-活跃度与信用度的权衡比较算法,用来计算出获得奖励的矿工;functionpay表示一条交易中的转账支付的函数;functionrecor本文档来自技高网
...

【技术保护点】
1.一种基于MSVL的区块链系统建模和安全性验证的方法,其特征在于,所述基于MSVL的区块链系统建模和安全性验证的方法在MC中用MSVL对区块链系统建模,用程序p表示;用PPTL描述区块链系统的性质,用公式φ表示;在MC中,加入MSVL的建模程序p和用PPTL描述的性质φ,验证区块链系统的安全性。

【技术特征摘要】
1.一种基于MSVL的区块链系统建模和安全性验证的方法,其特征在于,所述基于MSVL的区块链系统建模和安全性验证的方法在MC中用MSVL对区块链系统建模,用程序p表示;用PPTL描述区块链系统的性质,用公式φ表示;在MC中,加入MSVL的建模程序p和用PPTL描述的性质φ,验证区块链系统的安全性。2.如权利要求1所述的基于MSVL的区块链系统建模和安全性验证的方法,其特征在于,所述基于MSVL的区块链系统建模和安全性验证的方法利用MSVL程序p对区块链系统进行建模;利用PPTL公式φ描述区块链系统的性质。3.如权利要求1所述的基于MSVL的区块链系统建模和安全性验证的方法,其特征在于,所述基于MSVL的区块链系统建模和安全性验证的方法包括以下步骤:步骤一,使用MSVL语言对区块链系统建模,数据结构中的结构体表示区块链系统中的区块、交易、用户以及用户间的通信;在建模中,用函数表示区块链系统中的基本操作;使用数据结构中的图结构建模p2p网络,顶点的集合即用户集;步骤二,分别从数据层,网络层,共识层,激励层,合约层找用户关心的性质,采用PPTL公式描述,对区块链建模系统的安全性进行验证;步骤三,将建模的MSVL程序和描述性质的PPTL公式在MC验证,检查区块链系统的安全性性质是否满足。4.如权利要求3所述的基于MSVL的区块链系统建模和安全性验证的方法,其特征在于,使用MSVL语言对区块链系统建模的区块链系统中的用户类型分为四种,分别用四个参数表示具体为:k1:表示用户有无路由功能,决定了该用户能否与其他用户通信;k2:表示用户有无钱包功能,决定了该用户能否与其他用户交易;k3:表示用户有无挖矿功能,决定了该用户是否具有获取奖励的资格及共识机制是否有效;k4:表示用户有无管理功能,决定了该用户是否具有发行货币的权利;使用数据结构中的结构体表示区块链系统中的区块、交易、用户以及用户间的通信,具体为:区块链中的区块信息用结构体structBlock表示;区块链中的交易信息用结构体structTrade表示;区块链中的用户信息用结构体structNodes表示;区块链中的用户间通信用结构体structEdges表示;使用MSVL中的函数表示区块链系统中的功能,具体为:functionpass表示进入区块链系统的一个简单的身份认证函数;functionBAAC_max表示区块链系统的共识机制-活跃度与信用度的权衡比较算法,用来计算出获得奖励的矿工;functionpay表示一条交易中的转账支付的函数;functionrecord表示生成新区块前的所有交易记录的函数;functionp2p表示p2p网络用户结点及其相互通信的遍历检测函数。5.如权利要求3所述的基于MSVL的区块链系统建模和安全性验证的方法,其特征在于,PPTL公式根据具体要验证的安全性性质确定,首先根据需要验证的性质,定义命题;然后根据命题的逻辑关系,得出相应合理的PPTL公式。6.如权利要求3所述的基于MSVL的区块链系统建模和安全性验证的方法,其特征在于,用MSVL对需要进行验证的区块链系统进行建模的方法具体包括:(1)建模程序中的用户类型用四个参数表示:k1:用户有无路由功能,;k2:用户有无钱包功能;k3:用户有无挖矿功能;k4:用户有无管理功能;(2)定义四个结构体来...

【专利技术属性】
技术研发人员:王小兵朱云凯段振华赵亮田聪张南
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西,61

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

1