System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于区块链领域,具体涉及一种面向智能合约的全局特征增广的图注意力网络漏洞检测方法。
技术介绍
1、区块链是在计算机网络节点之间共享的分布式数据库,以数字格式保存电子信息。与传统数据库不同,区块链会以分组(块)的形式收集信息,并且以时间顺序将块连接起来以确保数据可靠性。区块链近年来引起了产业界的广泛关注。由于区块链系统的开放、去中心化和自治性,海量的区块链数据为企业提供了巨大的商业价值和机遇。以商业交易数据为例,以往由于数据所有者的隐私或所有权问题,研究人员很难获得真实的商业交易数据,然而,现有区块链系统中的所有数据都是公开可用的,同时,由于区块链系统的去中心化,无权限区块链中的区块链数据几乎可以在各地被访问,此外,区块链的分布式共识也保证了区块链数据的自治性。
2、以太坊支持图灵完整的智能合约,智能合约可以理解为自动执行的合约,可将买卖双方之间的协议条款直接写进代码逻辑,而代码和其中包含的协议存在于一个分布式的区块链网络中。代码能够包含协议,即在满足一定条件时自动执行提前预定好的操作,包括转账、做决策、与其他合约交互等。目前,有数以千计的智能合约已经部署在以太坊平台上,以太坊上部署的智能合约数量仍在快速增长。
3、由于智能合约通常与加密货币交易相关联,合约漏洞可能会导致严重的安全问题和经济损失。
4、目前,针对智能合约已知漏洞检测的研究主要集中在分析合约本身的执行流程上。具体而言,研究人员通常采用静态分析与动态分析相结合的方法来识别潜在的安全漏洞。静态分析方法侧重于在不实际执行代码的
5、尽管上述方法在一定程度上提高了智能合约的安全性,但仍存在漏洞检测缺乏全面性和合约类别信息利用不足的问题。具体而言,现有的检测方法往往过于关注合约代码层面的分析,而忽视了对合约执行行为及其背后业务逻辑的深入理解,这可能导致某些隐蔽的漏洞未能被及时发现,尤其是在涉及复杂业务逻辑的智能合约中。此外,不同类型的智能合约(如erc-20代币合约、去中心化交易所合约等)有着不同的设计目的和安全需求。然而,当前的研究较少考虑将合约的类别信息纳入漏洞检测过程中,从而影响了检测结果的准确性。因此如何将合约代码的执行流、合约执行时账户信息特征及合约类别特征充分运用在合约漏洞检测中成为研究人员的热点。
技术实现思路
1、本专利技术的目的是为解决现有智能合约漏洞检测方法未考虑合约执行时账户信息特征以及合约类别特征,导致漏洞检测的准确率低的问题,而提出了一种面向智能合约的全局特征增广的图注意力网络漏洞检测方法。
2、本专利技术为解决上述技术问题所采取的技术方案是:一种面向智能合约的全局特征增广的图注意力网络漏洞检测方法,所述方法具体包括以下步骤:
3、步骤1、将以太坊solidity智能合约代码中的变量和函数分别作为合约图的节点,将以太坊solidity智能合约代码中的执行流作为合约图的边,得到构建出的合约图;
4、步骤2、将合约类别和合约执行时的账户信息特征作为全局虚拟节点添加到合约图中,将合约图中的其它各个节点分别与全局虚拟节点相连,得到更新后的合约图;
5、步骤3、对合约图进行收缩,得到收缩后的合约图;再对收缩后的合约图中的节点特征和边特征进行转换,得到转换后的节点特征和边特征;
6、步骤4、将转换后的节点特征和边特征输入漏洞检测模型中,漏洞检测模型内包括图注意力模块、特征汇聚模块以及分类器;
7、图注意力模块用于对转换后的节点特征和边特征进行更新,得到更新后的节点特征和边特征;
8、特征汇聚模块用于对更新后的节点特征和边特征进行汇聚处理,得到汇聚的节点特征和边特征;
9、分类器用于对汇聚的节点特征和边特征进行处理,得到智能合约漏洞检测结果。
10、进一步地,所述合约图的节点包括主节点、辅助节点和回调节点;
11、所述主节点包括与转账操作相关的变量和函数、与时间戳相关的函数和变量、与循环相关的函数和变量、参与运算的数字变量以及参与运算的函数的出参以及入参;
12、所述辅助节点包括除主节点和回调函数之外的变量和函数;
13、所述回调节点包括回调函数。
14、进一步地,所述合约图的边包括控制流边、数据流边、前向边和回调边。
15、进一步地,所述对合约图进行收缩,具体为:
16、对于合约图中的任意一个辅助节点,将该辅助节点收缩到与该辅助节点最近的主节点,对于合约图中的任意一个回调节点,将该回调节点收缩到与该回调节点最近的主节点;
17、收缩后的主节点特征为:
18、vi=vi+∑iai+∑ifi
19、其中,vi是原始合约图中第i个主节点的特征,vi是收缩后的合约图中第i个主节点的特征,∑iai表示收缩到第i个主节点的全部回调节点的特征和,∑ifi表示收缩到第i个主节点的全部辅助节点的特征和。
20、进一步地,所述对收缩后的合约图中的节点特征和边特征进行转换,具体为:
21、采用word2vec编码将收缩后合约图中的节点特征、边特征以及全局虚拟节点中的账户信息特征转换为向量特征;
22、将全局虚拟节点中的合约类别特征转换为one-hot编码。
23、进一步地,所述图注意力模块内包括并行的k头图注意力网络。
24、进一步地,所述步骤4中,转换后的边特征的更新方法为:
25、对于收缩后合约图中的第j条边:
26、步骤s1、计算中间变量ejn:
27、ejn=α(wkej,wken)
28、其中,wk是第k头图注意力网络的权重矩阵,α表示权重向量,ej是转换后第j条边的特征,en是转换后第n条边的特征,n=j-1或j+1;
29、则注意力分数αjn为:
30、αjn=softmax(ejn)
31、其中,softmax(·)是激活函数;
32、步骤s2、计算中间变量ejm和ej(m+1):
33、ejm=α(wkej,wkρvm)
34、ej(m+1)=a(wkej,wkρvm+1)
35、其中,vm和vm+1是第j条边连接的两个节点的转换后特征,ρvm表示vm的映射后特征,ρvm+1表示vm+1的映射后特征;
36、则注意力分数αjm和αj(m+1)为:
37、αjm=softmax(ejm)
38、αj(m+1)=softmax(ej(m+1))
39、步骤s3、计算中间变量eju:
40、eju=α(wkej,wkρ'u)
41、其中,ρ'u表示u的映射后特征;
4本文档来自技高网...
【技术保护点】
1.一种面向智能合约的全局特征增广的图注意力网络漏洞检测方法,其特征在于,所述方法具体包括以下步骤:
2.根据权利要求1所述的一种面向智能合约的全局特征增广的图注意力网络漏洞检测方法,其特征在于,所述合约图的节点包括主节点、辅助节点和回调节点;
3.根据权利要求2所述的一种面向智能合约的全局特征增广的图注意力网络漏洞检测方法,其特征在于,所述合约图的边包括控制流边、数据流边、前向边和回调边。
4.根据权利要求3所述的一种面向智能合约的全局特征增广的图注意力网络漏洞检测方法,其特征在于,所述对合约图进行收缩,具体为:
5.根据权利要求3所述的一种面向智能合约的全局特征增广的图注意力网络漏洞检测方法,其特征在于,所述对收缩后的合约图中的节点特征和边特征进行转换,具体为:
6.根据权利要求5所述的一种面向智能合约的全局特征增广的图注意力网络漏洞检测方法,其特征在于,所述图注意力模块内包括并行的K头图注意力网络。
7.根据权利要求6所述的一种面向智能合约的全局特征增广的图注意力网络漏洞检测方法,其特征在于,所述步骤4
8.根据权利要求7所述的一种面向智能合约的全局特征增广的图注意力网络漏洞检测方法,其特征在于,所述步骤4中,转换后的节点特征的更新方法为:
9.根据权利要求8所述的一种面向智能合约的全局特征增广的图注意力网络漏洞检测方法,其特征在于,所述特征汇聚模块对更新后的节点特征和边特征进行汇聚处理,得到汇聚的节点特征和边特征;具体为:
10.根据权利要求9所述的一种面向智能合约的全局特征增广的图注意力网络漏洞检测方法,其特征在于,所述分类器用于对汇聚的节点特征和边特征进行处理,得到智能合约漏洞检测结果,具体为:
...【技术特征摘要】
1.一种面向智能合约的全局特征增广的图注意力网络漏洞检测方法,其特征在于,所述方法具体包括以下步骤:
2.根据权利要求1所述的一种面向智能合约的全局特征增广的图注意力网络漏洞检测方法,其特征在于,所述合约图的节点包括主节点、辅助节点和回调节点;
3.根据权利要求2所述的一种面向智能合约的全局特征增广的图注意力网络漏洞检测方法,其特征在于,所述合约图的边包括控制流边、数据流边、前向边和回调边。
4.根据权利要求3所述的一种面向智能合约的全局特征增广的图注意力网络漏洞检测方法,其特征在于,所述对合约图进行收缩,具体为:
5.根据权利要求3所述的一种面向智能合约的全局特征增广的图注意力网络漏洞检测方法,其特征在于,所述对收缩后的合约图中的节点特征和边特征进行转换,具体为:
6.根据权利要求5所述的一种面向智能合约的全局特征...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。