System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及智能合约分类,尤其涉及智能合约分类模型训练方法、智能合约分类方法及装置。
技术介绍
1、智能合约可以理解为自动执行的合约,是部署在区块链上的完整代码的片段,是一个在分布式账本运行的事件驱动程序。智能合约已经成为以太坊的重要组成部分,使用智能合约构建的dapp(去中心化应用程序)已广泛应用于许多领域,如游戏、资产记录和抵押贷款等。因此,部署在区块链平台上的智能合约数量呈指数级增长。随着合约数量的增加,如何帮助用户在大量合同中找到他们需要的服务已经成为一个重要问题。区块链平台提供的智能合约的主要查询api基于合约地址、区块号、交易哈希和时间戳。用户希望获得更方便的搜索体验,可以对合约按照类别进行查询。因此需要研究智能合约分类方式。
2、传统的智能合约的识别依赖于人工标记,代价较大且低效,因此需要设计有效的智能合约分类模型对现有或者新的智能合约进行分类和标记。目前,现有的智能合约分类模型主要采用智能合约的源代码对应特征或者采用字节码和操作码的计数对应特征来训练模型。
3、然而,采用源代码的方式存在通用性差的问题,而采用字节码和操作码的计数方式存在易丧失语义特征、因特征不够全面而导致模型分类准确性差的问题。
技术实现思路
1、鉴于此,本申请实施例提供了智能合约分类模型训练方法、智能合约分类方法及装置,以消除或改善现有技术中存在的一个或更多个缺陷。
2、本申请的一个方面提供了一种智能合约分类模型训练方法,包括:
3、获取各个智能合约数
4、基于各个智能合约数据各自对应的所述特征向量矩阵以及智能合约类型标签训练预设的融合神经网络,以使该融合神经网络中的r-cnn模型对应输出各个智能合约数据各自对应的目标文本特征向量;再将各个所述智能合约数据对应的所述目标文本特征向量与所述交易特征向量分别进行特征融合,以得到各个所述智能合约数据各自对应的融合特征向量,并将各个所述融合特征向量输入所述融合神经网络中的全连接层以进行智能合约分类,进而将所述融合神经网络训练为一个基于特征融合的智能合约分类模型。
5、在本申请的一些实施例中,所述融合神经网络包括:依次连接的r-cnn模型、特征融合层、全连接层和softmax层;
6、所述r-cnn模型用于根据输入的智能合约数据对应的所述特征向量矩阵,对应输出该智能合约数据对应的目标文本特征向量;
7、所述特征融合层用于将所述r-cnn模型输出的所述智能合约数据对应的目标文本特征向量与该智能合约数据对应的所述交易特征向量进行行特征融合,以得到该智能合约数据对应的融合特征向量;
8、所述全连接层用于根据输入的所述智能合约数据对应的融合特征向量,对应输出该智能合约数据对应的各个智能合约类型;
9、所述softmax层用于将所述全连接层输出的所述智能合约数据对应的各个智能合约类型分别转换为概率值,并采用反向传播算法进行所述融合神经网络的模型参数更新。
10、在本申请的一些实施例中,所述r-cnn模型包括:依次连接的特征输入层、双向lstm网络和最大池化层;
11、所述特征输入层用于接收智能合约数据对应的所述特征向量矩阵以及智能合约类型标签;
12、所述双向lstm网络用于根据提取所述特征向量矩阵对应的文本特征数据,所述文本特征数据包括:由多个词向量表示的句子;
13、所述最大池化层用于对所述文本特征数据在句子长度上进行最大池化处理,以得到所述文本特征数据对应的表示向量,并将该表示向量作为所述智能合约数据的目标文本特征向量。
14、在本申请的一些实施例中,在所述获取各个智能合约数据各自的操作码文本序列对应的特征向量矩阵,并以数据切片的方式获取各个智能合约数据各自的交易数据对应的交易特征向量之前,还包括:
15、获取多个智能合约数据,所述智能合约数据包括:智能合约的地址、智能合约类型、字节码和交易数据。
16、在本申请的一些实施例中,所述获取各个智能合约数据各自的操作码文本序列对应的特征向量矩阵,包括:
17、对各个智能合约数据各自的所述字节码进行反汇编以得到对应的操作码,保留以太坊虚拟机定义的操作码指令并删除所述操作码中的地址字段,以得到各个所述智能合约数据各自的操作码文本序列;
18、基于word2vec预训练模型获取各个所述操作码各自对应的词向量以生成各个所述词向量构成的操作码单词向量字典,根据所述操作码单词向量字典将各个所述操作码文本序列转换为对应的特征向量矩阵。
19、在本申请的一些实施例中,所述以数据切片的方式获取各个智能合约数据各自的交易数据对应的交易特征向量,包括:
20、获取各个智能合约数据各自的交易数据所属的交易类型,其中,所述交易类型包括:外部传入交易、外部传出交易、内部传入交易和内部传出交易;
21、根据各个智能合约数据各自的交易数据所属的交易类型,分别统计各个所述智能合约数据在每个时间间隔内的交易数据统计量,其中,多个所述时间间隔构成一时间周期;
22、获取所述时间周期内的关于各个所述时间间隔的交易数据统计量对应的时间序列数据,并根据所述时间序列数据统计该时间周期内的交易特征,以得到各个所述智能合约数据各自的交易数据对应的交易特征向量;
23、针对生命周期为所述时间周期的倍数的交易合约数据,分别获取该交易合约数据在各个所述时间周期内对应的所述交易特征向量。
24、本申请的另一个方面提供了一种智能合约分类方法,包括:
25、接收目标智能合约数据对应的目标字节码和目标交易数据;
26、对所述目标字节码进行反汇编以得到对应的目标操作码,并获取所述目标操作码的操作码文本序列对应的特征向量矩阵;
27、以及,以数据切片的方式获取所述目标交易数据对应的交易特征向量;
28、将所述目标智能合约数据对应的特征向量矩阵和交易特征向量输入基于特征融合的智能合约分类模型中,以使该基于特征融合的智能合约分类模型输出所述目标智能合约数据对应的智能合约类型预测结果数据,其中,所述基于特征融合的智能合约分类模型预先基于所述智能合约分类模型训练方法训练得到。
29、本申请的第三个方面提供了一种智能合约分类模型训练装置,包括:
30、数据预处理模块,用于获取各个智能合约数据各自的操作码文本序列对应的特征向量矩阵,并以数据切片的方式获取各个智能合约数据各自的交易数据对应的交易特征向量;
31、基于特征融合的模型训练模块,用于基于各个智能合约数据各自对应的所述特征向量矩阵以及智能合约类型标签训练预设的融合神经网络,以使该融合神经网络中的r-cnn模型对应输出各个智能合约数据各自对应的目标文本特征向量;再将各个所述智能合约本文档来自技高网...
【技术保护点】
1.一种智能合约分类模型训练方法,其特征在于,包括:
2.根据权利要求1所述的智能合约分类模型训练方法,其特征在于,所述融合神经网络包括:依次连接的R-CNN模型、特征融合层、全连接层和Softmax层;
3.根据权利要求2所述的智能合约分类模型训练方法,其特征在于,所述R-CNN模型包括:依次连接的特征输入层、双向LSTM网络和最大池化层;
4.根据权利要求1所述的智能合约分类模型训练方法,其特征在于,在所述获取各个智能合约数据各自的操作码文本序列对应的特征向量矩阵,并以数据切片的方式获取各个智能合约数据各自的交易数据对应的交易特征向量之前,还包括:
5.根据权利要求4所述的智能合约分类模型训练方法,其特征在于,所述获取各个智能合约数据各自的操作码文本序列对应的特征向量矩阵,包括:
6.根据权利要求4所述的智能合约分类模型训练方法,其特征在于,所述以数据切片的方式获取各个智能合约数据各自的交易数据对应的交易特征向量,包括:
7.一种智能合约分类方法,其特征在于,包括:
8.一种智能合约分类模型训
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的智能合约分类模型训练方法,或者如权利要求7所述的智能合约分类方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至6任一项所述的智能合约分类模型训练方法,或者如权利要求7所述的智能合约分类方法。
...【技术特征摘要】
1.一种智能合约分类模型训练方法,其特征在于,包括:
2.根据权利要求1所述的智能合约分类模型训练方法,其特征在于,所述融合神经网络包括:依次连接的r-cnn模型、特征融合层、全连接层和softmax层;
3.根据权利要求2所述的智能合约分类模型训练方法,其特征在于,所述r-cnn模型包括:依次连接的特征输入层、双向lstm网络和最大池化层;
4.根据权利要求1所述的智能合约分类模型训练方法,其特征在于,在所述获取各个智能合约数据各自的操作码文本序列对应的特征向量矩阵,并以数据切片的方式获取各个智能合约数据各自的交易数据对应的交易特征向量之前,还包括:
5.根据权利要求4所述的智能合约分类模型训练方法,其特征在于,所述获取各个智能合约数据各自的操作码文本序列对应的特征向量矩...
【专利技术属性】
技术研发人员:刘宁波,杨谈,彭燕兵,万德,郑永伯,杨超群,
申请(专利权)人:中科链安北京科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。