System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术具体涉及一种融入多视图特征的双通道智能合约缺陷检测方法。
技术介绍
1、智能合约是由编程语言设计的自动化执行协议,具有去中介化、不可篡改和透明性,广泛应用于去中心化金融、供应链管理、版权与知识产权等领域,具有非常好的应用前景。智能合约的缺陷检测能够发现合约中的潜在漏洞和安全隐患,降低合约被攻击或利用的风险,提高合约质量,促进创新和智能合约技术的安全应用,目前,智能合约缺陷检测主要包括非深度学习的传统检测方式和基于深度学习技术检测方式,其中,传统检测方式主要从形式化验证、静态分析、符号执行和模糊测试四个角度开展,深度学习技术为主的智能合约缺陷检测方式则是将代码视为文本,采用rnn、lstm等神经网络进行缺陷检测;
2、然而,在研究中发现,传统检测方法虽然有效检测到缺陷问题,但评测角度过于单一,容易导致漏报或误报,而以深度学习技术为主的智能合约缺陷检测方式的分析角度只停留在文本语义层面,未考虑到代码执行的消耗代价问题,以上的检测方法在应对智能合约缺陷检测时,检测角度不全面,检测结果难以提升,亟需改进;
3、因此,专利技术一种融入多视图特征的双通道智能合约缺陷检测方法来解决上述问题很有必要。
技术实现思路
1、本专利技术的目的是提供一种融入多视图特征的双通道智能合约缺陷检测方法,通过融入多视图特征的双通道智能合约缺陷检测模型,不仅从文本和视觉角度建立双通道分析代码,避免了分析角度过于单一的问题,还将智能合约代码的注释内容和gas消耗值加入代码缺陷检测的角
2、为了实现上述目的,本专利技术提供如下技术方案:一种融入多视图特征的双通道智能合约缺陷检测方法,包括以下步骤:
3、步骤1、对智能合约代码set(i)进行语法树特征fast、执行逻辑特征felg、文本特征fcode提取,并将提取后的三个特征向量进行加权融合,得到代码特征fcodefeature;
4、步骤2、对智能合约代码set(i)进行注释特征fann、gas消耗值特征fgas提取后,将代码特征fcodefeature、注释特征fann、gas消耗值特征fgas加权融合,得到文本语义特征ftext_seman;
5、步骤3、对智能合约代码set(i)进行视觉语法树特征fvisual_ast和视觉执行逻辑特征fvisual_elg提取后,将所有视觉特征向量加权融合,得到视觉语义特征fvisua_lseman;
6、步骤4、将得到的文本语义特征ftext_seman和视觉语义特征fvisua_lseman加权融合,得到新的特征向量fseman,将新的特征向量fseman进行建模,得到缺陷检测模型;
7、步骤5、获取智能合约数据集set,将数据标注,划分训练集和测试集,训练缺陷检测模型,基于训练后的缺陷检测模型获取待测智能合约的缺陷检测结果。
8、前述的融入多视图特征的双通道智能合约缺陷检测方法,在步骤1中,对智能合约代码set(i)进行语法树特征fast、执行逻辑特征felg、文本特征fcode提取,并将提取后的三个特征向量进行加权融合,得到代码特征fcodefeature,包括以下步骤:
9、1.1、语法树特征fast的提取;
10、1.2、执行逻辑特征felg的提取;
11、1.3、文本特征fcode的提取;
12、1.4、对提取的语法树特征fast、执行逻辑特征felg、以及文本特征fcode进行线性拼接,并给予特征之间权重比值,得到代码特征fcodefeature,具体公式如下:
13、
14、其中,为向量拼接,
15、w1为语法树特征fast的拼接权重,
16、w2为执行逻辑特征felg的拼接权重,
17、w3为文本特征fcode的拼接权重,
18、b1为可调节参数。
19、前述的融入多视图特征的双通道智能合约缺陷检测方法,在步骤1.1中,语法树特征fast的提取,具体步骤如下:
20、1.1.1、基于抽象语法树构建智能合约树结构数据,采用word2vec将树中1至n节点进行词嵌入编码,得到每个节点的输入特征xk,输入到tree-lstm神经网络中;
21、其中,树结构数据为:treeset(node1,node2,...,nodek,...,noden),
22、其中,1≤k≤n,node1为树的根节点,nodek为树中任意节点,
23、且nodek节点的孩子节点集合为(nodek,1,nodek,2,...,nodek,n,...,nodek,m),
24、其中,1≤n≤m,nodek,n为nodek的第n个孩子节点,(k,n)代表第k节点的n个孩子节点,(k,m)代表第k节点的m个孩子节点;
25、1.1.2、计算出每个节点的输入门ik、遗忘门fk和输出门ok信息;
26、其中,输入门ik的计算公式如下:
27、
28、其中,bik为第k节点输入门的偏置顶,
29、wik为第k节点输入门的权重,
30、dik,n为输入门中第k节点到所有孩子节点路径上的权重,i表示输入门,(k,n)代表第k节点的n个孩子节点,
31、hk,n为第k节点的n个孩子节点的隐层信息,
32、σ为sigmoid函数,
33、xk为当前第k节点的输入特征;
34、其中,遗忘门fk的计算公式如下:
35、
36、其中,bfk为第k节点遗忘门的偏置顶,
37、wfk为第k节点遗忘门的权重,
38、dfk,n为遗忘门中第k节点到所有孩子节点路径上的权重,f表示遗忘门,
39、(k,n)代表第k节点的n个孩子节点;
40、其中,输出门ok的计算公式如下:
41、
42、其中,bok为第k节点输出门的偏置顶,
43、wok为第k节点输出门的权重,
44、dok,n为输出门中第k节点到所有孩子路径上的权重,o表示输出门,
45、(k,n)代表第k节点的n个孩子节点;
46、1.1.3、根据得到的输入门ik、遗忘门fk,计算节点的细胞状态信息ck,具体公式如下:
47、
48、其中,tanh(·)为激活函数,
49、buk为第k节点细胞状态信息的偏置顶,
50、wuk为第k节点细胞状态信息的权重,
51、duk,n为细胞状态信息中k节点到所有孩子节点路径上的权重,u表示细胞状态,(k,n)代表第k节点的n个本文档来自技高网...
【技术保护点】
1.一种融入多视图特征的双通道智能合约缺陷检测方法,其特征在于:包括以下步骤:
2.根据权利要求1所述的一种融入多视图特征的双通道智能合约缺陷检测方法,其特征在于:在步骤1中,对智能合约代码Set(i)进行语法树特征fast、执行逻辑特征felg、文本特征fcode提取,并将提取后的三个特征向量进行加权融合,得到代码特征fcodefeature,包括以下步骤:
3.根据权利要求2所述的一种融入多视图特征的双通道智能合约缺陷检测方法,其特征在于:在步骤1.1中,语法树特征fast的提取,具体步骤如下:
4.根据权利要求3所述的一种融入多视图特征的双通道智能合约缺陷检测方法,其特征在于:在步骤2中,对智能合约代码Set(i)进行注释特征fann、gas消耗值特征fgas提取后,将代码特征fcodefeature、注释特征fann、gas消耗值特征fgas加权融合,得到文本语义特征ftext_seman,包括以下步骤:
5.根据权利要求4所述的一种融入多视图特征的双通道智能合约缺陷检测方法,其特征在于:在步骤1.3和步骤2.1中,在智能合
6.根据权利要求1所述的一种融入多视图特征的双通道智能合约缺陷检测方法,其特征在于:在步骤3中,对智能合约代码Set(i)进行视觉语法树特征fvisual_ast和视觉执行逻辑特征fvisual_elg提取后,将所有视觉特征向量加权融合,得到视觉语义特征fvisual_seman,包括以下步骤:
7.根据权利要求6所述的一种融入多视图特征的双通道智能合约缺陷检测方法,其特征在于:在步骤3.2中,树结构的视觉图像获取方法为:
8.根据权利要求1所述的一种融入多视图特征的双通道智能合约缺陷检测方法,其特征在于:在步骤4中,将得到的文本语义特征ftext_seman和视觉语义特征fvisual_seman加权融合,得到新的特征向量fseman,将新的特征向量fseman进行建模,得到缺陷检测模型,包括以下步骤:
9.根据权利要求1所述的一种融入多视图特征的双通道智能合约缺陷检测方法,其特征在于:在步骤5中,获取智能合约数据集Set,将数据标注,划分训练集和测试集,训练缺陷检测模型,基于训练后的缺陷检测模型获取待测智能合约的缺陷检测结果,包括以下步骤:
10.根据权利要求9所述的一种融入多视图特征的双通道智能合约缺陷检测方法,其特征在于:
...【技术特征摘要】
1.一种融入多视图特征的双通道智能合约缺陷检测方法,其特征在于:包括以下步骤:
2.根据权利要求1所述的一种融入多视图特征的双通道智能合约缺陷检测方法,其特征在于:在步骤1中,对智能合约代码set(i)进行语法树特征fast、执行逻辑特征felg、文本特征fcode提取,并将提取后的三个特征向量进行加权融合,得到代码特征fcodefeature,包括以下步骤:
3.根据权利要求2所述的一种融入多视图特征的双通道智能合约缺陷检测方法,其特征在于:在步骤1.1中,语法树特征fast的提取,具体步骤如下:
4.根据权利要求3所述的一种融入多视图特征的双通道智能合约缺陷检测方法,其特征在于:在步骤2中,对智能合约代码set(i)进行注释特征fann、gas消耗值特征fgas提取后,将代码特征fcodefeature、注释特征fann、gas消耗值特征fgas加权融合,得到文本语义特征ftext_seman,包括以下步骤:
5.根据权利要求4所述的一种融入多视图特征的双通道智能合约缺陷检测方法,其特征在于:在步骤1.3和步骤2.1中,在智能合约代码set(i)对应的注释文本,输入到sentence-bert模型中提取文本特征fcode和注释特征fann之前,使用数据集微调sentenc...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。