【技术实现步骤摘要】
一种基于集成学习和图神经网络的智能合约缺陷检测方法
[0001]本专利技术属于以太坊智能合约及程序缺陷检测
,特别是涉及一种基于集成学习和图神经网络的智能合约缺陷检测方法。
技术介绍
[0002]智能合约是部署于以太坊中的自动化执行的数字协议,承载了巨大的金融价值,因此保证其安全性至关重要。目前智能合约缺陷检测包括静态程序分析、动态程序分析等传统检测方法和基于机器学习技术的检测方法。传统的检测方法依赖于专家设定的模式和规则,效率低,扩展性较差,易导致假阴性和假阳性的检测报告。
[0003]机器学习技术在缺陷检测领域发展迅速,能够以较高的准确率自动化识别具有缺陷的智能合约。目前有很多检测智能合约缺陷较为成熟的工具,如Oyente、Mainan等,但是每个工具采用的规则和基于的原理均存在差异,对不同类型的缺陷检测能力也有差别,导致检测效果和结果不尽相同。
[0004]静态分析通过词法分析、语法分析等,在不运行代码的前提下,对程序代码进行验证。符号执行、污点分析等均是静态分析方法的典型代表。静态分析效率较高, ...
【技术保护点】
【技术特征摘要】
1.一种基于集成学习和图神经网络的智能合约缺陷检测方法,其特征在于,包括以下步骤:获取智能合约,提取所述智能合约的特征向量;获取若干个智能合约缺陷检测工具,基于深度神经网络分别对若干个所述智能合约缺陷检测工具构建置信度模型;基于若干个所述置信度模型与所述特征向量获取所述智能合约的检测结果。2.根据权利要求1所述的基于集成学习和图神经网络的智能合约缺陷检测方法,其特征在于,提取所述智能合约的特征向量的过程包括:基于抽象语法树、控制流图、数据依赖图、和代码自然序列构建合约图;对所述合约图进行编码,提取所述智能合约的特征向量。3.根据权利要求2所述的基于集成学习和图神经网络的智能合约缺陷检测方法,其特征在于,基于抽象语法树、控制流图、数据依赖图和代码自然序列构建合约图的过程包括:对所述智能合约进行编译,获取抽象语法树;将所述抽象语法树输入到智能合约静态分析框架中,获取控制流图和数据依赖图;获取所述智能合约的代码自然序列,将所述抽象语法树、所述控制流图、所述数据依赖图与所述代码自然序列相结合,构建所述合约图。4.根据权利要求2所述的基于集成学习和图神经网络的智能合约缺陷检测方法,其特征在于,所述合约图的节点为抽象语法树中的节点,所述合约图中的节点类型与抽象语法树中节点的类型相对应,所述节点类型包括但不限于语句、表达式;所述合约图的边的类型包括:表示代码层级关系的抽象语法树的边,表示程序执行路径的控制流边,表示变量访问和修改的数据流边,以及体现源代码自然顺序的代码自然序列边。5.根据权利要求4所述的基于集成学习和图神经网络的智能合约缺陷检测方法,其特征在于,...
【专利技术属性】
技术研发人员:刘天阳,计卫星,唐丞德,王一拙,高玉金,
申请(专利权)人:北京理工大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。