CN118051438A - 一种基于图神经网络的智能合约漏洞检测方法 - Google Patents
一种基于图神经网络的智能合约漏洞检测方法 Download PDFInfo
- Publication number
- CN118051438A CN118051438A CN202410274076.7A CN202410274076A CN118051438A CN 118051438 A CN118051438 A CN 118051438A CN 202410274076 A CN202410274076 A CN 202410274076A CN 118051438 A CN118051438 A CN 118051438A
- Authority
- CN
- China
- Prior art keywords
- node
- graph
- nodes
- contract
- function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 33
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 29
- 230000006870 function Effects 0.000 claims abstract description 70
- 238000000034 method Methods 0.000 claims abstract description 37
- 230000007246 mechanism Effects 0.000 claims abstract description 22
- 230000002776 aggregation Effects 0.000 claims abstract description 13
- 238000004220 aggregation Methods 0.000 claims abstract description 13
- 230000004931 aggregating effect Effects 0.000 claims abstract description 7
- 238000005070 sampling Methods 0.000 claims abstract description 4
- 239000011159 matrix material Substances 0.000 claims description 9
- 239000013598 vector Substances 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 4
- 230000004913 activation Effects 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000013461 design Methods 0.000 claims description 3
- 238000011176 pooling Methods 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 3
- 238000007689 inspection Methods 0.000 claims description 2
- 238000003062 neural network model Methods 0.000 abstract description 3
- 238000013507 mapping Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 241001144268 Echidna Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/042—Knowledge-based neural networks; Logical representations of neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于图神经网络的智能合约漏洞检测方法。该方法首先将智能合约映射为合约图,节点包括主要函数节点、主要变量节点和回退节点,边包括控制流边、数据流边、前向边和后向边。然后,基于聚合邻居节点信息的图采样聚集层、无度图卷积层和图注意力机制,构建了图神经网络模型。该模型通过学习每个合约图的特征,利用图神经网络训练算法进行训练,并通过连接节点和边的属性特征进行向量化,实现了智能合约的漏洞检测。该方法为智能合约安全性提供了一个新的视角,能够有效识别漏洞并提供详细的漏洞信息,帮助开发者查找和定位漏洞,有效提高了智能合约的安全性和稳定性。
Description
技术领域
本发明属于计算机领域,更具体的说涉及一种基于图神经网络的智能合约漏洞检测方法。
背景技术
目前已经有许多智能合约漏洞检测方法。传统的漏洞检测方法仅仅通过智能合约的源代码检测漏洞,由于大部分智能合约的源代码不开源,因此必须通过人工来检查判断智能合约是否存在漏洞,很明显,这种方式没有任何效率可言。
为了解决这一问题,已有研究提出基于形式化验证的方法和工具如ZEUS和KEVM,但由于形式验证需要相关专家参与建模,因此形式验证很难被使用。还有将智能合约源代码中的变量符号化,通过符号化程序输入,最终检测其是否存在漏洞,如Oyente、Maian和Mythril。
有的研究提出了模糊测试的方法来检测智能合约的漏洞,如Echidna、ContractFuzzer和ILF,从目标应用程序中生成大量正常和异常的测试用例,尝试将生成的用例提供给目标应用程序,并监视执行状态中的异常结果以发现智能合约的安全问题。
Erays方法利用逆向工程的思想来进行漏洞检测,从十六进制编码的智能合约作为输入,将十六进制的字符串分解为EVM指令,从十六进制字符串的第一个字节开始,每个字节被顺序解码成相应的指令,而后从基本块中恢复控制流图,以此来进行漏洞检测工作。
这些方法或工具虽然能够较好地分析智能合约漏洞,但他们都属于半自动检测工具,需要手动进行其他操作才能完成全部流程的操作。随着智能合约的快速发展,这些工具的适应性会大打折扣。
发明内容
本方法使用图神经网络进行自动化的智能合约漏洞检测,通过将智能合约转换为了智能合约图,并提取智能合约特征信息,能准确、有效、自动地检测智能合约是否存在漏洞。
为了实现上述目的,本发明是采用以下技术方案实现的:所述的检查方法包括:
定义智能合约图的基本信息,将智能合约转换为合约图;将程序中的节点分为了三类,分别是主要函数节点、主要变量节点和回退节点;
根据节点之间的关系来构建边,构建四种类型的边,即控制流边、数据流边、前向边和后向边;
智能合约语义图生成;
合约图收缩;对生成的合约图进行初步的信息聚合,得到简化的图数据,图特征包含节点、边和图三个维度的特征;
从合约图中提取每个合约图的特征;使用Graph2Vec方法对节点和边特征进行向量化,将原始符号化特征转换为低维稠密向量再输入图神经网络进行智能合约的漏洞检测;
将合约图输入图神经网络进行检测;图神经网络中分为三个不同的网络层,其中分别为图采样聚集层、无度图卷积层和图注意力层,将合约图数据分别输入三个不同的网络结构中进行处理;最后,输出检测结果。
在一个方案中,所述的主要函数节点为对智能合约中自定义或者内置函数的一个调用,重要的函数定义为主要函数节点,用M1,M2…,Mn表示;
所述的主要变量节点为智能合约中出现的重要变量,为用户的余额和在智能合约调用中所传递的消息,用V1,V2,…,Vn表示;
所述的回退节点智能合约中的一种特殊设计,当合约接收到不可识别或未匹配任何函数调用时,会执行一个默认的回退操作,用F表示。
在一个方案中,所述的边,根据节点之间的关系来构建边;每条边代表着智能合约执行过程中所遍历的一条路径,边的时间数代表其在函数执行过程中的顺序;
边用一个元组(Vs,Ve,o,t)来进行表示,其中Vs代表起始节点,Ve代表结束节点,o代表时间顺序,t代表边的类型。
在一个方案中,所述的智能合约语义图生成具体如下:
智能合约从主要函数节点M1,经过前向边到达主要变量节点V1,V1触发条件判断产生自环控制流边,随后通过前向边到达V2,V2进行自增操作,出发数据流边;
之后再经过前向边调用主要函数节点M2,触发M2函数调用;调用至M2函数中,触发数据流执行到V2,V2触发赋值语句形成数据流边至V3;
再通过前向边返回值V2,V2通过数据流随之到达V3,V3经过前向边调用主要函数节点M3函数,M3函数通过回退边返回至F节点,F节点回退至主要函数节点M1,最后通过数据流边对主要变量节点V1进行赋值,至此,智能合约运行结束。
在一个方案中,所述的合约图收缩具体如下:
移除所有的主要变量节点,将其特征传递给它最近的主要函数节点;
如果存在多个最近的主要函数节点,将特征传递给所有的主要函数节点;
其次,按照移除主要变量节点的方式将回退节点删除;所有的边都将保留,其对应的起始节点和结束节点都将移动至对应的主要函数节点;
在所有的非主要函数节点移除以后,为区分聚合后主要变量节点与原主要变量节点,将Mi的新主要变量节点记为Fi。
在一个方案中,所述的将合约图输入图神经网络进行检测具体过程如下:
图采样聚集层:图采样聚集层主要对每个节点,通过聚合邻居节点的信息并结合自身的信息来更新节点的表示,实现图上的卷积操作,其中的卷积操作如下:
其中为是节点v在第l层的表示(特征),/>为是节点v在第l+1层的表示,AGGREGATE表示邻居节点特征的聚合操作,包括均值、池化等,CONCAT是将聚合后的特征与原始节点特征连接的操作,W(l)是权重矩阵,σ则是激活函数;
无度图卷积层:无度图卷积层中也包含两个卷积层,与GCL不同的是,DR-GCL中输入的合约图为归一化以后的合约图数据,因此无需在对矩阵进行归一化,公式如下:
Xl+1=σ((A2+I)XlWl)
图注意力机制:图注意力机制在节点之间的信息传递中引入注意力机制,以更灵活地学习节点之间的关系权重;对于图中的每个节点i,图注意力机制通过聚合邻居节点的特征来更新节点i的表示;表示更新的公式如下:
其中:h'i是节点i更新后的表示。Ni是节点i的邻居节点集合。hi是节点i的原始表示;αij是节点i与邻居节点j之间的注意力权重,通过以下公式计算:
其中a是注意力权重的可学习参数向量;[W·hi||W·hj]表示节点i和节点j的特征按列连接;为增强方法的表达能力,引入了多头注意力机制;多头注意力机制的公式如下:
MultiHead(H)=Concat(Head1(H),...,Headk(H))
H表示输入节点特征矩阵,Headi(H)表示第i个注意力头的计算;每个头的计算方式与单头的注意力机制相同。
本发明有益效果:
采用图神经网络进行智能合约的漏洞检测,能够有效地识别和预防智能合约中的安全漏洞,增强了区块链系统的安全性和稳定性;
将智能合约转换为图结构,能够更好地反映出智能合约的运行逻辑和数据流动情况,有助于对智能合约的漏洞进行深入的理解和分析;
通过对图的节点和边进行向量化,将复杂的图结构转化成数值型的特征,便于输入图神经网络进行处理,大大提高了漏洞检测的效率;
图神经网络中的图采样聚集层、无度图卷积层和图注意力机制可以根据节点之间的关系的重要程度对信息进行权重分配,提高了漏洞检测的准确性。
附图说明
图1为本发明方法流程图;
图2为本发明方法智能合约语义图生成流程;
图3为本发明方法智能合约语义图收缩图;
图4为图神经网络模型的智能合约漏洞检测方法。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的典型实施例。但是,本发明可以以许多不同的形式来实现,并不限于本发明所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
除非另有定义,本发明所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本发明中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
本发明总的方法过程由图1所示。首先,将智能合约的源代码转换为控制流图和数据流图相结合的异构图;其次,将异构图进行合并简化同构图;第三,从合约图中提取每个合约图的特征;并对每个合约图进行标记;第四,将合约图输入图神经网络进行检测;最后,输出检测结果。
在计算机科学中,图是由点和边构成的一种数据结构,它通过边表达点与点之间的关系。从点、边及全局(或图)的角度定义智能合约图的基本信息。
首先,将智能合约转换为合约图。在合约图中,节点代表合约Solidity源码中的重要元素,如函数和变量名,将程序中的节点分为了三类,分别是主要函数节点、主要变量节点和回退节点。
主要函数节点:主要函数节点主要为对智能合约中自定义或者内置函数的一个调用,这些函数在可重入漏洞的检测中扮演重要的角色。例如call.value()函数,正是因为不规范的使用call.value()函数才会导致可重入漏洞的出现。因此,把重要的函数定义为主要函数节点,用M1,M2…,Mn表示。
主要变量节点:主要变量节点主要为智能合约中出现的重要变量,例如用户的余额和在智能合约调用中所传递的消息。用V1,V2,…,Vn表示。
回退节点:除了上述的两种节点以外,还构建了一个回退节点。回退功能是智能合约中的一种特殊设计,当合约接收到不可识别或未匹配任何函数调用时,会执行一个默认的回退操作,这也是很多安全漏洞的根源,用F表示。
边:在构建完节点以后,将进一步根据节点之间的关系来构建边。每条边都代表着智能合约执行过程中所遍历的一条路径,边的时间数代表其在函数执行过程中的顺序。总的来说,边可以用一个元组(Vs,Ve,o,t)来进行表示,其中Vs代表起始节点,Ve代表结束节点,o代表时间顺序,t代表边的类型。为了捕获节点之间丰富的语义依赖关系,构建了四种类型的边,即控制流边、数据流边、前向边和后向边。表I列出了边的详细信息。
表1智能合约边的总结
图2展示了智能合约的语义关系提取过程。智能合约从主要函数节点M1(即getBonus函数)出发,经过前向边到达主要变量节点V1(即Bonus[recipient]),V1触发条件判断产生自环控制流边,随后通过前向边到达V2(即Reward[recipient]),V2进行自增操作,出发数据流边。之后再经过前向边调用主要函数节点M2,触发M2函数调用。调用至M2函数中,触发数据流执行到V2,V2触发赋值语句形成数据流边至V3(即amount)。再通过前向边返回值V2,V2通过数据流随之到达V3,V3经过前向边调用主要函数节点M3函数,M3函数通过回退边返回至F节点(即回退节点),F节点回退至主要函数节点M1,最后通过数据流边对主要变量节点V1进行赋值,至此,智能合约运行结束。
由于智能合约源代码的复杂性差异和合约图中信息的多样性,不利于模型学习,合约收缩对上节生成的合约图进行初步的信息聚合。如图3所示,首先,会移除所有的主要变量节点,将其特征传递给它最近的主要函数节点。如果存在多个最近的主要函数节点,这会将特征传递给所有的主要函数节点。其次,会按照移除主要变量节点的方式将回退节点删除。所有的边都将保留,其对应的起始节点和结束节点都将移动至对应的主要函数节点。在所有的非主要函数节点移除以后,为了区分聚合后主要变量节点与原主要变量节点,将Mi的新主要变量节点记为Fi。
合约图收缩后,得到简化的图数据,图特征包含节点、边和图三个维度的特征。使用了Graph2Vec方法对节点和边特征进行向量化,将原始符号化特征转换为低维稠密向量再输入图神经网络进行智能合约的漏洞检测。
图4展示了的图神经网络模型。图神经网络中分为三个不同的网络层,其中分别为图卷积层、无度图卷积层和图注意力层。将合约图数据分别输入三个不同的网络结构中进行处理,接下来介绍三个网络结构。
图采样聚集层:图采样聚集层主要对每个节点,通过聚合邻居节点的信息并结合自身的信息来更新节点的表示,从而实现图上的卷积操作,其中的卷积操作如下:
其中为是节点v在第l层的表示(特征),/>为是节点v在第l+1层的表示,AGGREGATE表示邻居节点特征的聚合操作,包括均值、池化等,CONCAT是将聚合后的特征与原始节点特征连接(拼接)的操作,W(l)是权重矩阵,σ则是激活函数。
无度图卷积层:无度图卷积层中也包含两个卷积层,与GCL不同的是,DR-GCL中输入的合约图为归一化以后的合约图数据,因此无需在对矩阵进行归一化,公式如下:
Xl+1=σ((A2+I)XlWl)
图注意力机制:除了上述的神经网络层以外,还引入了注意力机制。图注意力机制在节点之间的信息传递中引入了注意力机制,以更灵活地学习节点之间的关系权重。对于图中的每个节点i,图注意力机制通过聚合邻居节点的特征来更新节点i的表示。表示更新的公式如下:
其中:hi'是节点i更新后的表示。Ni是节点i的邻居节点集合。hi是节点i的原始表示。αij是节点i与邻居节点j之间的注意力权重,通过以下公式计算:
其中a是注意力权重的可学习参数向量。[W·hi||W·hj]表示节点i和节点j的特征按列连接。为了增强方法的表达能力,引入了多头注意力机制。多头注意力机制的公式如下:
MultiHead(H)=Concat(Head1(H),...,Headk(H))
H表示输入节点特征矩阵,Headi(H)表示第i个注意力头的计算。每个头的计算方式与单头的注意力机制相同。
本方法在智能合约的漏洞检测方面十分有效。这是因为,首先,我们将智能合约的源代码以图的形式表示。由于许多的智能合约源代码结构非常复杂,因此我们用合约图来描述智能合约进行输入,这样使得本方法有着不同于传统方法的输入方式,传统方法的输入大部分均为智能合约的源代码。简而言之,本方法的输入简化成了图结构,而不是复杂的源代码作为输入。其次,本方法使用了多个图神经网络层,图神经网络可以通过学习节点和边的表示,有效的捕捉节点和边的关系和结构,最终实现智能合约的漏洞检测。在图生成阶段,由于回退函数是导致诸多漏洞的一个原因,因此我们将智能合约中的回退函数专门抽象为了一类节点。我们关注回退函数的目的在于,防止智能合约的在转为合约图的过程中损失重要的信息,因此提升了智能合约漏洞检测的精度。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
应当理解,以上借助优选实施例对本发明的技术方案进行的详细说明是示意性的而非限制性的。本领域的普通技术人员在阅读本发明说明书的基础上可以对各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (6)
1.一种基于图神经网络的智能合约漏洞检测方法,其特征在于:所述的检查方法包括:
定义智能合约图的基本信息,将智能合约转换为合约图;将程序中的节点分为了三类,分别是主要函数节点、主要变量节点和回退节点;
根据节点之间的关系构建四种类型的边,即控制流边、数据流边、前向边和后向边;
智能合约语义图生成;
合约图收缩;对生成的合约图进行初步的信息聚合,得到简化的图数据;
从合约图中提取每个合约图的特征,特征包含节点、边和图三个维度的特征;使用Graph2Vec方法对节点和边特征进行向量化,将原始符号化特征转换为低维稠密向量再输入图神经网络进行智能合约的漏洞检测;
将合约图输入图神经网络进行检测;图神经网络中分为三个不同的网络层,其中分别为图采样聚集层、无度图卷积层和图注意力层,将合约图数据分别输入三个不同的网络结构中进行处理;最后,输出检测结果。
2.根据权利要求1所述的一种基于图神经网络的智能合约漏洞检测方法,其特征在于:所述的主要函数节点为智能合约中自定义或者内置函数的一个调用,重要的函数定义为主要函数节点,用M1,M2…,Mn表示;
所述的主要变量节点为智能合约中出现的重要变量,为用户的余额和在智能合约调用中所传递的消息,用V1,V2,…,Vn表示;
所述的回退节点是智能合约中的一种特殊设计,当合约接收到不可识别或未匹配任何函数调用时,会执行一个默认的回退操作,用F表示。
3.根据权利要求1所述的一种基于图神经网络的智能合约漏洞检测方法,其特征在于:所述的边,根据节点之间的关系来构建边;每条边代表着智能合约执行过程中所遍历的一条路径,边的时间数代表其在函数执行过程中的顺序;
边用一个元组(Vs,Ve,o,t)来进行表示,其中Vs代表起始节点,Ve代表结束节点,o代表时间顺序,t代表边的类型。
4.根据权利要求1所述的一种基于图神经网络的智能合约漏洞检测方法,其特征在于:所述的智能合约语义图生成具体如下:
智能合约从主要函数节点M1,经过前向边到达主要变量节点V1,V1触发条件判断产生自环控制流边,随后通过前向边到达V2,V2进行自增操作,出发数据流边;
再经过前向边调用主要函数节点M2,触发M2函数调用;调用至M2函数中,触发数据流执行到V2,V2触发赋值语句形成数据流边至V3;
再通过前向边返回值V2,V2通过数据流随之到达V3,V3经过前向边调用主要函数节点M3函数,M3函数通过回退边返回至F节点,F节点回退至主要函数节点M1,最后通过数据流边对主要变量节点V1进行赋值,至此,智能合约运行结束。
5.根据权利要求1所述的一种基于图神经网络的智能合约漏洞检测方法,其特征在于:所述的合约图收缩具体如下:
移除所有的主要变量节点,将其特征传递给它最近的主要函数节点;
如果存在多个最近的主要函数节点,将特征传递给所有的主要函数节点;
按照移除主要变量节点的方式将回退节点删除;所有的边都将保留,其对应的起始节点和结束节点都将移动至对应的主要函数节点;
在所有的非主要函数节点移除以后,为区分聚合后主要变量节点与原主要变量节点,将Mi的新主要变量节点记为Fi。
6.根据权利要求1所述的一种基于图神经网络的智能合约漏洞检测方法,其特征在于:所述的将合约图输入图神经网络进行检测具体过程如下:
图采样聚集层:图采样聚集层对每个节点,通过聚合邻居节点的信息并结合自身的信息来更新节点的表示,实现图上的卷积操作,其中的卷积操作如下:
其中为是节点v在第l层的表示特征,/>为是节点v在第l+1层的表示,AGGREGATE表示邻居节点特征的聚合操作,包括均值、池化等,CONCAT是将聚合后的特征与原始节点特征连接的操作,W(l)是权重矩阵,σ则是激活函数;
无度图卷积层:无度图卷积层中也包含两个卷积层,与GCL不同的是,DR-GCL中输入的合约图为归一化以后的合约图数据,因此无需在对矩阵进行归一化,公式如下:
Xl+1=σ((A2+I)XlWl)
图注意力机制:图注意力机制在节点之间的信息传递中引入注意力机制,以更灵活地学习节点之间的关系权重;对于图中的每个节点i,图注意力机制通过聚合邻居节点的特征来更新节点i的表示;表示更新的公式如下:
其中:h'i是节点i更新后的表示;Ni是节点i的邻居节点集合;hi是节点i的原始表示;αij是节点i与邻居节点j之间的注意力权重,通过以下公式计算:
其中a是注意力权重的可学习参数向量;[W·hi||W·hj]表示节点i和节点j的特征按列连接;为增强方法的表达能力,引入了多头注意力机制;多头注意力机制的公式如下:
MultiHead(H)=Concat(Head1(H),...,Headk(H))
H表示输入节点特征矩阵,Headi(H)表示第i个注意力头的计算;每个头的计算方式与单头的注意力机制相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410274076.7A CN118051438A (zh) | 2024-03-11 | 2024-03-11 | 一种基于图神经网络的智能合约漏洞检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410274076.7A CN118051438A (zh) | 2024-03-11 | 2024-03-11 | 一种基于图神经网络的智能合约漏洞检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118051438A true CN118051438A (zh) | 2024-05-17 |
Family
ID=91050091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410274076.7A Pending CN118051438A (zh) | 2024-03-11 | 2024-03-11 | 一种基于图神经网络的智能合约漏洞检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118051438A (zh) |
-
2024
- 2024-03-11 CN CN202410274076.7A patent/CN118051438A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110837550B (zh) | 基于知识图谱的问答方法、装置、电子设备及存储介质 | |
CN112800172B (zh) | 一种基于两阶段注意力机制的代码搜索方法 | |
CN106997474A (zh) | 一种基于深度学习的图节点多标签分类方法 | |
Shimada et al. | Class association rule mining with chi-squared test using genetic network programming | |
Zeng et al. | EtherGIS: a vulnerability detection framework for Ethereum smart contracts based on graph learning features | |
CN106682514B (zh) | 基于子图挖掘的系统调用序列特征模式集生成方法 | |
CN105183796A (zh) | 一种基于聚类的分布式链路预测方法 | |
CN111432003B (zh) | 应用于云计算的数据推送方法、装置、电子设备及系统 | |
CN108491228A (zh) | 一种二进制漏洞代码克隆检测方法及系统 | |
CN111581092A (zh) | 仿真测试数据的生成方法、计算机设备及存储介质 | |
CN116663019B (zh) | 一种源代码漏洞检测方法、装置和系统 | |
CN115146279A (zh) | 程序漏洞检测方法、终端设备及存储介质 | |
KR20200117690A (ko) | 멀티 홉 이웃을 이용한 컨볼루션 학습 기반의 지식 그래프 완성 방법 및 장치 | |
CN116150757A (zh) | 一种基于cnn-lstm多分类模型的智能合约未知漏洞检测方法 | |
CN117422031A (zh) | Atpg系统测试向量生成和精简的方法和装置 | |
CN113312058B (zh) | 一种智能合约二进制函数的相似性分析方法 | |
CN113626034A (zh) | 一种基于传统特征和语义特征结合的缺陷预测方法 | |
CN116702157B (zh) | 一种基于神经网络的智能合约漏洞检测方法 | |
CN118051438A (zh) | 一种基于图神经网络的智能合约漏洞检测方法 | |
CN116383832A (zh) | 一种基于图神经网络的智能合约漏洞检测方法 | |
CN111638926A (zh) | 人工智能在Django框架中的一种实现方法 | |
Li et al. | Human-like UI Automation through Automatic Exploration | |
CN115454473A (zh) | 基于深度学习漏洞决策的数据处理方法及信息安全系统 | |
CN115879868B (zh) | 一种专家系统与深度学习相融合的智能合约安全审计方法 | |
CN115620807B (zh) | 靶点蛋白分子与药物分子之间相互作用强度的预测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |