CN117574214B - 智能合约分类模型训练方法、智能合约分类方法及装置 - Google Patents
智能合约分类模型训练方法、智能合约分类方法及装置 Download PDFInfo
- Publication number
- CN117574214B CN117574214B CN202410056053.9A CN202410056053A CN117574214B CN 117574214 B CN117574214 B CN 117574214B CN 202410056053 A CN202410056053 A CN 202410056053A CN 117574214 B CN117574214 B CN 117574214B
- Authority
- CN
- China
- Prior art keywords
- intelligent contract
- data
- feature
- transaction
- fusion
- 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.)
- Active
Links
- 238000012549 training Methods 0.000 title claims abstract description 125
- 238000013145 classification model Methods 0.000 title claims abstract description 111
- 238000000034 method Methods 0.000 title claims abstract description 106
- 239000013598 vector Substances 0.000 claims abstract description 260
- 230000004927 fusion Effects 0.000 claims abstract description 126
- 238000013528 artificial neural network Methods 0.000 claims abstract description 52
- 239000011159 matrix material Substances 0.000 claims abstract description 47
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 16
- 230000015654 memory Effects 0.000 claims description 29
- 238000011176 pooling Methods 0.000 claims description 28
- 238000012545 processing Methods 0.000 claims description 17
- 230000006870 function Effects 0.000 claims description 15
- 230000002457 bidirectional effect Effects 0.000 claims description 14
- 238000004422 calculation algorithm Methods 0.000 claims description 10
- 238000007781 pre-processing Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 7
- 230000009466 transformation Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 9
- 238000000605 extraction Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012512 characterization method Methods 0.000 description 2
- 238000007635 classification algorithm Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000001343 mnemonic effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- KAICRBBQCRKMPO-UHFFFAOYSA-N phosphoric acid;pyridine-3,4-diamine Chemical compound OP(O)(O)=O.NC1=CC=NC=C1N KAICRBBQCRKMPO-UHFFFAOYSA-N 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
- G06F18/253—Fusion techniques of extracted features
-
- 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/0464—Convolutional networks [CNN, ConvNet]
-
- 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/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- 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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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/08—Learning methods
- G06N3/09—Supervised learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Abstract
本申请提供智能合约分类模型训练方法、智能合约分类方法及装置,涉及智能合约分类技术领域,方法包括:获取智能合约数据的特征向量矩阵并以数据切片方式获取交易特征向量;基于特征向量矩阵以及智能合约类型标签训练融合神经网络中的R‑CNN模型以输出目标文本特征向量;再将目标文本特征向量与交易特征向量分别进行特征融合以得到各个智能合约数据的融合特征向量,并将各个融合特征向量输入融合神经网络中的全连接层,得到基于特征融合的智能合约分类模型。本申请能够提高智能合约分类模型训练过程中的特征全面性,能够提高智能合约分类模型的通用性以及训练效率,并能够有效提高采用智能合约分类模型进行智能合约分类的准确性及可靠性。
Description
技术领域
本申请涉及智能合约分类技术领域,尤其涉及智能合约分类模型训练方法、智能合约分类方法及装置。
背景技术
智能合约可以理解为自动执行的合约,是部署在区块链上的完整代码的片段,是一个在分布式账本运行的事件驱动程序。智能合约已经成为以太坊的重要组成部分,使用智能合约构建的DAPP(去中心化应用程序)已广泛应用于许多领域,如游戏、资产记录和抵押贷款等。因此,部署在区块链平台上的智能合约数量呈指数级增长。随着合约数量的增加,如何帮助用户在大量合同中找到他们需要的服务已经成为一个重要问题。区块链平台提供的智能合约的主要查询API基于合约地址、区块号、交易哈希和时间戳。用户希望获得更方便的搜索体验,可以对合约按照类别进行查询。因此需要研究智能合约分类方式。
传统的智能合约的识别依赖于人工标记,代价较大且低效,因此需要设计有效的智能合约分类模型对现有或者新的智能合约进行分类和标记。目前,现有的智能合约分类模型主要采用智能合约的源代码对应特征或者采用字节码和操作码的计数对应特征来训练模型。
然而,采用源代码的方式存在通用性差的问题,而采用字节码和操作码的计数方式存在易丧失语义特征、因特征不够全面而导致模型分类准确性差的问题。
发明内容
鉴于此,本申请实施例提供了智能合约分类模型训练方法、智能合约分类方法及装置,以消除或改善现有技术中存在的一个或更多个缺陷。
本申请的一个方面提供了一种智能合约分类模型训练方法,包括:
获取各个智能合约数据各自的操作码文本序列对应的特征向量矩阵,并以数据切片的方式获取各个智能合约数据各自的交易数据对应的交易特征向量;
基于各个智能合约数据各自对应的所述特征向量矩阵以及智能合约类型标签训练预设的融合神经网络,以使该融合神经网络中的R-CNN模型对应输出各个智能合约数据各自对应的目标文本特征向量;再将各个所述智能合约数据对应的所述目标文本特征向量与所述交易特征向量分别进行特征融合,以得到各个所述智能合约数据各自对应的融合特征向量,并将各个所述融合特征向量输入所述融合神经网络中的全连接层以进行智能合约分类,进而将所述融合神经网络训练为一个基于特征融合的智能合约分类模型。
在本申请的一些实施例中,所述融合神经网络包括:依次连接的R-CNN模型、特征融合层、全连接层和Softmax层;
所述R-CNN模型用于根据输入的智能合约数据对应的所述特征向量矩阵,对应输出该智能合约数据对应的目标文本特征向量;
所述特征融合层用于将所述R-CNN模型输出的所述智能合约数据对应的目标文本特征向量与该智能合约数据对应的所述交易特征向量进行行特征融合,以得到该智能合约数据对应的融合特征向量;
所述全连接层用于根据输入的所述智能合约数据对应的融合特征向量,对应输出该智能合约数据对应的各个智能合约类型;
所述Softmax层用于将所述全连接层输出的所述智能合约数据对应的各个智能合约类型分别转换为概率值,并采用反向传播算法进行所述融合神经网络的模型参数更新。
在本申请的一些实施例中,所述R-CNN模型包括:依次连接的特征输入层、双向LSTM网络和最大池化层;
所述特征输入层用于接收智能合约数据对应的所述特征向量矩阵以及智能合约类型标签;
所述双向LSTM网络用于根据提取所述特征向量矩阵对应的文本特征数据,所述文本特征数据包括:由多个词向量表示的句子;
所述最大池化层用于对所述文本特征数据在句子长度上进行最大池化处理,以得到所述文本特征数据对应的表示向量,并将该表示向量作为所述智能合约数据的目标文本特征向量。
在本申请的一些实施例中,在所述获取各个智能合约数据各自的操作码文本序列对应的特征向量矩阵,并以数据切片的方式获取各个智能合约数据各自的交易数据对应的交易特征向量之前,还包括:
获取多个智能合约数据,所述智能合约数据包括:智能合约的地址、智能合约类型、字节码和交易数据。
在本申请的一些实施例中,所述获取各个智能合约数据各自的操作码文本序列对应的特征向量矩阵,包括:
对各个智能合约数据各自的所述字节码进行反汇编以得到对应的操作码,保留以太坊虚拟机定义的操作码指令并删除所述操作码中的地址字段,以得到各个所述智能合约数据各自的操作码文本序列;
基于Word2vec预训练模型获取各个所述操作码各自对应的词向量以生成各个所述词向量构成的操作码单词向量字典,根据所述操作码单词向量字典将各个所述操作码文本序列转换为对应的特征向量矩阵。
在本申请的一些实施例中,所述以数据切片的方式获取各个智能合约数据各自的交易数据对应的交易特征向量,包括:
获取各个智能合约数据各自的交易数据所属的交易类型,其中,所述交易类型包括:外部传入交易、外部传出交易、内部传入交易和内部传出交易;
根据各个智能合约数据各自的交易数据所属的交易类型,分别统计各个所述智能合约数据在每个时间间隔内的交易数据统计量,其中,多个所述时间间隔构成一时间周期;
获取所述时间周期内的关于各个所述时间间隔的交易数据统计量对应的时间序列数据,并根据所述时间序列数据统计该时间周期内的交易特征,以得到各个所述智能合约数据各自的交易数据对应的交易特征向量;
针对生命周期为所述时间周期的倍数的交易合约数据,分别获取该交易合约数据在各个所述时间周期内对应的所述交易特征向量。
本申请的另一个方面提供了一种智能合约分类方法,包括:
接收目标智能合约数据对应的目标字节码和目标交易数据;
对所述目标字节码进行反汇编以得到对应的目标操作码,并获取所述目标操作码的操作码文本序列对应的特征向量矩阵;
以及,以数据切片的方式获取所述目标交易数据对应的交易特征向量;
将所述目标智能合约数据对应的特征向量矩阵和交易特征向量输入基于特征融合的智能合约分类模型中,以使该基于特征融合的智能合约分类模型输出所述目标智能合约数据对应的智能合约类型预测结果数据,其中,所述基于特征融合的智能合约分类模型预先基于所述智能合约分类模型训练方法训练得到。
本申请的第三个方面提供了一种智能合约分类模型训练装置,包括:
数据预处理模块,用于获取各个智能合约数据各自的操作码文本序列对应的特征向量矩阵,并以数据切片的方式获取各个智能合约数据各自的交易数据对应的交易特征向量;
基于特征融合的模型训练模块,用于基于各个智能合约数据各自对应的所述特征向量矩阵以及智能合约类型标签训练预设的融合神经网络,以使该融合神经网络中的R-CNN模型对应输出各个智能合约数据各自对应的目标文本特征向量;再将各个所述智能合约数据对应的所述目标文本特征向量与所述交易特征向量分别进行特征融合,以得到各个所述智能合约数据各自对应的融合特征向量,并将各个所述融合特征向量输入所述融合神经网络中的全连接层以进行智能合约分类,进而将所述融合神经网络训练为一个基于特征融合的智能合约分类模型。
本申请的第四个方面提供了一种智能合约分类装置,包括:
数据接收模块,用于接收目标智能合约数据对应的目标字节码和目标交易数据;
文本特征提取模块,用于对所述目标字节码进行反汇编以得到对应的目标操作码,并获取所述目标操作码的操作码文本序列对应的特征向量矩阵;
以及,交易特征提取模块,用于以数据切片的方式获取所述目标交易数据对应的交易特征向量;
模型分类模块,用于将所述目标智能合约数据对应的特征向量矩阵和交易特征向量输入基于特征融合的智能合约分类模型中,以使该基于特征融合的智能合约分类模型输出所述目标智能合约数据对应的智能合约类型预测结果数据,其中,所述基于特征融合的智能合约分类模型预先基于所述智能合约分类模型训练方法训练得到。
本申请的第五个方面提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述智能合约分类模型训练方法或者所述智能合约分类方法。
本申请的第六个方面提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述智能合约分类模型训练方法或者所述智能合约分类方法。
本申请提供的智能合约分类模型训练方法,通过获取各个智能合约数据各自的操作码文本序列对应的特征向量矩阵,并以数据切片的方式获取各个智能合约数据各自的交易数据对应的交易特征向量;基于各个智能合约数据各自对应的所述特征向量矩阵以及智能合约类型标签训练预设的融合神经网络,以使该融合神经网络中的R-CNN模型对应输出各个智能合约数据各自对应的目标文本特征向量;再将各个所述智能合约数据对应的所述目标文本特征向量与所述交易特征向量分别进行特征融合,以得到各个所述智能合约数据各自对应的融合特征向量,并将各个所述融合特征向量输入所述融合神经网络中的全连接层以进行智能合约分类,进而将所述融合神经网络训练为一个基于特征融合的智能合约分类模型,能够提高智能合约分类模型训练过程中的特征全面性,能够提高智能合约分类模型的通用性以及训练效率,并能够有效提高采用智能合约分类模型进行智能合约分类的准确性及可靠性,进而能够提高用户查询智能合约的便捷性,还能够提高采用智能合约分类结果进行合约漏洞以及非法合约检测的有效性及可靠性。
本申请的附加优点、目的,以及特征将在下面的描述中将部分地加以阐述,且将对于本领域普通技术人员在研究下文后部分地变得明显,或者可以根据本申请的实践而获知。本申请的目的和其它优点可以通过在说明书以及附图中具体指出的结构实现到并获得。
本领域技术人员将会理解的是,能够用本申请实现的目的和优点不限于以上具体所述,并且根据以下详细说明将更清楚地理解本申请能够实现的上述和其他目的。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,并不构成对本申请的限定。附图中的部件不是成比例绘制的,而只是为了示出本申请的原理。为了便于示出和描述本申请的一些部分,附图中对应部分可能被放大,即,相对于依据本申请实际制造的示例性装置中的其它部件可能变得更大。在附图中:
图1为本申请一实施例中的智能合约分类模型训练方法的第一种流程示意图。
图2为本申请一实施例中的融合神经网络的训练架构示意图。
图3为本申请一实施例中的智能合约分类模型训练方法的第二种流程示意图。
图4为本申请一实施例中的智能合约分类方法的流程示意图。
图5为本申请一应用实例中的基于特征融合的智能合约分类方法的流程示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本申请做进一步详细说明。在此,本申请的示意性实施方式及其说明用于解释本申请,但并不作为对本申请的限定。
在此,还需要说明的是,为了避免因不必要的细节而模糊了本申请,在附图中仅仅示出了与根据本申请的方案密切相关的结构和/或处理步骤,而省略了与本申请关系不大的其他细节。
应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。
在此,还需要说明的是,如果没有特殊说明,术语“连接”在本文不仅可以指直接连接,也可以表示存在中间物的间接连接。
在下文中,将参考附图描述本申请的实施例。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤。
传统的智能合约分类模型训练方式中,对智能合约的特征提取大致分为两类:
第一类是基于智能合约的源代码进行特征提取,分析合约中的代码语义和注释,输入到分类器中进行分类,该模型在智能合约分类任务中取得了优异的效果,但仍依赖于开源合约,对于隐藏合约代码的智能合约无法进行判断。也就是说,该方式是对整个智能合约的文本序列和其中关键字进行提取,但对于部署在以太坊中非开源的智能合约,无法获取智能合约的源代码,则无法进行处理,存在不通用的问题。
第二类是合约字节码和操作码进行特征提取,以太坊虚拟机(EVM)可以将等高级编程语言编写的智能合约编译为字节码。字节码由一系列字节组成,每个字节都指由以太坊黄皮书中预定义的相应助记符形式表示的特定操作,称为字节码。智能合约的字节码都可通过以太坊获取,操作码可以通过字节码反编译获得,因此是一种通用的特征提取方法,但如果只考虑到代码特征来说,不够全面,忽略了智能合约的交易特征。也就是说,该方式主要针对智能合约的字节码,提取字节码的控制流图和分词向量。但字节码是一段16进制的文本序列,对字节码提取特征会存在杂乱问题,可能丢失一些语义信息。操作码是由字节码反编译得到,类似于汇编程序,利于理解和语义特征的提取。
在此基础上,本申请设计人员考虑到在模型训练过程中增加智能合约的交易特征,因不同类型智能合约的交易特征也能反应其特点,有助于智能和约的分类。然而,如果按照常规的技术路线解决智能合约非开源问题,采用提取操作码的计数的方式进行特征提取,会丧失操作码的语义特征,依然会影响智能合约分类模型的准确性和可靠性。
基于此,为了解决现有的采用源代码的方式存在通用性差,采用字节码和操作码的计数方式存在易丧失语义特征、因特征不够全面而导致模型分类准确性差等问题,本申请实施例分别提供一种智能合约分类模型训练方法、用于执行该智能合约分类模型训练方法的智能合约分类模型训练装置、智能合约分类方法、用于执行该智能合约分类方法的智能合约分类装置、实体设备和计算机可读存储介质,采用各个智能合约数据各自的操作码文本序列对应的特征向量矩阵,以数据切片的方式获取各个智能合约数据各自的交易数据对应的交易特征向量;再通过R-CNN模型获取文本的序列特征,然后通过最大池化层,去捕获影响最大的特征。
具体通过下述实施例进行详细说明。
基于此,本申请实施例提供一种可由智能合约分类模型训练装置实现的智能合约分类模型训练方法,参见图1,所述智能合约分类模型训练方法具体包含有如下内容:
步骤100:获取各个智能合约数据各自的操作码文本序列对应的特征向量矩阵,并以数据切片的方式获取各个智能合约数据各自的交易数据对应的交易特征向量。
在步骤100中,具体可以采用词向量的方式训练操作码的语义特征,将操作码序列转换为词向量矩阵。
针对现有的智能合约分类存在的一些问题,为了实现提高智能合约分类准确度和适应智能特征提取通用的目标,不会受到智能合约是否开源和是否具有有效交易数据的影响。本申请步骤100通过操作码提取代码特征解决了分类模型不通用的问题,同时提取智能合约的交易特征来完善特征提取。
在本申请的一个或多个实施例中,智能合约是指以太坊智能合约,是在以太坊区块链上执行的自动化合约,其定义了参与方之间的规则和条件。它是使用以太坊虚拟机上的智能合约编程语言编写的一段计算机代码。
步骤200:基于各个智能合约数据各自对应的所述特征向量矩阵以及智能合约类型标签训练预设的融合神经网络,以使该融合神经网络中的R-CNN模型对应输出各个智能合约数据各自对应的目标文本特征向量;再将各个所述智能合约数据对应的所述目标文本特征向量与所述交易特征向量分别进行特征融合,以得到各个所述智能合约数据各自对应的融合特征向量,并将各个所述融合特征向量输入所述融合神经网络中的全连接层以进行智能合约分类,进而将所述融合神经网络训练为一个基于特征融合的智能合约分类模型。
在步骤200中,所述基于特征融合的智能合约分类模型用于根据输入的智能合约数据的目标文本特征向量和交易特征向量,对应输出所述智能合约数据所属的智能合约类型。步骤200主要包括两部分,一是对于智能合约文本特征的多维特征向量矩阵进行训练,对于文本特征提取采用RCNN网络,先通过双向的LSTM网络,然后通过最大池化层自动化判定文本分类中哪部分特征扮演重要部分,进而捕获文本的重要部分。另一部分是文本特征结果向量和步骤二得到的交易特征向量进行拼接,输入到全连接层进行训练。
在本申请的一个或多个实施例中,神经网络(NN)是一种计算模型,灵感来源于人脑的结构和功能。它由许多相互连接的节点或单元组成,通常称为神经元,这些神经元组织成层次结构。卷积神经网络(Convolutional Neural Network,CNN)是一种深度学习模型,在计算机视觉领域广泛应用于图像处理和图像识别任务。CNN通过使用卷积层和池化层来有效地提取图像中的特征,并通过全连接层进行分类或回归。
R-CNN(Recurrent Convolutional Neural Networks)是双向的LSTM结构,与传统基于窗口的神经网络相比,该结构在学习单词表征时能最大程度捕获上下文信息。其次通过池化层自动化判定文本分类中哪部分特征扮演重要部分,进而捕获文本的重要部分。LSTM(Long Short-Term Memory)是一种常用的循环神经网络(RNN)架构,旨在解决传统RNN在处理长期依赖性问题时容易出现的梯度消失和梯度爆炸等问题。LSTM引入了一个记忆单元和门控机制,使其能够有效地处理长期依赖关系。
通过步骤200训练得到的基于特征融合的智能合约分类模型,能够有效提高对智能合约分类的准确性,可以在合约漏洞检测中起到有益的作用,随着智能合约的数量广泛使用,出现了一系列的安全问题,智能合约中存在一些漏洞,不同类型的合约具有不同的行为特征,并且产生的漏洞类型不同,对智能合约进行分类,设计针对性的软件设计方法,提高准确率和效率。另外,合约的发行人可能隐藏真实目的,一些恶意合约可能伪装成正常合约进行宣传,例如非法合约会通常以金融类型进行隐藏,通过合约分类模型,可以识别合约的真实目的,识别恶意合约。
从上述描述可知,本申请实施例提供的智能合约分类模型训练方法,能够提高智能合约分类模型训练过程中的特征全面性,能够提高智能合约分类模型的通用性以及训练效率,并能够有效提高采用智能合约分类模型进行智能合约分类的准确性及可靠性,进而能够提高用户查询智能合约的便捷性,还能够提高采用智能合约分类结果进行合约漏洞以及非法合约检测的有效性及可靠性,以提高区块链上金融交易、数据存储等的安全性。
为了进一步提高智能合约分类模型的应用有效性及分类准确性,在本申请实施例提供的一种智能合约分类模型训练方法中,所述融合神经网络具体包含有如下内容:
依次连接的R-CNN模型、特征融合层、全连接层和Softmax层;
所述R-CNN模型用于根据输入的智能合约数据对应的所述特征向量矩阵,对应输出该智能合约数据对应的目标文本特征向量;
所述特征融合层用于将所述R-CNN模型输出的所述智能合约数据对应的目标文本特征向量与该智能合约数据对应的所述交易特征向量进行行特征融合,以得到该智能合约数据对应的融合特征向量;
所述全连接层用于根据输入的所述智能合约数据对应的融合特征向量,对应输出该智能合约数据对应的各个智能合约类型;
所述Softmax层用于将所述全连接层输出的所述智能合约数据对应的各个智能合约类型分别转换为概率值,并采用反向传播算法进行所述融合神经网络的模型参数更新。
为了进一步提高智能合约分类模型的应用有效性及分类准确性,在本申请实施例提供的一种智能合约分类模型训练方法中,所R-CNN模型具体包含有如下内容:
依次连接的特征输入层、双向LSTM网络和最大池化层;
所述特征输入层用于接收智能合约数据对应的所述特征向量矩阵以及智能合约类型标签;
所述双向LSTM网络用于根据提取所述特征向量矩阵对应的文本特征数据,所述文本特征数据包括:由多个词向量表示的句子;
所述最大池化层用于对所述文本特征数据在句子长度上进行最大池化处理,以得到所述文本特征数据对应的表示向量,并将该表示向量作为所述智能合约数据的目标文本特征向量。
本申请采用词向量的方式训练操作码的语义特征,将操作码序列转换为词向量矩阵,通过双向的LSTM网络获取文本的序列特征,然后通过最大池化层,去捕获影响最大的特征,降低训练的时间复杂度。
具体来说,步骤200之前可以先构建所述融合神经网络并进行初始化,而后在步骤200中将其训练为智能合约分类模型,具体过程举例如下:
(1)搭建双向的LSTM网络,将所有特征向量矩阵输入LSTM网络提取文本特征,与传统基于窗口的神经网络相比,该结构在学习单词表征时能最大程度捕获上下文信息。且在学习文本表征时,模型能最大范围保留文本的单词顺序。然后将词向量和上下文语境向量进行拼接,得到第个单词融合上下文表示/>,其中LSTM的隐藏层大小为128。是双向LSTM的输出,/>为上下文语境向量。
其中,表示第/>单词向量的权重参数;/>表示第/>单词的上下文语境向量;/>表示前向中当前词向量的权重参数;/>表示第/>个单词的词向量;表示第/>单词向量的权重参数;/>表示第/>单词的上下文语境向量;/>表示后向中当前词向量的权重参数;/>表示第/>个单词的词向量;/>表示第/>个单词的词向量;/>表示第/>个单词融合上下文信息的词向量表示。
再对进行非线性变换,得到第/>个词表示/>:
(2)其次通过最大池化层自动化判定文本分类中哪部分特征扮演重要部分,进而捕获文本的重要部分,其中最大池化层的步长和尺寸为文本长度(2000), 通过对由多个词向量表示的每个句子在句子长度上进行最大池化,得到每个句子的表示向量:
其中,为单词/>的特征表示,n为句子的长度,/>的维度为512*1。
(3)然后将最大池化的特征和智能和约的交易特征28个进行拼接,最终得到融合特征向量,向量大小为540。其中为合约的交易特征。
表示该合约的融合特征向量。
最后将融合后的特征向量输入到全连接层,连接层的参数设置为540*5,输出为类别数量。
表示全连接层的输出向量;/>表示全连接层的权重参数;/>表示全连接层的偏置项。
(4)最后,对应用softmax函数,可以将全连接层的输出转换为概率。
表示第/>类别的概率;/>表示当前类别;/>表示全连接层输出向量第k个值。
具体的训练架构如图2所示,双向的LSTM网络由前向LSTM(Forward LSTM)和后向LSTM(Backward LSTM)构成,wn表示第n个单词(最后末尾)的词向量表示;wn- 1表示第n-1个单词的词向量表示。
(5)对构建好的融合神经网络进行训练,损失函数采用交叉熵损失函数Loss,采用反向传播算法进行参数更新,训练融合神经网络以得到基于特征融合的智能合约分类模型。
其中是指模型预测的概率分布的第/>个元素,即 softmax 输出的第/>个元素,/>表示样本的真实标签的第/>个元素,/>表示训练样本集合。
为了进一步提高智能合约分类模型训练的有效性及可靠性,在本申请实施例提供的一种智能合约分类模型训练方法中,参见图3,所述智能合约分类模型训练方法的步骤100之前还具体包含有如下内容:
步骤010:获取多个智能合约数据,所述智能合约数据包括:智能合约的地址、智能合约类型、字节码和交易数据。
具体来说,获取的智能合约数据主要包括智能合约的地址、所属类别、字节码和交易数据。其中智能合约的地址、所属类别、字节码和交易数据均从被授权平台或公开的渠道获取。
为了进一步提高智能合约分类模型训练的有效性及可靠性,在本申请实施例提供的一种智能合约分类模型训练方法中,参见图3,所述智能合约分类模型训练方法的步骤100具体包含有如下内容:
步骤110:对各个智能合约数据各自的所述字节码进行反汇编以得到对应的操作码,保留以太坊虚拟机定义的操作码指令并删除所述操作码中的地址字段,以得到各个所述智能合约数据各自的操作码文本序列。
具体来说,步骤110进行文本数据预处理,可以先对步骤010获取到的智能合约的字节码数据进行处理,通过pyevmasm库对字节码进行反汇编产生操作码,保留以太坊虚拟机定义的操作码指令,最后得到操作码的文本序列。
同时,在步骤110中,产生智能合约文本序列时,对操作码中地址字段进行去除,只保留了操作码序列,因此只需将操作码序列进行特征提取。
步骤120:基于Word2vec预训练模型获取各个所述操作码各自对应的词向量以生成各个所述词向量构成的操作码单词向量字典,根据所述操作码单词向量字典将各个所述操作码文本序列转换为对应的特征向量矩阵。
在步骤120中,利用Word2vec预训练模型训练操作码的词向量(embedding),最后每个操作码都有对应的词向量,得到一个操作码单词向量字典,将步骤110得到的每个智能合约的操作码文本序列转换为特征向量矩阵。
Word2vec预训练模型是NLP领域中一类用来产生embedding词向量的神经网络,训练得到的词向量索引字典中一个操作码对应一个词向量。
举例来说,步骤120的具体执行过程如下:
(1)搭建Word2vec预训练模型,参数设置中词向量维度为128,迭代次数为10(n_epoch=8),每次传入模型的样本数量为64(batch_size=64),采用skip-gram算法并使用负采样优化。其中,“n_epoch”表示训练批次数;“batch_size” 表示每次训练的样本数。
(2)将收集到的智能合约操作码序列集输入Word2vec预训练模型,输出一份79*128的词向量索引字典,129表示所有操作码序列中出现的操作码种类,128表示词向量的维度。
(3)根据Word2vec得到的词向量索引字典,将训练集中的文本序列转换成特征向量矩阵。这里选择的矩阵大小为128*2000。其中每个智能合约的操作码文本长度设置为2000,如果智能合约操作码序列不足,则采用零向量进行填充,如果超过的话,在2000处进行截断。
本申请实施例还通过分析不同类型的智能合约交易特征有所差别,发现有助于智能合约的分类。但目前对于交易特征的提取,通常的提取特征的方式为统计全部的余额或交易数等简单的统计量,没有考虑到交易上时间序列特征,本申请将交易数据通过时间切片算法,计算不同时间段中一些交易的信息,进行平均和标准差的统计,对于简单统计的交易数据的准确度有所提高。基于此,为了进一步提高智能合约分类模型训练的有效性及可靠性,在本申请实施例提供的一种智能合约分类模型训练方法中,参见图3,所述智能合约分类模型训练方法的步骤100还具体包含有如下内容:
步骤130:获取各个智能合约数据各自的交易数据所属的交易类型,其中,所述交易类型包括:外部传入交易、外部传出交易、内部传入交易和内部传出交易。
具体来说,对智能合约交易类型进行分类,首先根据以太坊的交易的触发是内部智能合约代码调用还是外部账户交易,可分为内部交易和外部交易。在获取数据的过程中,已经对内部交易和外部交易进行了分类,交易数据部分字段的如表1所示。
表1 交易数据部分字段
其次,再根据交易中以太的流向进一步分类, 根据“address”字段、“from”或者“to”字段是否相等来判断,例如在外部交易,接收者如果是智能合约地址的话,称为外部传入交易;如果发送者如果是智能合约地址的话,称为外部传出交易。因此,可以将交易分为外部传入交易、外部传出交易、内部传入交易、内部传出交易。
步骤140:根据各个智能合约数据各自的交易数据所属的交易类型,分别统计各个所述智能合约数据在每个时间间隔内的交易数据统计量,其中,多个所述时间间隔构成一时间周期。
具体来说,交易数据基本统计数据计算过程可以为:设置时间间隔T,统计每个时间间隔T中,智能合约的基本统计量。合约的账户余额、内部和外部交易的传入和传出以太的数量、内部和外部交易的传入和传出交易的总数、内部和外部交易的传入和传出唯一地址的数量、总交易数。
步骤150:获取所述时间周期内的关于各个所述时间间隔的交易数据统计量对应的时间序列数据,并根据所述时间序列数据统计该时间周期内的交易特征,以得到各个所述智能合约数据各自的交易数据对应的交易特征向量。
具体来说,步骤150提供了交易数据切片算法的实现,定义时间周期P,其中P中包含多个T,这样对于每个P中,都可以得到一组关于T的时间序列数据,再对T时间序列数据统计基本交易特征,进行平均值和方差的计算,得到一组关于P时间内的数据序列数据,作为智能合约的交易特征。
步骤160:针对生命周期为所述时间周期的倍数的交易合约数据,分别获取该交易合约数据在各个所述时间周期内对应的所述交易特征向量。
具体来说,步骤160的目的是数据集的扩充。因为大多数智能合约的生命周期是超过P的,因此智能合约的交易数据可以划分为N个P时间段,那么一个样本的交易数据可以扩充到N个样本的交易数据。
也就是说,本申请实施例提供的智能合约分类模型训练方法根据智能合约的交易特征的相关特点,使用数据分片的方式来获取智能合约的交易序列特征。基于智能合约的字节码,通过反汇编得到操作码序列,利用word-vector训练词向量模型,使用RCNN提取智能合约的文本特征。设计了基于文本特征和交易特征的融合网络去训练分类模型,将RCNN网络训练好的文本特征和交易特征进行拼接融合,最后通过全连接层进行训练,从而获得准确率较高的分类模型。
基于上述智能合约分类模型训练方法的实施例,本申请还提供一种智能合约分类方法的实施例,参见图4,所述智能合约分类方法具体包含有如下内容:
步骤300:接收目标智能合约数据对应的目标字节码和目标交易数据;
步骤400:对所述目标字节码进行反汇编以得到对应的目标操作码,并获取所述目标操作码的操作码文本序列对应的特征向量矩阵;
以及,步骤500:以数据切片的方式获取所述目标交易数据对应的交易特征向量;
步骤600:将所述目标智能合约数据对应的特征向量矩阵和交易特征向量输入基于特征融合的智能合约分类模型中,以使该基于特征融合的智能合约分类模型输出所述目标智能合约数据对应的智能合约类型预测结果数据,其中,所述基于特征融合的智能合约分类模型预先基于所述智能合约分类模型训练方法训练得到。
从上述描述可知,本申请实施例提供的智能合约分类方法,能够有效提高采用智能合约分类模型进行智能合约分类的准确性及可靠性,进而能够提高用户查询智能合约的便捷性,还能够提高采用智能合约分类结果进行合约漏洞以及非法合约检测的有效性及可靠性,以提高区块链上金融交易、数据存储等的安全性。
为了进一步说明上述方案,本申请还提供一种基于特征融合的智能合约分类方法的具体应用实例,涉及以太坊智能合约分类、特征融合和文本特征处理领域,相比其他现有的智能合约分类算法,该方法能够根据部署到以太坊中智能合约的字节码和智能合约的不同交易特征进行全面的特征提取,通过反编译字节码得到操作码文本特征,不会受到智能合约是否开源和是否具有有效交易数据的影响,从而具有较为广泛的适用性,并且能够保证智能合约分类结果具有较高的准确性。参见图5,本申请应用实例提供的基于特征融合的智能合约分类方法具体包含有如下内容:
步骤S1:获取智能合约与训练数据:
在本应用实例中,从常见的公开网站上共收集2843个信息,共包含37388智能合约,但当中含有内容相同的智能合约,获得到智能合约所对应的字节码和交易数据,去除字节码重复的合约以及无效的合约,最后得到4705个智能合约和所对应的字节码和交易。智能合约类别举例可以包含有:金融交易、游戏、高风险以及交换等。
而后进行数据预处理。数据预处理主要包括两部分:交易数据预处理和文本特征数据预处理。
步骤S2:交易数据预处理:
本应用实例中对于交易数据处理是提取交易数据的序列特征。对合约的交易进行分类,将交易分为外部传入交易、外部传出交易、内部传入交易、内部传出交易。不同类型的合约数据对于交易特征有所区分,先按照T时间间隔对所有交易进行分割,得到N个T的时间间隔,在本应用实例中,设置T为12小时,然后对于每10个的T时间段去计算,计算T时间段中10个基本特征的平均值和标准差,作为合约的交易特征。同时因为N中如果包含大于10的话,则可以分割成多个交易特征,从而扩展交易数据。
步骤S3:文本数据预处理:
本应用实例中对于文本特征处理是提取操作码的词向量。由于以太坊中智能合约保密性的存在,因此不能简单通过源代码去获取文本特征,在本应用实例中,先对智能合约的字节码进行反汇编,得到它的操作码序列。
步骤S4:Word2vec训练词向量和转换文本特征矩阵:
训练操作码词向量,本应用实例通过genism库的Word2vec接口训练embedding词向量,训练数据为5中不同类型的智能合约的操作码序列数据,参数设置中词向量维度为128,迭代次数为10(n_epoch=10),每次传入模型的数量为64(batch_size=64),采用skip-gram算法并使用负采样优化。由于以太坊虚拟机支持的操作码种类只有130多种,删去低频操作码只会影响模型的准确率,因此本申请保留低频操作码,但对相同类型的操作码进行合并,最终生成一份76*128的词向量索引字典,76表示所有操作码序列中出现的操作码种类,128表示词向量维度。
步骤S5:构建融合神经网络,初始化模型参数:
本应用实例使用的神经网络模型是文本特征和交易特征网络融合得到的,对于智能合约的操作码序列采用RCNN网络训练,将RCNN的网络训练结果和交易特征进行拼接得到融合特征,最后将融合特征输入到全连接层进行输出类别。
本应用实例的实施如下,首先对于整个数据集进行训练集和测试集的划分,比例为4:1,将每个智能合约的操作码序列进行编码,根据Word2vec训练好的词典将操作码替换成词向量,每个智能合约的长度设置成2000,不足2000的采用零向量填充,超过的采用截断方式。
步骤S6:对模型进行训练:
神经网络训练,batch_size设置为128,迭代次数为50。输入数据为智能合约的文本矩阵为128*2000,先采用双向的LSTM网络进行学习文本特征,最大程度学习文本顺序特征,将前后LSTM状态和上下文语境变量进行拼接。然后通过最大池化层,获取句子文本特征最重要的特征,并且通过池化层减少了矩阵维数,最终得到512*1向量,这种处理可以在不影响模型准确率的前提下加快训练进度。特征融合,将文本特训网络的结果和交易特征进行拼接,得到540*1向量,最后将融合好的特征作为全连接层的输入,输出为5*1。最后根据softmax输出的最大概率的类别作为智能合约的预测分类,根据交叉熵损失函数进行反向传播更新模型参数。
步骤S7:对未知类型的智能合约进行预测:
模型测试,将训练好的最佳的模型和参数进行保存,将测试集的合约进行输入,输出测试集预测的结果和准确率。
也就是说,针对当前以太坊智能合约日益增加的现状和实现智能合约自动分类的必要性,考虑到当前以太坊中智能合约部署存在不开源和最新创建的合约交易特征过少的问题,使得对智能合约进行全面的特征提取,对智能合约分类具有通用性,同时保证其智能合约分类结果的准确性。本申请应用实例是基于特征融合的分类算法,其关键思想是对智能合约的代码特征和交易特征进行特征融合,进而根据融合特征进行智能合约的分类。该方法能够达到分类效果的同时,不受智能合约是否开源的影响,提取智能合约操作码的语义特征和交易特征。即使智能合约是最近创建的,也可以通过代码特征,实现自动分类,减少了人工成本。
从软件层面来说,本申请还提供一种用于执行所述智能合约分类模型训练方法中全部或部分内的智能合约分类模型训练装置,所述智能合约分类模型训练装置具体包含有如下内容:
数据预处理模块,用于获取各个智能合约数据各自的操作码文本序列对应的特征向量矩阵,并以数据切片的方式获取各个智能合约数据各自的交易数据对应的交易特征向量;
基于特征融合的模型训练模块,用于基于各个智能合约数据各自对应的所述特征向量矩阵以及智能合约类型标签训练预设的融合神经网络,以使该融合神经网络中的R-CNN模型对应输出各个智能合约数据各自对应的目标文本特征向量;再将各个所述智能合约数据对应的所述目标文本特征向量与所述交易特征向量分别进行特征融合,以得到各个所述智能合约数据各自对应的融合特征向量,并将各个所述融合特征向量输入所述融合神经网络中的全连接层以进行智能合约分类,进而将所述融合神经网络训练为一个基于特征融合的智能合约分类模型。
本申请提供的智能合约分类模型训练装置的实施例具体可以用于执行上述实施例中的智能合约分类模型训练方法的实施例的处理流程,其功能在此不再赘述,可以参照上述智能合约分类模型训练方法实施例的详细描述。
所述智能合约分类模型训练装置进行智能合约分类模型训练的部分可以在服务器中执行,也可以在客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器,用于智能合约分类模型训练的具体处理。
上述的客户端设备可以具有通信模块(即通信单元),可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
上述服务器与所述客户端设备端之间可以使用任何合适的网络协议进行通信,包括在本申请提交日尚未开发出的网络协议。所述网络协议例如可以包括TCP/IP协议、UDP/IP协议、HTTP协议、HTTPS协议等。当然,所述网络协议例如还可以包括在上述协议之上使用的RPC协议(Remote Procedure Call Protocol,远程过程调用协议)、REST协议(Representational State Transfer,表述性状态转移协议)等。
从上述描述可知,本申请实施例提供的智能合约分类模型训练装置,能够提高智能合约分类模型训练过程中的特征全面性,能够提高智能合约分类模型的通用性以及训练效率,并能够有效提高采用智能合约分类模型进行智能合约分类的准确性及可靠性,进而能够提高用户查询智能合约的便捷性,还能够提高采用智能合约分类结果进行合约漏洞以及非法合约检测的有效性及可靠性,以提高区块链上金融交易、数据存储等的安全性。
从软件层面来说,本申请还提供一种用于执行所述智能合约分类方法中全部或部分内的智能合约分类装置,所述智能合约分类装置具体包含有如下内容:
数据接收模块,用于接收目标智能合约数据对应的目标字节码和目标交易数据;
文本特征提取模块,用于对所述目标字节码进行反汇编以得到对应的目标操作码,并获取所述目标操作码的操作码文本序列对应的特征向量矩阵;
以及,交易特征提取模块,用于以数据切片的方式获取所述目标交易数据对应的交易特征向量;
模型分类模块,用于将所述目标智能合约数据对应的特征向量矩阵和交易特征向量输入基于特征融合的智能合约分类模型中,以使该基于特征融合的智能合约分类模型输出所述目标智能合约数据对应的智能合约类型预测结果数据,其中,所述基于特征融合的智能合约分类模型预先基于所述智能合约分类模型训练方法训练得到。
从上述描述可知,本申请实施例提供的智能合约分类装置,能够有效提高采用智能合约分类模型进行智能合约分类的准确性及可靠性,进而能够提高用户查询智能合约的便捷性,还能够提高采用智能合约分类结果进行合约漏洞以及非法合约检测的有效性及可靠性,以提高区块链上金融交易、数据存储等的安全性。
本申请实施例还提供了一种电子设备,该电子设备可以包括处理器、存储器、接收器及发送器,处理器用于执行上述实施例提及的智能合约分类模型训练方法或者智能合约分类方法,其中处理器和存储器可以通过总线或者其他方式连接,以通过总线连接为例。该接收器可通过有线或无线方式与处理器、存储器连接。
处理器可以为中央处理器(Central Processing Unit,CPU)。处理器还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-ProgrammableGate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本申请实施例中的智能合约分类模型训练方法或者智能合约分类方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的智能合约分类模型训练方法或者智能合约分类方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器中,当被所述处理器执行时,执行实施例中的智能合约分类模型训练方法或者智能合约分类方法。
在本申请的一些实施例中,用户设备可以包括处理器、存储器和收发单元,该收发单元可包括接收器和发送器,处理器、存储器、接收器和发送器可通过总线系统连接,存储器用于存储计算机指令,处理器用于执行存储器中存储的计算机指令,以控制收发单元收发信号。
作为一种实现方式,本申请中接收器和发送器的功能可以考虑通过收发电路或者收发的专用芯片来实现,处理器可以考虑通过专用处理芯片、处理电路或通用芯片实现。
作为另一种实现方式,可以考虑使用通用计算机的方式来实现本申请实施例提供的服务器。即将实现处理器,接收器和发送器功能的程序代码存储在存储器中,通用处理器通过执行存储器中的代码来实现处理器,接收器和发送器的功能。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时以实现前述智能合约分类模型训练方法或者智能合约分类方法的步骤。该计算机可读存储介质可以是有形存储介质,诸如随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、软盘、硬盘、可移动存储盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本领域普通技术人员应该可以明白,结合本文中所公开的实施方式描述的各示例性的组成部分、系统和方法,能够以硬件、软件或者二者的结合来实现。具体究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。
需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
本申请中,针对一个实施方式描述和/或例示的特征,可以在一个或更多个其它实施方式中以相同方式或以类似方式使用,和/或与其他实施方式的特征相结合或代替其他实施方式的特征。
以上所述仅为本申请的优选实施例,并不用于限制本申请,对于本领域的技术人员来说,本申请实施例可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (8)
1.一种智能合约分类模型训练方法,其特征在于,包括:
获取各个智能合约数据各自的操作码文本序列对应的特征向量矩阵,并以数据切片的方式获取各个智能合约数据各自的交易数据对应的交易特征向量;
基于各个智能合约数据各自对应的所述特征向量矩阵以及智能合约类型标签训练预设的融合神经网络,以使该融合神经网络中的R-CNN模型对应输出各个智能合约数据各自对应的目标文本特征向量;再将各个所述智能合约数据对应的所述目标文本特征向量与所述交易特征向量分别进行特征融合,以得到各个所述智能合约数据各自对应的融合特征向量,并将各个所述融合特征向量输入所述融合神经网络中的全连接层以进行智能合约分类,进而将所述融合神经网络训练为一个基于特征融合的智能合约分类模型;
所述融合神经网络包括:依次连接的R-CNN模型、特征融合层、全连接层和Softmax层;
所述R-CNN模型用于根据输入的智能合约数据对应的所述特征向量矩阵,对应输出该智能合约数据对应的目标文本特征向量;
所述R-CNN模型包括:依次连接的特征输入层、双向LSTM网络和最大池化层;
所述特征输入层用于接收智能合约数据对应的所述特征向量矩阵以及智能合约类型标签;
所述双向LSTM网络用于提取所述特征向量矩阵对应的文本特征数据,所述双向LSTM网络由前向LSTM和后向LSTM构成,所述文本特征数据包括:由多个词向量表示构成的句子,且句子中的第个词向量表示/>是在对第/>个单词融合上下文信息的词向量表示/>进行非线性变换后得到的,即/>;
其中,根据下述公式求解;
其中,为上下文语境向量;/>表示第/>单词向量的权重参数;cl(wi)和cr(wi)分别表示双向LSTM网络中前向LSTM和后向LSTM分别输出的第i个单词的上下文语境向量;表示第/>单词的上下文语境向量;/>表示前向LSTM中当前词向量的权重参数;/>表示第/>个单词的词向量;/>表示第/>单词向量的权重参数;表示第/>单词的上下文语境向量;/>表示后向LSTM中当前词向量的权重参数;/>表示第/>个单词的词向量;/>表示第/>个单词的词向量;/>表示第/>个单词融合上下文信息的词向量表示;
所述最大池化层用于对所述文本特征数据在句子长度上进行最大池化处理,以得到所述文本特征数据对应的表示向量,并将该表示向量作为所述智能合约数据的目标文本特征向量,其中,所述最大池化层的步长和尺寸为文本长度,通过对由多个词向量表示的每个句子在句子长度上进行最大池化,得到每个句子的表示向量/>:
其中,n为句子的长度,的维度为512*1;
所述特征融合层用于将所述R-CNN模型输出的所述智能合约数据对应的目标文本特征向量与该智能合约数据对应的所述交易特征向量进行特征融合,以得到该智能合约数据对应的融合特征向量:
为智能合约数据对应的所述交易特征向量;所述全连接层用于根据输入的所述智能合约数据对应的融合特征向量/>,对应输出该智能合约数据对应的各个智能合约类型,其中:
其中,表示全连接层的输出向量,即智能合约数据对应的各个智能合约类型;/>表示全连接层的权重参数;/>表示全连接层的偏置项;
所述Softmax层用于将所述全连接层输出的所述智能合约数据对应的各个智能合约类型分别转换为概率值,并采用反向传播算法进行所述融合神经网络的模型参数更新;其中:
表示第/>个智能合约类型的概率;/>表示当前智能合约类型;/>表示全连接层的输出向量中的第k个值;
其中,训练预设的融合神经网络时采用的损失函数为交叉熵损失函数Loss,并采用反向传播算法进行参数更新;
其中是指模型预测的概率分布的第/>个元素,即softmax层输出的第/>个元素,/>表示各个智能合约数据各自对应的真实的智能合约类型标签的第/>个元素,/>表示各个智能合约数据构成的训练样本集合。
2.根据权利要求1所述的智能合约分类模型训练方法,其特征在于,在所述获取各个智能合约数据各自的操作码文本序列对应的特征向量矩阵,并以数据切片的方式获取各个智能合约数据各自的交易数据对应的交易特征向量之前,还包括:
获取多个智能合约数据,所述智能合约数据包括:智能合约的地址、智能合约类型、字节码和交易数据。
3.根据权利要求2所述的智能合约分类模型训练方法,其特征在于,所述获取各个智能合约数据各自的操作码文本序列对应的特征向量矩阵,包括:
对各个智能合约数据各自的所述字节码进行反汇编以得到对应的操作码,保留以太坊虚拟机定义的操作码指令并删除所述操作码中的地址字段,以得到各个所述智能合约数据各自的操作码文本序列;
基于Word2vec预训练模型获取各个所述操作码各自对应的词向量以生成各个所述词向量构成的操作码单词向量字典,根据所述操作码单词向量字典将各个所述操作码文本序列转换为对应的特征向量矩阵。
4.根据权利要求2所述的智能合约分类模型训练方法,其特征在于,所述以数据切片的方式获取各个智能合约数据各自的交易数据对应的交易特征向量,包括:
获取各个智能合约数据各自的交易数据所属的交易类型,其中,所述交易类型包括:外部传入交易、外部传出交易、内部传入交易和内部传出交易;
根据各个智能合约数据各自的交易数据所属的交易类型,分别统计各个所述智能合约数据在每个时间间隔内的交易数据统计量,其中,多个所述时间间隔构成一时间周期;
获取所述时间周期内的关于各个所述时间间隔的交易数据统计量对应的时间序列数据,并根据所述时间序列数据统计该时间周期内的交易特征,以得到各个所述智能合约数据各自的交易数据对应的交易特征向量;
针对生命周期为所述时间周期的倍数的交易合约数据,分别获取该交易合约数据在各个所述时间周期内对应的所述交易特征向量。
5.一种智能合约分类方法,其特征在于,包括:
接收目标智能合约数据对应的目标字节码和目标交易数据;
对所述目标字节码进行反汇编以得到对应的目标操作码,并获取所述目标操作码的操作码文本序列对应的特征向量矩阵;
以及,以数据切片的方式获取所述目标交易数据对应的交易特征向量;
将所述目标智能合约数据对应的特征向量矩阵和交易特征向量输入基于特征融合的智能合约分类模型中,以使该基于特征融合的智能合约分类模型输出所述目标智能合约数据对应的智能合约类型预测结果数据,其中,所述基于特征融合的智能合约分类模型预先基于权利要求1至4任一项所述的智能合约分类模型训练方法训练得到。
6.一种智能合约分类模型训练装置,其特征在于,包括:
数据预处理模块,用于获取各个智能合约数据各自的操作码文本序列对应的特征向量矩阵,并以数据切片的方式获取各个智能合约数据各自的交易数据对应的交易特征向量;
基于特征融合的模型训练模块,用于基于各个智能合约数据各自对应的所述特征向量矩阵以及智能合约类型标签训练预设的融合神经网络,以使该融合神经网络中的R-CNN模型对应输出各个智能合约数据各自对应的目标文本特征向量;再将各个所述智能合约数据对应的所述目标文本特征向量与所述交易特征向量分别进行特征融合,以得到各个所述智能合约数据各自对应的融合特征向量,并将各个所述融合特征向量输入所述融合神经网络中的全连接层以进行智能合约分类,进而将所述融合神经网络训练为一个基于特征融合的智能合约分类模型;
所述融合神经网络包括:依次连接的R-CNN模型、特征融合层、全连接层和Softmax层;
所述R-CNN模型用于根据输入的智能合约数据对应的所述特征向量矩阵,对应输出该智能合约数据对应的目标文本特征向量;
所述R-CNN模型包括:依次连接的特征输入层、双向LSTM网络和最大池化层;
所述特征输入层用于接收智能合约数据对应的所述特征向量矩阵以及智能合约类型标签;
所述双向LSTM网络用于提取所述特征向量矩阵对应的文本特征数据,所述双向LSTM网络由前向LSTM和后向LSTM构成,所述文本特征数据包括:由多个词向量表示构成的句子,且句子中的第个词向量表示/>是在对第/>个单词融合上下文信息的词向量表示/>进行非线性变换后得到的,即/>;
其中,根据下述公式求解;
其中,为上下文语境向量;/>表示第/>单词向量的权重参数;cl(wi)和cr(wi)分别表示双向LSTM网络中前向LSTM和后向LSTM分别输出的第i个单词的上下文语境向量;表示第/>单词的上下文语境向量;/>表示前向LSTM中当前词向量的权重参数;/>表示第/>个单词的词向量;/>表示第/>单词向量的权重参数;表示第/>单词的上下文语境向量;/>表示后向LSTM中当前词向量的权重参数;/>表示第/>个单词的词向量;/>表示第/>个单词的词向量;/>表示第/>个单词融合上下文信息的词向量表示;
所述最大池化层用于对所述文本特征数据在句子长度上进行最大池化处理,以得到所述文本特征数据对应的表示向量,并将该表示向量作为所述智能合约数据的目标文本特征向量,其中,所述最大池化层的步长和尺寸为文本长度,通过对由多个词向量表示的每个句子在句子长度上进行最大池化,得到每个句子的表示向量/>:
其中,n为句子的长度,的维度为512*1;
所述特征融合层用于将所述R-CNN模型输出的所述智能合约数据对应的目标文本特征向量与该智能合约数据对应的所述交易特征向量进行特征融合,以得到该智能合约数据对应的融合特征向量:
为智能合约数据对应的所述交易特征向量;所述全连接层用于根据输入的所述智能合约数据对应的融合特征向量/>,对应输出该智能合约数据对应的各个智能合约类型,其中:
其中,表示全连接层的输出向量,即智能合约数据对应的各个智能合约类型;/>表示全连接层的权重参数;/>表示全连接层的偏置项;
所述Softmax层用于将所述全连接层输出的所述智能合约数据对应的各个智能合约类型分别转换为概率值,并采用反向传播算法进行所述融合神经网络的模型参数更新;其中:
表示第/>个智能合约类型的概率;/>表示当前智能合约类型;/>表示全连接层的输出向量中的第k个值;
其中,训练预设的融合神经网络时采用的损失函数为交叉熵损失函数Loss,并采用反向传播算法进行参数更新;
其中是指模型预测的概率分布的第/>个元素,即softmax层输出的第/>个元素,/>表示各个智能合约数据各自对应的真实的智能合约类型标签的第/>个元素,/>表示各个智能合约数据构成的训练样本集合。
7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4任一项所述的智能合约分类模型训练方法,或者如权利要求5所述的智能合约分类方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至4任一项所述的智能合约分类模型训练方法,或者如权利要求5所述的智能合约分类方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410056053.9A CN117574214B (zh) | 2024-01-15 | 2024-01-15 | 智能合约分类模型训练方法、智能合约分类方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410056053.9A CN117574214B (zh) | 2024-01-15 | 2024-01-15 | 智能合约分类模型训练方法、智能合约分类方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117574214A CN117574214A (zh) | 2024-02-20 |
CN117574214B true CN117574214B (zh) | 2024-04-12 |
Family
ID=89864741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410056053.9A Active CN117574214B (zh) | 2024-01-15 | 2024-01-15 | 智能合约分类模型训练方法、智能合约分类方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117574214B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012088972A (ja) * | 2010-10-20 | 2012-05-10 | Nippon Telegr & Teleph Corp <Ntt> | データ分類装置、データ分類方法及びデータ分類プログラム |
CN111310191A (zh) * | 2020-02-12 | 2020-06-19 | 广州大学 | 一种基于深度学习的区块链智能合约漏洞检测方法 |
CN114547611A (zh) * | 2022-02-18 | 2022-05-27 | 扬州大学 | 一种基于多模态特征的智能合约庞氏骗局检测方法及系统 |
CN115017513A (zh) * | 2022-05-31 | 2022-09-06 | 电子科技大学 | 一种基于人工智能的智能合约漏洞检测方法 |
CN115080981A (zh) * | 2022-06-22 | 2022-09-20 | 东北大学 | 一种基于局部与序列特征融合的智能合约漏洞检测方法 |
WO2022249927A1 (ja) * | 2021-05-28 | 2022-12-01 | 株式会社医療情報技術研究所 | 分類システム |
CN115600211A (zh) * | 2022-10-13 | 2023-01-13 | 广州大学(Cn) | 基于CNN-BiLSTM多标签分类的智能合约未知漏洞检测方法 |
CN116028111A (zh) * | 2022-12-29 | 2023-04-28 | 青岛云智海商信息科技有限公司 | 一种多特征融合的智能合约分类模型 |
CN116089957A (zh) * | 2022-12-29 | 2023-05-09 | 河南大学 | 一种基于语法和语义特征融合的智能合约漏洞检测方法及装置 |
CN116150757A (zh) * | 2022-10-08 | 2023-05-23 | 广州大学 | 一种基于cnn-lstm多分类模型的智能合约未知漏洞检测方法 |
CN116595537A (zh) * | 2023-05-19 | 2023-08-15 | 北京交通大学 | 一种基于多模态特征的生成式智能合约的漏洞检测方法 |
CN116800482A (zh) * | 2023-06-09 | 2023-09-22 | 北京交通大学 | 以太坊-联盟链异构跨链系统的攻击检测与防护方法 |
CN116861362A (zh) * | 2023-07-06 | 2023-10-10 | 广州大学 | 智能合约攻击检测方法及装置 |
CN116958767A (zh) * | 2023-07-14 | 2023-10-27 | 江苏大学 | 基于多模态技术的智能合约安全分析方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133202A (zh) * | 2017-06-01 | 2017-09-05 | 北京百度网讯科技有限公司 | 基于人工智能的文本校验方法和装置 |
CN112818906B (zh) * | 2021-02-22 | 2023-07-11 | 浙江传媒学院 | 一种基于多模态信息融合理解的全媒体新闻智能编目方法 |
-
2024
- 2024-01-15 CN CN202410056053.9A patent/CN117574214B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012088972A (ja) * | 2010-10-20 | 2012-05-10 | Nippon Telegr & Teleph Corp <Ntt> | データ分類装置、データ分類方法及びデータ分類プログラム |
CN111310191A (zh) * | 2020-02-12 | 2020-06-19 | 广州大学 | 一种基于深度学习的区块链智能合约漏洞检测方法 |
WO2022249927A1 (ja) * | 2021-05-28 | 2022-12-01 | 株式会社医療情報技術研究所 | 分類システム |
CN114547611A (zh) * | 2022-02-18 | 2022-05-27 | 扬州大学 | 一种基于多模态特征的智能合约庞氏骗局检测方法及系统 |
CN115017513A (zh) * | 2022-05-31 | 2022-09-06 | 电子科技大学 | 一种基于人工智能的智能合约漏洞检测方法 |
CN115080981A (zh) * | 2022-06-22 | 2022-09-20 | 东北大学 | 一种基于局部与序列特征融合的智能合约漏洞检测方法 |
CN116150757A (zh) * | 2022-10-08 | 2023-05-23 | 广州大学 | 一种基于cnn-lstm多分类模型的智能合约未知漏洞检测方法 |
CN115600211A (zh) * | 2022-10-13 | 2023-01-13 | 广州大学(Cn) | 基于CNN-BiLSTM多标签分类的智能合约未知漏洞检测方法 |
CN116028111A (zh) * | 2022-12-29 | 2023-04-28 | 青岛云智海商信息科技有限公司 | 一种多特征融合的智能合约分类模型 |
CN116089957A (zh) * | 2022-12-29 | 2023-05-09 | 河南大学 | 一种基于语法和语义特征融合的智能合约漏洞检测方法及装置 |
CN116595537A (zh) * | 2023-05-19 | 2023-08-15 | 北京交通大学 | 一种基于多模态特征的生成式智能合约的漏洞检测方法 |
CN116800482A (zh) * | 2023-06-09 | 2023-09-22 | 北京交通大学 | 以太坊-联盟链异构跨链系统的攻击检测与防护方法 |
CN116861362A (zh) * | 2023-07-06 | 2023-10-10 | 广州大学 | 智能合约攻击检测方法及装置 |
CN116958767A (zh) * | 2023-07-14 | 2023-10-27 | 江苏大学 | 基于多模态技术的智能合约安全分析方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN117574214A (zh) | 2024-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10412105B2 (en) | Automatic detection of network threats based on modeling sequential behavior in network traffic | |
CN112003870B (zh) | 一种基于深度学习的网络加密流量识别方法及装置 | |
Zheng et al. | Learning to classify: A flow-based relation network for encrypted traffic classification | |
Yang et al. | TLS/SSL encrypted traffic classification with autoencoder and convolutional neural network | |
Chen et al. | Automatic mobile application traffic identification by convolutional neural networks | |
WO2020238353A1 (zh) | 数据处理方法和装置、存储介质及电子装置 | |
CN110163242B (zh) | 风险识别方法、装置及服务器 | |
Wang et al. | Automatic mobile app identification from encrypted traffic with hybrid neural networks | |
CN109033833B (zh) | 一种基于多特征与特征选择的恶意代码分类方法 | |
CN116647411B (zh) | 游戏平台网络安全的监测预警方法 | |
CN115051817B (zh) | 一种基于多模态融合特征的网络钓鱼检测方法和系统 | |
Torres et al. | Active learning approach to label network traffic datasets | |
CN114697096A (zh) | 基于空时特征和注意力机制的入侵检测方法 | |
CN112507336A (zh) | 基于代码特征和流量行为的服务端恶意程序检测方法 | |
Jain | Network traffic identification with convolutional neural networks | |
CN117574214B (zh) | 智能合约分类模型训练方法、智能合约分类方法及装置 | |
CN115314268B (zh) | 基于流量指纹和行为的恶意加密流量检测方法和系统 | |
CN112115443B (zh) | 一种终端用户鉴权方法及系统 | |
CN115759081A (zh) | 一种基于短语相似度的攻击模式抽取方法 | |
CN114625375A (zh) | 代码分析方法及装置 | |
CN116662557A (zh) | 一种网络安全领域内的实体关系抽取方法及装置 | |
CN112597390A (zh) | 基于数字金融的区块链大数据处理方法及大数据服务器 | |
CN112035841B (zh) | 一种基于专家规则与序列化建模的智能合约漏洞检测方法 | |
CN116049446B (zh) | 一种事件抽取方法、装置、设备及计算机可读存储介质 | |
CN104484414A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |