[发明专利]智能合约的漏洞的检测方法、装置及计算机设备在审
申请号: | 202011280604.8 | 申请日: | 2020-11-16 |
公开(公告)号: | CN112380541A | 公开(公告)日: | 2021-02-19 |
发明(设计)人: | 代健武 | 申请(专利权)人: | 深圳壹账通智能科技有限公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F8/41;G06F16/27;G06Q40/04 |
代理公司: | 北京辰权知识产权代理有限公司 11619 | 代理人: | 刘广达 |
地址: | 518054 广东省深圳市前海深港合作区前*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 智能 合约 漏洞 检测 方法 装置 计算机 设备 | ||
本发明涉及一种智能合约的漏洞的检测方法、装置及设备,该方法包括:获取待检测合约文件;根据所述待检测合约文件中可执行代码的运行逻辑,获取对应于待检测合约文件中各终端结点的逻辑表达式;检测每个逻辑表达式,获得检测结果;基于所述检测结果,判定所述待检测合约文件是否存在漏洞。本申请的方法能够检测待检测合约文件中的逻辑关系,不需要依靠已知的漏洞特征信息即能检测待检测合约文件中的已知或未知的漏洞,故而可以提升检测待检测合约文件的漏洞时的检测准确性,而且是对各种漏洞都可以检测,提高了工作效率。
技术领域
本发明涉及区块链领域,特别是涉及智能合约的漏洞的检测方法、装置及设备。
背景技术
区块链是一个分布式的共享账本和数据库,具有去中心化、不可篡改、全程留痕、可追溯等特点,区块链能够解决信息不对称问题,实现多个主体之间的协作信任与一致行动,这些特点使区块链能够应用于多种多样的场景中。以太坊(Ethereum)是一个开源的公共区块链平台,拥有区块链的去中心化、共识、分布式账本等特点。它为所有开发者提供了基于Solidity语言的智能合约解决方案平台,它上面提供各种模块让用户来创建属于自己项目的智能合约。智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约的目的是提供优于传统合约的安全方法,并减少与合约相关的其他交易成本。区块链采用的智能合约是开发人员去编写的脚本代码,因为缺乏有效的漏洞检测模型,导致容易出现智能合约漏洞。目前市场中对智能合约漏洞检测的方法主要是基于人工检测智能合约的方法。基于人工检测智能合约的技术方案的缺点明显:人工检测的方式,检测结果完全依靠检测人的技术水平,导致检测结果参差不齐、多人核审结果不一致、工作效率低下等问题。
发明内容
基于此,有必要针对人工检测方式的检测结果完全依靠检测人的技术水平,导致检测结果参差不齐、多人核审结果不一致、工作效率低下等问题,提供一种智能合约的漏洞的检测方法、装置及设备。
一种智能合约的漏洞的检测方法,包括:
获取待检测合约文件;所述待检测合约文件即需要进行漏洞检测的智能合约的合约文件;
根据所述待检测合约文件中可执行代码的运行逻辑,获取对应于待检测合约文件中各终端结点的逻辑表达式;
检测每个逻辑表达式,获得检测结果;
基于所述检测结果,判定所述待检测合约文件是否存在漏洞。
在其中一个实施例中,所述根据待检测合约文件中可执行代码的运行逻辑,获取对应于待检测合约文件中各终端结点的逻辑表达式,包括:
根据可执行代码的运行逻辑,生成与待检测合约文件中的可执行代码相对应的控制流图;
根据所述控制流图,生成与待检测合约文件中各个终端结点相对应的逻辑表达式。
在其中一个实施例中,所述检测每个逻辑表达式,获得检测结果,包括:
确定每个逻辑表达式所对应的输入参数;
通过输入参数检测对应的逻辑表达式的逻辑是否一致,并生成检测结果。
在其中一个实施例中,所述通过输入参数检测对应的逻辑表达式的逻辑是否一致,并生成检测结果,包括:
当输入参数包括输入值时,将输入值输入对应的逻辑表达式,得到输出结果,判断输出结果与逻辑表达式的逻辑是否一致;
若输出结果与逻辑表达式的逻辑是一致的,则确定得到不存在漏洞的检测结果;
若输出结果与逻辑表达式的逻辑不一致,则确定得到存在漏洞的检测结果;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳壹账通智能科技有限公司,未经深圳壹账通智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011280604.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于人工智能的辅警管理系统
- 下一篇:一种可快速更换排球网的排球架