【技术实现步骤摘要】
一种专家系统与深度学习相融合的智能合约安全审计方法
[0001]本专利技术属于区块链和智能合约安全审计领域,特别是涉及一种专家系统与深度学习相融合的智能合约安全审计方法。
技术介绍
[0002][0003]目前智能合约安全审计方法和工具虽然取得一定成果,但在审计效率和准确性的均衡性上仍然存在不足,难以满足复杂智能合约的安全审计需求。如模型检测、定理证明等,由于其复杂度较高,审计效率较低,难以应对大型复杂智能合约;而对于模糊测试类,受实际生成的测试用例的限制,其实际检测性能难以控制;而基于抽象语法树的审计模型,其准确性较低。但随着智能合约应用的推广,其复杂度将不断提升,安全漏洞涉及的范围也将扩大,因此,如何提升智能合约安全审计模型的综合分析能力,在审计效率和准确性上尽量均衡,以适应复杂智能合约的安全审计需求,是智能合约安全审计研究的不容忽视的一个重要问题。
技术实现思路
[0004]为解决上述问题,本专利技术以以太坊虚拟机的指令序列为基础,结合人工智能理论,提出一种专家系统与深度学习相融合的智能合约安全审计的方 ...
【技术保护点】
【技术特征摘要】
1.一种专家系统与深度学习相融合的智能合约安全审计方法,其特征在于:(1)基于搜集的智能合约安全漏洞特征,采用专家知识表示方法,按安全漏洞类别构建相应的漏洞关联信息专家知识库;(2)利用以太坊智能合约编译器solc将solidity编写的智能合约代码转换为以太坊虚拟机EVM上的指令序列;(3)通过对EVM指令序列的语义分析,构建属性级控制流图PCFG(V,E,P),V表示PCFG中节点的集合,其中每个节点v对应一条EVM的指令;E表示PCFG中边的集合,其中每条边e表示v之间的依赖关系,即如果v
j
执行依赖于v
i
的执行,那么E中将添加一条从v
i
指向v
j
的边;P表示每个节点v的属性值,表示该节点的指令类型信息;(4)利用专家系统的知识库,根据步骤(1)相应的规则,按漏洞类别从步骤(3)的PCFG中提取出相应的子图其中i表示漏洞类别标号,j表示当前样本编号;(5)通过对大量样本数据的(2)~(4)步骤处理,获得每个漏洞类别i的关联子图样本数据集SPCFG
i
;并将SPCFG中的每个节点转换为字符串token,并存入词列表L;(6)对步骤(5)中的每个SPCFG
i
中的每个样本通过图的广度优先遍历方法展开为一维token向量,然后采用词嵌入方法,对L中的token进行编码,得到每个token字符串的实数向量表示;(7)以现有的成熟卷积神经网络为基础模型结构,以步骤(6)获得的token实数向量以及各子图的关联度权值为输入,计算加权token值;然后按照漏洞类别分别进行训练,形成面向不同漏洞类别的智能合约安全审计模型;(8)对于待检测的智能合约,依次经过步骤(1)~(6)的处理,形成加权token值,然后输入到步骤(7)构建的智能合约安全审计模型,实现对该智能合约的安全审计。2.根据权利要求1所述的方法,其特征在于步骤(1)中的专家知识库重点描述与对应类别安全漏洞关联的信息,并不是漏洞本身,表示方式为“A1|A2|
…
|A
n”;其中A
i
表示第i种类型的漏洞,i∈{1,2,
…
,n},“|”表示或的关系;对于每一种类型的漏洞A
i
,其关联分析节点范围表示为:其中令k∈{1,2,
…
,m},则表示一条匹配规则,且从1开始顺次编号;表示第k条规则中满足的属性值条件,表示第k条规则中...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。