基于区块链的智能合约逻辑漏洞检测方法及装置制造方法及图纸

技术编号:33956639 阅读:8 留言:0更新日期:2022-06-29 23:40
本申请公开了一种基于区块链的智能合约逻辑漏洞检测方法及装置,涉及区块链领域。该方法包括:确定区块链中智能合约的状态机模型,其中,状态机模型是基于智能合约的目标条款信息和承诺模型生成的模型,其中,承诺模型是由多个承诺信息生成的模型;基于状态机模型结合博弈理论,确定智能合约的纳什均衡,并计算纳什均衡的收益;依据纳什均衡的收益,确定智能合约的逻辑漏洞检测结果。通过本申请,解决了相关技术中采用人工方式检测区块链中的智能合约的逻辑漏洞,导致逻辑漏洞的检测效率较低的问题。较低的问题。较低的问题。

【技术实现步骤摘要】
基于区块链的智能合约逻辑漏洞检测方法及装置


[0001]本申请涉及区块链领域,具体而言,涉及一种基于区块链的智能合约逻辑漏洞检测方法及装置。

技术介绍

[0002]智能合约是一套以数字形式定义的承诺,同时也是根据各参与方约定条件自动执行的程序。而且,智能合约是区块链技术实现业务应用的关键,并已广泛应用于贸易物流、金融服务、知识产权、供应链管理等领域。另外,由于区块链智能合约部署后不能修改,所以,若区块链中的智能合约存在漏洞,则将造成难以挽回的巨大损失。因此,区块链智能合约的漏洞检测也成为近年来大家研究的重点方向。而目前相关技术中,区块链智能合约的漏洞研究主要集中在代码层面,比如整型溢出、重入攻击、权限控制等;但对于区块链智能合约的逻辑漏洞的检测研究较少,且区块链智能合约的逻辑漏洞的检测通常由人工进行检测,但是,传统的人工检测方法存在工作量大、效率低下等问题,因此,目前缺乏一种区块链智能合约逻辑漏洞的自动化检测方法。
[0003]针对相关技术中采用人工方式检测区块链中的智能合约的逻辑漏洞,导致逻辑漏洞的检测效率较低的问题,目前尚未提出有效的解决方案。

技术实现思路

[0004]本申请的主要目的在于提供一种基于区块链的智能合约逻辑漏洞检测方法及装置,以解决相关技术中采用人工方式检测区块链中的智能合约的逻辑漏洞,导致逻辑漏洞的检测效率较低的问题。
[0005]为了实现上述目的,根据本申请的一个方面,提供了一种基于区块链的智能合约逻辑漏洞检测方法。该方法包括:确定区块链中智能合约的状态机模型,其中,所述状态机模型是基于所述智能合约的目标条款信息和承诺模型生成的模型,其中,所述承诺模型是由多个承诺信息生成的模型;基于所述状态机模型结合博弈理论,确定所述智能合约的纳什均衡,并计算所述纳什均衡的收益;依据所述纳什均衡的收益,确定所述智能合约的逻辑漏洞检测结果。
[0006]进一步地,基于所述状态机模型结合博弈理论,确定所述智能合约的纳什均衡包括:基于所述智能合约的状态机模型,确定所述智能合约中的参与方的集合;依据所述参与方的集合,确定所述智能合约中每个参与方的策略集合;依据所述每个参与方的策略集合,得到所述智能合约的策略集合的组合;获取所述每个参与方的收益;结合所述博弈理论,依据所述策略集合的组合和所述每个参与方的收益,确定所述智能合约的纳什均衡。
[0007]进一步地,在确定智能合约的状态机模型之前,所述方法还包括:获取第一请求报文,其中,所述第一请求报文用于表示上传所述智能合约的请求;解析所述第一请求报文,得到所述目标条款信息;基于所述目标条款信息,并采用所述承诺模型,构建所述智能合约的状态机模型。
[0008]进一步地,依据所述纳什均衡的收益,确定所述智能合约的逻辑漏洞检测结果包括:判断所述纳什均衡的收益是否小于或者等于预设值;若所述纳什均衡的收益小于或者等于所述预设值,则确定所述逻辑漏洞检测结果为所述智能合约存在所述逻辑漏洞;若所述纳什均衡的收益大于所述预设值,则确定所述逻辑漏洞检测结果为所述智能合约不存在所述逻辑漏洞。
[0009]进一步地,在确定所述逻辑漏洞检测结果为所述智能合约不存在所述逻辑漏洞之后,所述方法还包括:获取所述智能合约的合约源码;将所述合约源码存储在所述区块链的目标节点的目标位置中。
[0010]进一步地,在将所述合约源码存储在所述区块链的目标节点的目标位置中之后,所述方法还包括:获取第二请求报文,其中,所述第二请求报文用于表示部署所述智能合约的请求;解析所述第二请求报文,确定所述合约源码的存储路径;依据所述合约源码的存储路径,生成所述智能合约的ID信息;在所述ID信息生成后,将带有所述ID信息的合约源码打包,得到打包后的合约源码;将所述打包后的合约源码发送至所述区块链中除所述目标节点之外的其他节点上。
[0011]进一步地,在确定所述逻辑漏洞检测结果为所述智能合约存在所述逻辑漏洞之后,所述方法还包括:接收目标信息,其中,所述目标信息用于表示所述第一请求报文的请求失败;基于所述目标信息,不执行上传所述智能合约的操作。
[0012]进一步地,在获取第一请求报文之前,所述方法还包括:获取所述智能合约的文本中的第一条款信息和所述智能合约的合约代码,其中,所述第一条款信息与所述目标条款信息不同;依据所述第一条款信息和所述合约代码,生成所述第一请求报文。
[0013]为了实现上述目的,根据本申请的另一方面,提供了一种基于区块链的智能合约逻辑漏洞检测装置。该装置包括:第一确定单元,用于确定区块链中智能合约的状态机模型,其中,所述状态机模型是基于所述智能合约的目标条款信息和承诺模型生成的模型,其中,所述承诺模型是由多个承诺信息生成的模型;第一处理单元,用于基于所述状态机模型结合博弈理论,确定所述智能合约的纳什均衡,并计算所述纳什均衡的收益;第二确定单元,用于依据所述纳什均衡的收益,确定所述智能合约的逻辑漏洞检测结果。
[0014]进一步地,所述第一处理单元包括:第一确定模块,用于基于所述智能合约的状态机模型,确定所述智能合约中的参与方的集合;第二确定模块,用于依据所述参与方的集合,确定所述智能合约中每个参与方的策略集合;第三确定模块,用于依据所述每个参与方的策略集合,得到所述智能合约的策略集合的组合;第一获取模块,用于获取所述每个参与方的收益;第四确定模块,用于结合所述博弈理论,依据所述策略集合的组合和所述每个参与方的收益,确定所述智能合约的纳什均衡。
[0015]进一步地,所述装置还包括:第一获取单元,用于在确定智能合约的状态机模型之前,获取第一请求报文,其中,所述第一请求报文用于表示上传所述智能合约的请求;第一解析单元,用于解析所述第一请求报文,得到所述目标条款信息;第一构建单元,用于基于所述目标条款信息,并采用所述承诺模型,构建所述智能合约的状态机模型。
[0016]进一步地,所述第二确定单元包括:第一判断模块,用于判断所述纳什均衡的收益是否小于或者等于预设值;第五确定模块,用于若所述纳什均衡的收益小于或者等于所述预设值,则确定所述逻辑漏洞检测结果为所述智能合约存在所述逻辑漏洞;第六确定模块,
用于若所述纳什均衡的收益大于所述预设值,则确定所述逻辑漏洞检测结果为所述智能合约不存在所述逻辑漏洞。
[0017]进一步地,所述装置还包括:第二获取单元,用于在确定所述逻辑漏洞检测结果为所述智能合约不存在所述逻辑漏洞之后,获取所述智能合约的合约源码;第一存储单元,用于将所述合约源码存储在所述区块链的目标节点的目标位置中。
[0018]进一步地,所述装置还包括:第三获取单元,用于在将所述合约源码存储在所述区块链的目标节点的目标位置中之后,获取第二请求报文,其中,所述第二请求报文用于表示部署所述智能合约的请求;第二解析单元,用于解析所述第二请求报文,确定所述合约源码的存储路径;第一生成单元,用于依据所述合约源码的存储路径,生成所述智能合约的ID信息;第一打包单元,用于在所述ID信息生成后,将带有所述ID信息的合约源本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于区块链的智能合约逻辑漏洞检测方法,其特征在于,包括:确定区块链中智能合约的状态机模型,其中,所述状态机模型是基于所述智能合约的目标条款信息和承诺模型生成的模型,其中,所述承诺模型是由多个承诺信息生成的模型;基于所述状态机模型结合博弈理论,确定所述智能合约的纳什均衡,并计算所述纳什均衡的收益;依据所述纳什均衡的收益,确定所述智能合约的逻辑漏洞检测结果。2.根据权利要求1所述的方法,其特征在于,基于所述状态机模型结合博弈理论,确定所述智能合约的纳什均衡包括:基于所述智能合约的状态机模型,确定所述智能合约中的参与方的集合;依据所述参与方的集合,确定所述智能合约中每个参与方的策略集合;依据所述每个参与方的策略集合,得到所述智能合约的策略集合的组合;获取所述每个参与方的收益;结合所述博弈理论,依据所述策略集合的组合和所述每个参与方的收益,确定所述智能合约的纳什均衡。3.根据权利要求1所述的方法,其特征在于,在确定智能合约的状态机模型之前,所述方法还包括:获取第一请求报文,其中,所述第一请求报文用于表示上传所述智能合约的请求;解析所述第一请求报文,得到所述目标条款信息;基于所述目标条款信息,并采用所述承诺模型,构建所述智能合约的状态机模型。4.根据权利要求3所述的方法,其特征在于,依据所述纳什均衡的收益,确定所述智能合约的逻辑漏洞检测结果包括:判断所述纳什均衡的收益是否小于或者等于预设值;若所述纳什均衡的收益小于或者等于所述预设值,则确定所述逻辑漏洞检测结果为所述智能合约存在所述逻辑漏洞;若所述纳什均衡的收益大于所述预设值,则确定所述逻辑漏洞检测结果为所述智能合约不存在所述逻辑漏洞。5.根据权利要求4所述的方法,其特征在于,在确定所述逻辑漏洞检测结果为所述智能合约不存在所述逻辑漏洞之后,所述方法还包括:获取所述智能合约的合约源码;将所述合约源码存储在所述区块链的目标节点的目标位置中。6.根据权利要求5所述的方法,其特征在于,在将所述合约源码存储在所述区块链的目标节...

【专利技术属性】
技术研发人员:马爱莲周颖夏琼刘彦平
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

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

1