一种智能合约漏洞检测的方法、装置制造方法及图纸

技术编号:21454406 阅读:33 留言:0更新日期:2019-06-26 04:55
本发明专利技术提供一种智能合约漏洞检测的方法、装置,属于智能合约技术领域。通过对于智能合约执行静态分析、动态分析和基于SVM的动静混合分析的一种或多种;并根据静态分析、动态分析和/或基于SVM的动静混合分析中的一种或多种分析结果,确定最终的智能合约漏洞的检测结果。本发明专利技术,通过由静态分析、动态分析和基于SVM的动静混合分析技术组成的分析引擎对智能合约代码进行分析,然后根据分析结果进行漏洞特征的提取,实现了完全自动化检测智能合约漏洞,检测方便,速度快,准确率高。

【技术实现步骤摘要】
一种智能合约漏洞检测的方法、装置
本专利技术涉及智能合约
,尤其涉及一种智能合约漏洞检测的方法、装置。
技术介绍
以太坊(Ethereum)是一个开源的公共区块链平台,他拥有区块链的去中心化、共识、分布式账本等特点。它为所有开发者提供了基于Solidity语言的智能合约解决方案平台,它上面提供各种模块让用户来创建属于自己项目的智能合约。智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约的目的是提供优于传统合约的安全方法,并减少与合约相关的其他交易成本。目前市场中对智能合约漏洞检测没有较优的方法是基于人工进行查看代码进行检测。但是这样的缺点明显:首先,人工检测的方式,检测结果完全依靠检测人的技术水平,导致检测结果参差不齐,多人核审结果不一致等问题;其次,人工检测的费用极高,市场上的人工检测费用少则数千,多则数十万,这样的费用不是大众开发者所能承受的;第三,人工方面的工程排期、代码难度、技术水平等维度上对检测时间影响是非常大的,检测漏洞的周期可能会非常长。
技术实现思路
鉴于此,本专利技术提本文档来自技高网...

【技术保护点】
1.一种智能合约漏洞检测的方法,其特征在于,所述方法包括对于智能合约执行静态分析、动态分析和基于SVM的动静混合分析的一种或多种;静态分析,包括不执行智能合约程序,对源代码进行分析漏洞;动态分析,包括建立智能合约的输入、输出的对应关系,执行智能合约程序;基于SVM的动静混合分析,包括收集存在的智能合约的样本,执行SVM学习模型进行训练,得到缺陷模型;根据静态分析、动态分析和/或基于SVM的动静混合分析中的一种或多种分析结果,确定最终的智能合约漏洞的检测结果。

【技术特征摘要】
1.一种智能合约漏洞检测的方法,其特征在于,所述方法包括对于智能合约执行静态分析、动态分析和基于SVM的动静混合分析的一种或多种;静态分析,包括不执行智能合约程序,对源代码进行分析漏洞;动态分析,包括建立智能合约的输入、输出的对应关系,执行智能合约程序;基于SVM的动静混合分析,包括收集存在的智能合约的样本,执行SVM学习模型进行训练,得到缺陷模型;根据静态分析、动态分析和/或基于SVM的动静混合分析中的一种或多种分析结果,确定最终的智能合约漏洞的检测结果。2.根据权利要求1所述的智能合约漏洞检测的方法,其特征在于,所述静态分析包括:词法分析、语法分析、抽象语法树分析、语义分析、控制流分析、数据流分析、污点分析以及无效代码分析。3.根据权利要求1所述的智能合约漏洞检测的方法,其特征在于,所述动态分析包括:生成相应智能合约的应用二进制接口ABI;基于虚拟机EVM,构造二进制接口ABI合约调用函数,并执行智能合约的OPCODE,并获取执行结果以分析出漏洞。4.根据权利要求1所述的智能合约漏洞检测的方法,其特征在于,所述基于SVM的动静混合分析包括:所述执行SVM学习模型进行训练包括:训练样本、特征提取、模型初始化、相似度计算、参数重估、判断收敛、形成缺陷模型。5.一种...

【专利技术属性】
技术研发人员:王敏学刘智
申请(专利权)人:杭州拜思科技有限公司
类型:发明
国别省市:浙江,33

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

1