CN111460454A - 一种基于栈指令序列的智能合约相似度检索方法及系统 - Google Patents

一种基于栈指令序列的智能合约相似度检索方法及系统 Download PDF

Info

Publication number
CN111460454A
CN111460454A CN202010176290.0A CN202010176290A CN111460454A CN 111460454 A CN111460454 A CN 111460454A CN 202010176290 A CN202010176290 A CN 202010176290A CN 111460454 A CN111460454 A CN 111460454A
Authority
CN
China
Prior art keywords
layer
intelligent contract
vector
instruction
output
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
Application number
CN202010176290.0A
Other languages
English (en)
Inventor
柳阳
敖翔
庄福振
罗平
何清
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN202010176290.0A priority Critical patent/CN111460454A/zh
Publication of CN111460454A publication Critical patent/CN111460454A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提出一种基于栈指令序列的智能合约相似度检索方法及系统,包括:在以太坊虚拟机上获得待检测的智能合约被执行时的栈指令序列,通过神经网络建模该栈指令序列进而将该智能合约向量化,得到该智能合约的向量表示,并通过向量相似度分析,检索得到与该向量表示最相似的智能合约。该向量相似度分析可作为安全检测的提供依据。

Description

一种基于栈指令序列的智能合约相似度检索方法及系统
技术领域
本发明涉及区块链智能合约建模,并特别涉及一种基于栈指令序列的智能合约相似度检索方法及系统。
背景技术
现有的智能合约分析工具,主要基于智能合约的代码和字节码,研究表明,经过代码块的对比,96%以上的现有智能合约代码存在相似的冗余行,这会导致功能不同的合约相似度增大,因此代码层面的比较不能很好地度量合约之间的相似性。
发明内容
本发明的目的是解决智能合约的相似度计算问题,提出了一种基于栈指令序列的智能合约相似度检索方法及系统。
针对现有技术的不足,本发明提出一种基于栈指令序列的智能合约相似度检索方法,包括:
在以太坊虚拟机上获得待检测的智能合约被执行时的栈指令序列,通过神经网络建模该栈指令序列进而将该智能合约向量化,得到该智能合约的向量表示,并通过向量相似度分析,检索得到与该向量表示最相似的智能合约。
所述的基于栈指令序列的智能合约相似度检索方法,该神经网络包括一个输入层、多个编码层、一个输出层和Softmax层;输入层是指令的输入向量,每层编码层中各个编码器之间有双向连接,输出层是每层指令得到的学习向量,Softmax层输出的是对下一个指令预测的概率值。
所述的基于栈指令序列的智能合约相似度检索方法,待检测的智能合约c的栈指令序列为Sc=(s1,s2,…,sN),Sc的长度为N,指令st(t=1,…,N)的输入层向量为
Figure BDA0002410936560000011
该神经网络第
Figure BDA0002410936560000012
层得到的向量为
Figure BDA0002410936560000013
其中编码层共有L-1层,第L层为输出层,智能合约c的输入层向量为
Figure BDA0002410936560000014
Figure BDA0002410936560000015
层得到的向量为
Figure BDA0002410936560000016
编码层中的编码器使用长短时记忆网络,以正向LSTM的前向传播为例,介绍编码器中的运算,记t时刻第
Figure BDA0002410936560000021
层的输出特征为:
Figure BDA0002410936560000022
Figure BDA0002410936560000023
所述的基于栈指令序列的智能合约相似度检索方法,该长短时记忆网络编码器网络包含遗忘门ft、输入门it、输出门ot和细胞单元Ct,更新公式如下
ft=σ(Wfht-1+Ufxt+bf)
it=σ(Wiht-1+Uixt+bi)
ot=σ(Woht-1+Uoxt+bo)
其中,Wf,Uf,bf为遗忘门参数,Wi,Ui,bi为输入门参数,Wo,Uo,bo为遗忘门参数;
在遗忘门和输入门作用下,细胞单元更新如下:
at=tanh(Waht-1+Uaxt+ba)
Ct=ft⊙Ct-1+it⊙at
其中,Wa,Ua,ba,at为细胞单元参数;
最后,由输出门和细胞单元得到输出向量ht
ht=ot⊙tanh(Ct)
整个网络的训练目标是正向指令预测和逆向指令预测,两个方向的最大似然为:
Figure BDA0002410936560000024
通过最大化该最大似然,更新该神经网络。
所述的基于栈指令序列的智能合约相似度检索方法,判断该最相似的智能合约与该待检测的智能合约的相似度是否大于预设值,若是,则判定该待检测的智能合约存在安全漏洞,进行告警,否则判定该待检测的智能合约为安全合约。
本发明还提出了一种基于栈指令序列的智能合约相似度检索系统,包括:
检索模块,用于在以太坊虚拟机上获得待检测的智能合约被执行时的栈指令序列,通过神经网络建模该栈指令序列进而将该智能合约向量化,得到该智能合约的向量表示,并通过向量相似度分析,检索得到与该向量表示最相似的智能合约。
所述的基于栈指令序列的智能合约相似度检索系统,该神经网络包括一个输入层、多个编码层、一个输出层和Softmax层;输入层是指令的输入向量,每层编码层中各个编码器之间有双向连接,输出层是每层指令得到的学习向量,Softmax层输出的是对下一个指令预测的概率值。
所述的基于栈指令序列的智能合约相似度检索系统,待检测的智能合约c的栈指令序列为Sc=(s1,s2,…,sN),Sc的长度为N,指令st(t=1,…,N)的输入层向量为
Figure BDA0002410936560000031
该神经网络第
Figure BDA0002410936560000032
层得到的向量为
Figure BDA0002410936560000033
其中编码层共有L-1层,第L层为输出层,智能合约c的输入层向量为
Figure BDA0002410936560000034
Figure BDA0002410936560000035
层得到的向量为
Figure BDA0002410936560000036
编码层中的编码器使用长短时记忆网络,以正向LSTM的前向传播为例,介绍编码器中的运算,记t时刻第
Figure BDA0002410936560000037
层的输出特征为:
Figure BDA0002410936560000038
Figure BDA0002410936560000039
所述的基于栈指令序列的智能合约相似度检索系统,
该长短时记忆网络编码器网络包含遗忘门ft、输入门it、输出门ot和细胞单元Ct,更新公式如下
ft=σ(Wfht-1+Ufxt+bf)
it=σ(Wiht-1+Uixt+bi)
ot=σ(Woht-1+Uoxt+bo)
其中,Wf,Uf,bf为遗忘门参数,Wi,Ui,bi为输入门参数,Wo,Uo,bo为遗忘门参数;
在遗忘门和输入门作用下,细胞单元更新如下:
at=tanh(Waht-1+Uaxt+ba)
Ct=ft⊙Ct-1+it⊙at
其中,Wa,Ua,ba,at为细胞单元参数;
最后,由输出门和细胞单元得到输出向量ht
ht=ot⊙tanh(Ct)
整个网络的训练目标是正向指令预测和逆向指令预测,两个方向的最大似然为:
Figure BDA00024109365600000310
通过最大化该最大似然,更新该神经网络。
所述的基于栈指令序列的智能合约相似度检索系统,判断该最相似的智能合约与该待检测的智能合约的相似度是否大于预设值,若是,则判定该待检测的智能合约存在安全漏洞,进行告警,否则判定该待检测的智能合约为安全合约。
由以上方案可知,本发明的优点在于:通过对智能合约创立和被调用时栈的指令序列进行建模,可以获得智能合约及其指令的向量表示,进而计算合约之间的相似度。
附图说明
图1为智能合约编码网络图。
具体实施方式
发明人在智能合约的分析研究时,发现除了从基于代码或字节码的角度分析智能合约,还可以从智能合约被调用时的行为入手。发明人经过对智能合约的研究发现,可以在以太坊虚拟机上获得智能合约被调用时栈的指令序列,该序列反映了一个智能合约被调用时全过程,通过神经网络建模这个序列进而将合约向量化,可以很好地度量合约之间的相似度,该相似度可以用于安全监测,即计算当前合约和有漏洞合约的相似度,若相似,则认为存在安全漏洞。
本发明包括以下关键点:
关键点1,智能合约栈指令的提取;技术效果:获取智能合约创建和被调用时的栈指令序列;
关键点2,指令序列的建模;技术效果:对指令序列进行建模获得智能合约的向量表示;
关键点3,合约相似度计算;技术效果:通过向量的相似度计算得到智能合约之间的相似度;
为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。
例一所示的是以太坊第2000002区块上地址为0x2BD2326c993DFaeF84f696526064FF22eba5b362的合约执行时的指令序列(空格分隔),例二所示的是以太坊第2000013区块上地址为0xBFC39b6F805a9E40E77291afF27aeE3C96915BDD的合约执行时的指令序列。
例一2000002,0x2BD2326c993DFaeF84f696526064FF22eba5b362,
PUSH1 PUSH1 MSTORE CALLDATASIZE ISZERO PUSH1 JUMPI PUSH1 PUSH1 EXPPUSH1 CALLDATALOAD DIV PUSH4 DUP2 EQ PUSH1 JUMPI JUMPDEST PUSH1 PUSH1 SLOADPUSH1 AND DUP2 JUMP JUMPDEST ISZERO ISZERO PUSH1 SWAP1 DUP2 MSTORE PUSH1SWAP1 RETURN
例二2000013,0xBFC39b6F805a9E40E77291afF27aeE3C96915BDD,
PUSH1 PUSH1 MSTORE CALLDATASIZE ISZERO PUSH1 JUMPI JUMPDEST PUSH1JUMPDEST PUSH1 PUSH1 SWAP1 SLOAD SWAP1 PUSH2 EXP SWAP1 DIV PUSH20 AND PUSH20AND PUSH1 CALLVALUE PUSH1 MLOAD DUP1 SWAP1 POP PUSH1 PUSH1 MLOAD DUP1 DUP4SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO PUSH1 JUMPI PUSH32PUSH1 PUSH1 SWAP1 SLOAD SWAP1 PUSH2 EXP SWAP1 DIV PUSH20 AND PUSH1 MLOAD DUP1DUP3 PUSH20 AND DUP2 MSTORE PUSH1 ADD SWAP2 POP POP PUSH1 MLOAD DUP1 SWAP2SUB SWAP1 LOG1 PUSH1 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST STOP
形式地来说,记合约c的指令序列为Sc=(s1,s2,…,sN),Sc的长度为N。如例一,c=0x2BD2326c993DFaeF84f696526064FF22eba5b362,N=36,s1=s2=PUSH1,s36=RETURN.
下面设计深度神经网络模型对指令序列进行学习,如图1所示,整个模型可以分为四层,分别是输入层、编码层、输出层和Softmax层。输入层是该合约以及合约中每个指令的输入向量(第一个单元视为合约单元,第二个开始为N个指令单元);编码层可以分为两部分,左边虚线框内为正向预测模型,从左至右对指令序列进行建模,右边虚线框内为反向预测模型,从右至左对指令序列进行建模;输出层是该合约以及合约中各个指令输出的特征向量;Softmax层输出的是对下一个指令预测的概率值。
对于合约c及其指令序列Sc=(s1,s2,…,sN),通过两个正向预测模型和反向预测模型,前者根据前k-1个指令预测第k个指令,其概率表示为p(sk|s1,…,sk-1);后者根据后面N-k个指令预测第k个指令,其概率表示为p(sk|sk+1,…,sN)。其中k的取值为1到N。预测概率通过Softmax层可以得到。下面以正向预测模型为例,介绍输入层、编码层和输出层的计算方式。
记指令st(t=1,…,N)的输入层向量为
Figure BDA0002410936560000051
Figure BDA0002410936560000052
层得到的向量为
Figure BDA0002410936560000053
Figure BDA0002410936560000061
其中编码层共有L-1层,第L层为输出层。合约c的输入层向量为
Figure BDA0002410936560000062
Figure BDA0002410936560000063
层得到的向量为
Figure BDA0002410936560000064
编码层中的编码器使用长短时记忆网络(LSTM),记指令st
Figure BDA0002410936560000065
层的输出特征为
Figure BDA0002410936560000066
其中t=1,…,N,l=1,…,L,x0=xc.在
Figure BDA0002410936560000067
的表达式中,除输入特征
Figure BDA0002410936560000068
为第
Figure BDA0002410936560000069
层输出外,其他变量均为第
Figure BDA00024109365600000610
层,故为了保持符号简洁,以下公式中表示网络层数的上标(l)省略不写。
LSTM编码器网络包含遗忘门(ft)、输入门(it)、输出门(ot)和细胞单元(Ct),更新公式如下:
ft=σ(Wfht-1+Ufxt+bf)
it=σ(Wiht-1+Uixt+bi)
ot=σ(Woht-1+Uoxt+bo)
其中,Wf,Uf,bf为遗忘门参数,Wi,Ui,bi为输入门参数,Wo,Uo,bo为遗忘门参数。
在遗忘门和输入门作用下,细胞单元更新如下:
at=tanh(Waht-1+Uaxt+ba)
Ct=ft⊙Ct-1+it⊙at
其中,Wa,Ua,ba,at为细胞单元参数。
由输出门和细胞单元得到输出向量ht
ht=ot⊙tanh(Ct)
指令序列中的第t个指令st的预测概率为:
pt=Softmax(ht)
整个网络的训练目标是正向指令预测和逆向指令预测,两个方向的最大似然为:
Figure BDA00024109365600000611
最大化上面的似然函数,对神经网络参数进行优化,可以训练得到一个神经网络模型。模型参数训练结束后,给定合约和合约中的指令序列,可以进行输入层到编码层的前向计算,最后在输出层得到该合约的向量表示。
网络训练完成之后,输入层第一个单元的输出层向量即为智能合约的特征向量表示,获得智能合约的向量表示后,给定合约c的向量表示
Figure BDA0002410936560000071
基于向量相似度d(x,y)=xTy可以得到与c最相似的合约,即
Figure BDA0002410936560000072
以下为与上述方法实施例对应的系统实施例,本实施方式可与上述实施方式互相配合实施。上述实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在上述实施方式中。
本发明还提出了一种基于栈指令序列的智能合约相似度检索系统,包括:
检索模块,用于在以太坊虚拟机上获得待检测的智能合约被执行时的栈指令序列,通过神经网络建模该栈指令序列进而将该智能合约向量化,得到该智能合约的向量表示,并通过向量相似度分析,检索得到与该向量表示最相似的智能合约。
所述的基于栈指令序列的智能合约相似度检索系统,该神经网络包括一个输入层、多个编码层、一个输出层和Softmax层;输入层是指令的输入向量,每层编码层中各个编码器之间有双向连接,输出层是每层指令得到的学习向量,Softmax层输出的是对下一个指令预测的概率值。
所述的基于栈指令序列的智能合约相似度检索系统,待检测的智能合约c的栈指令序列为Sc=(s1,s2,…,sN),Sc的长度为N,指令st(t=1,…,N)的输入层向量为
Figure BDA0002410936560000073
该神经网络第
Figure BDA0002410936560000074
层得到的向量为
Figure BDA0002410936560000075
其中编码层共有L-1层,第L层为输出层,智能合约c的输入层向量为
Figure BDA0002410936560000076
Figure BDA0002410936560000077
层得到的向量为
Figure BDA0002410936560000078
编码层中的编码器使用长短时记忆网络,以正向LSTM的前向传播为例,介绍编码器中的运算,记t时刻第
Figure BDA0002410936560000079
层的输出特征为:
Figure BDA00024109365600000710
Figure BDA00024109365600000711
所述的基于栈指令序列的智能合约相似度检索系统,
该长短时记忆网络编码器网络包含遗忘门ft、输入门it、输出门ot和细胞单元Ct,更新公式如下
ft=σ(Wfht-1+Ufxt+bf)
it=σ(Wiht-1+Uixt+bi)
ot=σ(Woht-1+Uoxt+bo)
其中,Wf,Uf,bf为遗忘门参数,Wi,Ui,bi为输入门参数,Wo,Uo,bo为遗忘门参数;
在遗忘门和输入门作用下,细胞单元更新如下:
at=tanh(Waht-1+Uaxt+ba)
Ct=ft⊙Ct-1+it⊙at
其中,Wa,Ua,ba,at为细胞单元参数;
最后,由输出门和细胞单元得到输出向量ht
ht=ot⊙tanh(Ct)
整个网络的训练目标是正向指令预测和逆向指令预测,两个方向的最大似然为:
Figure BDA0002410936560000081
通过最大化该最大似然,更新该神经网络。
所述的基于栈指令序列的智能合约相似度检索系统,判断该最相似的智能合约与该待检测的智能合约的相似度是否大于预设值,若是,则判定该待检测的智能合约存在安全漏洞,进行告警,否则判定该待检测的智能合约为安全合约。

Claims (10)

1.一种基于栈指令序列的智能合约相似度检索方法,其特征在于,包括:
在以太坊虚拟机上获得待检测的智能合约被执行时的栈指令序列,通过神经网络建模该栈指令序列进而将该智能合约向量化,得到该智能合约的向量表示,并通过向量相似度分析,检索得到与该向量表示最相似的智能合约。
2.如权利要求1所述的基于栈指令序列的智能合约相似度检索方法,其特征在于,该神经网络包括一个输入层、多个编码层、一个输出层和Softmax层;输入层是指令的输入向量,每层编码层中各个编码器之间有双向连接,输出层是每层指令得到的学习向量,Softmax层输出的是对下一个指令预测的概率值。
3.如权利要求2所述的基于栈指令序列的智能合约相似度检索方法,其特征在于,
待检测的智能合约c的栈指令序列为Sc=(s1,s2,…,sN),Sc的长度为N,指令st(t=1,…,N)的输入层向量为
Figure FDA0002410936550000011
该神经网络第
Figure FDA0002410936550000017
层得到的向量为
Figure FDA0002410936550000012
Figure FDA0002410936550000013
其中编码层共有L-1层,第L层为输出层,智能合约c的输入层向量为
Figure FDA0002410936550000014
Figure FDA0002410936550000018
层得到的向量为
Figure FDA0002410936550000015
编码层中的编码器使用长短时记忆网络,以正向LSTM的前向传播为例,介绍编码器中的运算,记t时刻第
Figure FDA0002410936550000019
层的输出特征为:
Figure FDA0002410936550000016
4.如权利要求3所述的基于栈指令序列的智能合约相似度检索方法,其特征在于,
该长短时记忆网络编码器网络包含遗忘门ft、输入门it、输出门ot和细胞单元Ct,更新公式如下
ft=σ(Wfht-1+Ufxt+bf)
it=σ(Wiht-1+Uixt+bi)
ot=σ(Woht-1+Uoxt+bo)
其中,Wf,Uf,bf为遗忘门参数,Wi,Ui,bi为输入门参数,Wo,Uo,bo为遗忘门参数;
在遗忘门和输入门作用下,细胞单元更新如下:
at=tanh(Waht-1+Uaxt+ba)
Ct=ft⊙Ct-1+it⊙at
其中,Wa,Ua,ba,at为细胞单元参数;
最后,由输出门和细胞单元得到输出向量ht
ht=ot⊙tanh(Ct)
整个网络的训练目标是正向指令预测和逆向指令预测,两个方向的最大似然为:
Figure FDA0002410936550000021
通过最大化该最大似然,更新该神经网络。
5.如权利要求1-4所述的任意一种基于栈指令序列的智能合约相似度检索方法,其特征在于,判断该最相似的智能合约与该待检测的智能合约的相似度是否大于预设值,若是,则判定该待检测的智能合约存在安全漏洞,进行告警,否则判定该待检测的智能合约为安全合约。
6.一种基于栈指令序列的智能合约相似度检索系统,其特征在于,包括:
检索模块,用于在以太坊虚拟机上获得待检测的智能合约被执行时的栈指令序列,通过神经网络建模该栈指令序列进而将该智能合约向量化,得到该智能合约的向量表示,并通过向量相似度分析,检索得到与该向量表示最相似的智能合约。
7.如权利要求6所述的基于栈指令序列的智能合约相似度检索系统,其特征在于,该神经网络包括一个输入层、多个编码层、一个输出层和Softmax层;输入层是指令的输入向量,每层编码层中各个编码器之间有双向连接,输出层是每层指令得到的学习向量,Softmax层输出的是对下一个指令预测的概率值。
8.如权利要求7所述的基于栈指令序列的智能合约相似度检索系统,其特征在于,
待检测的智能合约c的栈指令序列为Sc=(s1,s2,…,sN),Sc的长度为N,指令st(t=1,…,N)的输入层向量为
Figure FDA0002410936550000022
该神经网络第
Figure FDA0002410936550000028
层得到的向量为
Figure FDA0002410936550000023
Figure FDA0002410936550000024
其中编码层共有L-1层,第L层为输出层,智能合约c的输入层向量为
Figure FDA0002410936550000025
Figure FDA0002410936550000029
层得到的向量为
Figure FDA0002410936550000026
编码层中的编码器使用长短时记忆网络,以正向LSTM的前向传播为例,介绍编码器中的运算,记t时刻第
Figure FDA00024109365500000210
层的输出特征为:
Figure FDA0002410936550000027
9.如权利要求8所述的基于栈指令序列的智能合约相似度检索系统,其特征在于,
该长短时记忆网络编码器网络包含遗忘门ft、输入门it、输出门ot和细胞单元Ct,更新公式如下
ft=σ(Wfht-1+Ufxt+bf)
it=σ(Wiht-1+Uixt+bi)
ot=σ(Woht-1+Uoxt+bo)
其中,Wf,Uf,bf为遗忘门参数,Wi,Ui,bi为输入门参数,Wo,Uo,bo为遗忘门参数;
在遗忘门和输入门作用下,细胞单元更新如下:
at=tanh(Waht-1+Uaxt+ba)
Ct=ft⊙Ct-1+it⊙at
其中,Wa,Ua,ba,at为细胞单元参数;
最后,由输出门和细胞单元得到输出向量ht
ht=ot⊙tanh(Ct)
整个网络的训练目标是正向指令预测和逆向指令预测,两个方向的最大似然为:
Figure FDA0002410936550000031
通过最大化该最大似然,更新该神经网络。
10.如权利要求6-9所述的任意一种基于栈指令序列的智能合约相似度检索系统,其特征在于,判断该最相似的智能合约与该待检测的智能合约的相似度是否大于预设值,若是,则判定该待检测的智能合约存在安全漏洞,进行告警,否则判定该待检测的智能合约为安全合约。
CN202010176290.0A 2020-03-13 2020-03-13 一种基于栈指令序列的智能合约相似度检索方法及系统 Pending CN111460454A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010176290.0A CN111460454A (zh) 2020-03-13 2020-03-13 一种基于栈指令序列的智能合约相似度检索方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010176290.0A CN111460454A (zh) 2020-03-13 2020-03-13 一种基于栈指令序列的智能合约相似度检索方法及系统

Publications (1)

Publication Number Publication Date
CN111460454A true CN111460454A (zh) 2020-07-28

Family

ID=71685876

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010176290.0A Pending CN111460454A (zh) 2020-03-13 2020-03-13 一种基于栈指令序列的智能合约相似度检索方法及系统

Country Status (1)

Country Link
CN (1) CN111460454A (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104965687A (zh) * 2015-06-04 2015-10-07 北京东方国信科技股份有限公司 基于指令集生成的大数据处理方法及装置
US20170149796A1 (en) * 2015-11-25 2017-05-25 Yaron Gvili Selectivity in privacy and verification with applications
CN106778882A (zh) * 2016-12-23 2017-05-31 杭州云象网络技术有限公司 一种基于前馈神经网络的智能合约自动分类方法
US9852337B1 (en) * 2015-09-30 2017-12-26 Open Text Corporation Method and system for assessing similarity of documents
CN109933991A (zh) * 2019-03-20 2019-06-25 杭州拜思科技有限公司 一种智能合约漏洞检测的方法、装置
US20190278577A1 (en) * 2016-07-01 2019-09-12 Intel Corporation Vectorize store instructions method and apparatus
EP3540662A1 (en) * 2018-03-15 2019-09-18 Deutsche Telekom AG Computer implemented method for supply chain management and provenance in a data processing network
CN110399730A (zh) * 2019-07-24 2019-11-01 上海交通大学 智能合约漏洞的检查方法、系统及介质
CN110633567A (zh) * 2019-05-31 2019-12-31 天津理工大学 一种基于rasp的智能合约虚拟机漏洞检测系统及方法
CN110782346A (zh) * 2019-10-09 2020-02-11 山东科技大学 一种基于关键字特征提取和注意力的智能合约分类方法
CN110851608A (zh) * 2020-01-15 2020-02-28 支付宝(杭州)信息技术有限公司 基于区块链的侵权检测方法、装置、设备及存储介质

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104965687A (zh) * 2015-06-04 2015-10-07 北京东方国信科技股份有限公司 基于指令集生成的大数据处理方法及装置
US9852337B1 (en) * 2015-09-30 2017-12-26 Open Text Corporation Method and system for assessing similarity of documents
US20170149796A1 (en) * 2015-11-25 2017-05-25 Yaron Gvili Selectivity in privacy and verification with applications
US20190278577A1 (en) * 2016-07-01 2019-09-12 Intel Corporation Vectorize store instructions method and apparatus
CN106778882A (zh) * 2016-12-23 2017-05-31 杭州云象网络技术有限公司 一种基于前馈神经网络的智能合约自动分类方法
EP3540662A1 (en) * 2018-03-15 2019-09-18 Deutsche Telekom AG Computer implemented method for supply chain management and provenance in a data processing network
CN109933991A (zh) * 2019-03-20 2019-06-25 杭州拜思科技有限公司 一种智能合约漏洞检测的方法、装置
CN110633567A (zh) * 2019-05-31 2019-12-31 天津理工大学 一种基于rasp的智能合约虚拟机漏洞检测系统及方法
CN110399730A (zh) * 2019-07-24 2019-11-01 上海交通大学 智能合约漏洞的检查方法、系统及介质
CN110782346A (zh) * 2019-10-09 2020-02-11 山东科技大学 一种基于关键字特征提取和注意力的智能合约分类方法
CN110851608A (zh) * 2020-01-15 2020-02-28 支付宝(杭州)信息技术有限公司 基于区块链的侵权检测方法、装置、设备及存储介质

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
WESLEY JOON-WIE TANN, XING JIE HAN, SOURAV SEN GUPTA, AND YEW-SOON ONG: "Towards Safer Smart Contracts A Sequence Learning Approach to Detecting Security Threats" *
乔延臣,姜青山,古亮,吴晓明: "基于汇编指令词向量与卷积神经网络的恶意代码分类方法研究" *
王 聪,邱卫东,唐 鹏,连慧娟: "基于CNN和LSTM混合的Android恶意应用检测" *
陆洪毅;戴葵;王志英;: "一种基于汇编代码的单重循环向量化方法" *
马春光;安婧;毕伟;袁琪;: "区块链中的智能合约" *
黄步添;刘琦;何钦铭;刘振广;陈建海;: "基于语义嵌入模型与交易信息的智能合约自动分类系统" *

Similar Documents

Publication Publication Date Title
CN110942101B (zh) 基于深度生成式对抗网络的滚动轴承剩余寿命预测方法
CN106250988B (zh) 基于样本特性的相关向量回归增量学习算法及系统
US11537898B2 (en) Generative structure-property inverse computational co-design of materials
CN111339712B (zh) 质子交换膜燃料电池剩余寿命预测方法
CN112131673A (zh) 基于融合神经网络模型的发动机喘振故障预测系统及方法
CN111914873A (zh) 一种两阶段云服务器无监督异常预测方法
CN110826054B (zh) 一种基于报文数据场特征的车载can总线入侵检测方法
US20030061015A1 (en) Stochastic modeling of time distributed sequences
CN110719289B (zh) 一种基于多层特征融合神经网络的工控网络入侵检测方法
CN112882909A (zh) 燃料电池系统故障预测方法、装置
CN115510975A (zh) 基于并行Transofmer-GRU的多变量时序异常检测方法及系统
CN114117599B (zh) 一种盾构姿态位置偏差预测方法
CN113179279A (zh) 基于ae-cnn的工业控制网络入侵检测方法及装置
CN117609905A (zh) 一种监测数据预测方法、系统、设备以及可读存储介质
CN115496384A (zh) 工业设备的监控管理方法、装置和计算机设备
CN116227562A (zh) 基于图神经网络与Transformer的时序点过程预测方法及系统
CN116894180B (zh) 一种基于异构图注意力网络的产品制造质量预测方法
CN111460454A (zh) 一种基于栈指令序列的智能合约相似度检索方法及系统
Lysyak et al. Time series prediction based on data compression methods
CN116908684A (zh) 电机故障预测方法、装置、电子设备及存储介质
CN116127325A (zh) 基于多属性图的图神经网络业务流程异常检测方法和系统
CN113298255B (zh) 基于神经元覆盖率的深度强化学习鲁棒训练方法和装置
CN115758641A (zh) 一种基于autoformer-渐进分解模型的输电线路覆冰预测方法
CN114399901A (zh) 一种控制交通系统的方法和设备
CN114881162A (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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200728

WD01 Invention patent application deemed withdrawn after publication