CN106778882B - 一种基于前馈神经网络的智能合约自动分类方法 - Google Patents
一种基于前馈神经网络的智能合约自动分类方法 Download PDFInfo
- Publication number
- CN106778882B CN106778882B CN201611205891.XA CN201611205891A CN106778882B CN 106778882 B CN106778882 B CN 106778882B CN 201611205891 A CN201611205891 A CN 201611205891A CN 106778882 B CN106778882 B CN 106778882B
- Authority
- CN
- China
- Prior art keywords
- intelligent contract
- code
- vector
- classification
- contract code
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24133—Distances to prototypes
- G06F18/24137—Distances to cluster centroïds
- G06F18/2414—Smoothing the distance, e.g. radial basis function networks [RBFN]
-
- 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/044—Recurrent networks, e.g. Hopfield networks
-
- 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
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Business, Economics & Management (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Accounting & Taxation (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于前馈神经网络的智能合约自动分类方法,能够实现机器对智能合约代码的自动分类;与当前传统的智能合约人工分类相比,本发明既节省了时间和经济成本,又能够胜任海量合约无法人工分类的任务。本发明采用前馈神经网络的训练方式可以在已贴标智能合约集合更新时,使用更新后的合约集合重新训练以使该自动分类器能够适应新的变化。
Description
技术领域
本发明属于区块链技术领域,具体涉及一种基于前馈神经网络的智能合约自动分类方法。
背景技术
作为区块链技术支撑的应用之一,区块链智能合约允许用户在区块链上实现个性化的代码逻辑从而使得区块链技术更加的简单易用。然而,随着以太坊Ethereum等智能合约平台的迅速发展,区块链上智能合约代码数量快速增加。如今,大型的智能合约平台中均已积累了数以十万计的智能合约,且数量仍在指数增长。
当前,对于智能合约代码的管理与组织,因缺乏自动化分类工具,仍采用人工分类的方法进行分门别类。但是,当前十万级并不断增长的智能合约数量已经使得人工地对众多的智能合约分门别类耗时耗力。未来,当智能合约数量超过百万,人工贴标甚至变得不再可能。
发明内容
为高效管理和有效组织海量的智能合约代码,解决对海量智能合约人工分类面临的时间和经济成本过高的问题,本发明提供一种基于前馈神经网络的智能合约自动分类方法,能够实现计算机对智能合约代码的自动分类。
一种基于前馈神经网络的智能合约自动分类方法,包括如下步骤:
(1)获取一定数量的智能合约代码,并人工标记这些智能合约代码的类别;
(2)对所述智能合约代码进行预处理;
(3)提取智能合约代码的代码语义向量和交易信息向量,并将两者组合作为特征向量;
(4)以智能合约代码的特征向量作为输入,人工标记的类别作为输出,通过前馈神经网络训练得到关于智能合约代码的分类器;
(5)对于未知类别的智能合约代码,根据步骤(3)提取得到其特征向量并输入至所述分类器中,从而输出得到该智能合约代码的类别。
所述步骤(2)中对智能合约代码进行预处理的具体方法为:对于任一智能合约代码A,若其智能合约调用了另一个智能合约的函数,则将被调用的函数代码扩充到智能合约代码A中调用该函数的相应位置;对于递归调用,同样采用上述方式处理。
所述步骤(3)中提取智能合约代码的代码语义向量,具体过程为:首先,将智能合约代码完全展开后即对应得到了一个词序列;然后,利用词嵌入模型将该词序列中的每一个词对应映射成一个词嵌入向量;最后,将词序列中所有词对应的词嵌入向量输入LSTM(Long Short-Term Memory,长短时记忆)模型中,LSTM模型将这些词嵌入向量映射成一个代码语义向量,即智能合约代码的代码语义向量。
所述步骤(3)中提取智能合约代码的交易信息向量,即提取与智能合约代码相关的账号状态信息,包括账号的余额、关联交易总数量、PageRank值以及创建者的Nonce等,从而组合成所述交易信息向量。
所述步骤(4)中的前馈神经网络由输入层、隐藏层和输出层组成;其中,智能合约代码的特征向量[V,T]作为输入层,隐藏层的输出x表达如下:
x=α(Wh[V,T]+bh)
其中:Wh为隐藏层的权值系数矩阵,V和T分别为智能合约代码的代码语义向量和交易信息向量,bh为隐藏层的偏置系数矩阵,α()为激活函数;
对于前馈神经网络的输出层,在得到其输出y后,将输出y通过归一化计算后得到一个关于类标签的概率分布向量,其中的第j个元素值pj即为智能合约代码属于第j类别的概率值,具体表达式如下:
其中:θj对应为第j类别的权重向量,T表示转置,j为自然数且1≤j≤k,k为智能合约代码的类别总数。
所述激活函数α()可采用sigmoid函数、tanh函数或ReLu(Rectified LinearUnits)函数;由于ReLU的性能被证明优于其他两种,故优选采用ReLU作为激活函数。
所述步骤(5)中将未知类别的智能合约代码的特征向量输入至分类器中,输出得到对应的概率分布向量,取其中对应概率值最大的类别作为该智能合约代码的类别。
本发明的有益技术效果如下:
(1)本发明首次提出基于前馈神经网络的智能合约自动分类方法,能够实现机器对智能合约代码的自动分类;与当前传统的智能合约人工分类相比,本发明既节省了时间和经济成本,又能够胜任海量合约无法人工分类的任务。
(2)本发明采用前馈神经网络的训练方式可以在已贴标智能合约集合更新时,使用更新后的合约集合重新训练以使该自动分类器能够适应新的变化。
附图说明
图1为本发明智能合约代码自动分类方法的架构示意图。
具体实施方式
为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。
对于以太坊上的海量智能合约,本发明基于前馈神经网络的智能合约自动分类方法,包括如下步骤:
1.根据对当前智能合约平台中大量智能合约的分析,将智能合约划分成9个类:金融类(保险、融资、投资等)、物联网类、游戏类、彩票类、工具类、娱乐类、货币类、信息管理类和其他类。
2.使用前馈神经网络和已贴标的智能合约代码集合训练智能合约的分类器,训练过程依照如下步骤3至步骤7所述。
3.对于输入的一段智能合约代码A,如果该智能合约调用了另一个智能合约的函数,我们将被调用的函数代码扩充到A中调用该函数的相应位置;对于递归调用,也采用同样的方式处理。
4.对于输入的一段智能合约代码A,将其中调用的函数都展开成完整的函数代码,每一份完全展开后的智能合约代码可视为一个词的序列{w1,w2,…,wn},将展开后的代码输入到图1中的词嵌入层,词嵌入层将每一个词wi映射成一个词嵌入向量。
5.然后将这些词嵌入向量顺序输入长短时记忆模型(图1中的LSTM层)中,长短时记忆模型将这些向量映射成一个代码语义向量。长短时记忆模型在自然语言处理领域应用广泛,可以很好的处理变长的输入,比如句子。同时,长短时记忆模型已被证明可以捕获输入的长时记忆,因此可以用来发现输入的内部结构和依赖关系。
6.提取与输入的智能合约代码A相关的账号状态信息,主要包括账号的余额、关联交易总数量、PageRank值、创建者的Nonce等,组合成交易信息向量。
7.将第5步得到的代码语义向量V和第6步提取出的交易信息向量T组合连接,将组合连接后的向量(V,T)作为前馈神经网络的输入,该合约对应的已贴标好的分类类别作为输出。依此,n个已贴标的智能合约对应n个输入输出对,使用这些输入输出对进行前馈神经网络的训练,前馈神经网络包含三层:输入层,隐含层和输出层,具体训练过程如下:
组合后的向量(V,T)作为前馈神经网络的输入层,如图1中前馈神经网络层所示,智能合约对应的已贴标好的分类类别作为输出。本实施方式使用118027份以太坊的智能合约(人工贴标)对前馈神经网络进行训练,获得神经网络中的所有参数的合适取值。
对于隐含层:在给定输入(V,T)后,隐含层进行了如下转换:
α(Wh·(V,T)+bh)
其中:Wh为隐含层的权值系数矩阵,α为激活函数,bh为偏置系数矩阵。为了让神经网络学习到一个非线性的决策边界,激活函数的选择有sigmoid、tanh、ReLU(定义为max(0,x))。因为ReLU的性能被证明优于另外两种,故本实施方式选择ReLU作为激活函数。在输入层和输出层之间设置的这个隐含层使得模型具有非线性的分类能力。
对于输出层:在得到隐含层的输出后,将该输出传到一个softmax层中进行运算处理;对softmax层的输出x计算得到一个关于类标签的概率分布:
其中:θk是第k类的权重向量,除以分母是为了进行归一化处理,以获得类标签Cj的概率值。
8.使用第7步已训练好的智能合约自动分类器,输入未知类别的一段智能合约代码的向量(V,T),前馈神经网络的SoftMax层输出该未知类别智能合约的类别标签概率大小,选择其中具有最大概率的类标签作为该智能合约代码的类标签。
步骤3至步骤7的训练过程可以在已贴标智能合约集合更新时,使用更新后的合约集合重新训练以使该自动分类器能够及时捕捉新的变化。
上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。
Claims (5)
1.一种基于前馈神经网络的智能合约自动分类方法,包括如下步骤:
(1)获取一定数量的智能合约代码,并人工标记这些智能合约代码的类别;
(2)对所述智能合约代码进行预处理;
(3)提取智能合约代码的代码语义向量和交易信息向量,并将两者组合作为特征向量;其中:
提取智能合约代码的代码语义向量,具体过程为:首先,将智能合约代码完全展开后即对应得到了一个词序列;然后,利用词嵌入模型将该词序列中的每一个词对应映射成一个词嵌入向量;最后,将词序列中所有词对应的词嵌入向量输入LSTM模型中,LSTM模型将这些词嵌入向量映射成一个代码语义向量,即智能合约代码的代码语义向量;
提取智能合约代码的交易信息向量,即提取与智能合约代码相关的账号状态信息,包括账号的余额、关联交易总数量、PageRank值以及创建者的Nonce,从而组合成所述交易信息向量;
(4)以智能合约代码的特征向量作为输入,人工标记的类别作为输出,通过前馈神经网络训练得到关于智能合约代码的分类器;
(5)对于未知类别的智能合约代码,根据步骤(3)提取得到其特征向量并输入至所述分类器中,从而输出得到该智能合约代码的类别。
2.根据权利要求1所述的智能合约自动分类方法,其特征在于:所述步骤(2)中对智能合约代码进行预处理的具体方法为:对于任一智能合约代码A,若其智能合约调用了另一个智能合约的函数,则将被调用的函数代码扩充到智能合约代码A中调用该函数的相应位置;对于递归调用,同样采用上述方式处理。
3.根据权利要求1所述的智能合约自动分类方法,其特征在于:所述步骤(4)中的前馈神经网络由输入层、隐藏层和输出层组成;其中,智能合约代码的特征向量[V,T]作为输入层,隐藏层的输出x表达如下:
x=α(Wh[V,T]+bh)
其中:Wh为隐藏层的权值系数矩阵,V和T分别为智能合约代码的代码语义向量和交易信息向量,bh为隐藏层的偏置系数矩阵,α()为激活函数;
对于前馈神经网络的输出层,在得到其输出y后,将输出y通过归一化计算后得到一个关于类标签的概率分布向量,其中的第j个元素值pj即为智能合约代码属于第j类别的概率值,具体表达式如下:
其中:θj对应为第j类别的权重向量,T表示转置,j为自然数且1≤j≤k,k为智能合约代码的类别总数。
4.根据权利要求3所述的智能合约自动分类方法,其特征在于:所述激活函数α()采用ReLu函数。
5.根据权利要求3所述的智能合约自动分类方法,其特征在于:所述步骤(5)中将未知类别的智能合约代码的特征向量输入至分类器中,输出得到对应的概率分布向量,取其中对应概率值最大的类别作为该智能合约代码的类别。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611205891.XA CN106778882B (zh) | 2016-12-23 | 2016-12-23 | 一种基于前馈神经网络的智能合约自动分类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611205891.XA CN106778882B (zh) | 2016-12-23 | 2016-12-23 | 一种基于前馈神经网络的智能合约自动分类方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106778882A CN106778882A (zh) | 2017-05-31 |
CN106778882B true CN106778882B (zh) | 2019-11-05 |
Family
ID=58919946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611205891.XA Active CN106778882B (zh) | 2016-12-23 | 2016-12-23 | 一种基于前馈神经网络的智能合约自动分类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106778882B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107622387B (zh) * | 2017-08-04 | 2021-12-10 | 苏州缓流科技有限公司 | 基于区块链技术的公众号支付方法 |
CN108595185B (zh) * | 2018-04-11 | 2021-07-27 | 暨南大学 | 一种将以太坊智能合约转换成超级账本智能合约的方法 |
CN110059970A (zh) * | 2019-04-23 | 2019-07-26 | 南京工程学院 | 一种基于区块链技术的电网***交易方法 |
WO2020237519A1 (zh) * | 2019-05-29 | 2020-12-03 | 深圳大学 | 识别方法、装置、设备以及存储介质 |
CN110444261B (zh) * | 2019-07-11 | 2023-02-03 | 新华三大数据技术有限公司 | 序列标注网络训练方法、电子病历处理方法及相关装置 |
CN110782346B (zh) * | 2019-10-09 | 2022-07-08 | 山东科技大学 | 一种基于关键字特征提取和注意力的智能合约分类方法 |
CN111460454A (zh) * | 2020-03-13 | 2020-07-28 | 中国科学院计算技术研究所 | 一种基于栈指令序列的智能合约相似度检索方法及*** |
CN112069313A (zh) * | 2020-08-12 | 2020-12-11 | 北京工业大学 | 一种基于bert与双向lstm、注意力机制融合的灾难信息博文分类方法 |
CN112651753A (zh) * | 2020-12-30 | 2021-04-13 | 杭州趣链科技有限公司 | 基于区块链的智能合约生成方法、***及电子设备 |
CN113032001B (zh) * | 2021-03-26 | 2022-02-08 | 中山大学 | 一种智能合约分类方法及装置 |
CN113486915A (zh) * | 2021-04-26 | 2021-10-08 | 深圳前海移联科技有限公司 | 一种基于多平台的智能合约分类方法、***及电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102915445A (zh) * | 2012-09-17 | 2013-02-06 | 杭州电子科技大学 | 一种改进型的神经网络高光谱遥感影像分类方法 |
CN103577876A (zh) * | 2013-11-07 | 2014-02-12 | 吉林大学 | 基于前馈神经网络的可信与不可信用户识别方法 |
CN104598611A (zh) * | 2015-01-29 | 2015-05-06 | 百度在线网络技术(北京)有限公司 | 对搜索条目进行排序的方法及*** |
CN104834747A (zh) * | 2015-05-25 | 2015-08-12 | 中国科学院自动化研究所 | 基于卷积神经网络的短文本分类方法 |
CN105809062A (zh) * | 2016-03-01 | 2016-07-27 | 布比(北京)网络技术有限公司 | 一种合约构建、执行方法及装置 |
CN105893042A (zh) * | 2016-03-31 | 2016-08-24 | 北京航空航天大学 | 一种基于区块链的智能合约的实现方法 |
CN105976231A (zh) * | 2016-06-24 | 2016-09-28 | 深圳前海微众银行股份有限公司 | 基于区块链智能合约的资产管理方法及节点 |
CN105975868A (zh) * | 2016-04-29 | 2016-09-28 | 杭州云象网络技术有限公司 | 一种基于区块链的证据保全方法及装置 |
-
2016
- 2016-12-23 CN CN201611205891.XA patent/CN106778882B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102915445A (zh) * | 2012-09-17 | 2013-02-06 | 杭州电子科技大学 | 一种改进型的神经网络高光谱遥感影像分类方法 |
CN103577876A (zh) * | 2013-11-07 | 2014-02-12 | 吉林大学 | 基于前馈神经网络的可信与不可信用户识别方法 |
CN104598611A (zh) * | 2015-01-29 | 2015-05-06 | 百度在线网络技术(北京)有限公司 | 对搜索条目进行排序的方法及*** |
CN104834747A (zh) * | 2015-05-25 | 2015-08-12 | 中国科学院自动化研究所 | 基于卷积神经网络的短文本分类方法 |
CN105809062A (zh) * | 2016-03-01 | 2016-07-27 | 布比(北京)网络技术有限公司 | 一种合约构建、执行方法及装置 |
CN105893042A (zh) * | 2016-03-31 | 2016-08-24 | 北京航空航天大学 | 一种基于区块链的智能合约的实现方法 |
CN105975868A (zh) * | 2016-04-29 | 2016-09-28 | 杭州云象网络技术有限公司 | 一种基于区块链的证据保全方法及装置 |
CN105976231A (zh) * | 2016-06-24 | 2016-09-28 | 深圳前海微众银行股份有限公司 | 基于区块链智能合约的资产管理方法及节点 |
Non-Patent Citations (2)
Title |
---|
A Bayesian Classification Approach Using Class-Specific Features for Text Categorization;Bo Tang 等;《IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING》;20160127;第28卷(第6期);1602-1606 * |
基于混合模式的网页过滤***研究;李慧,施荣华;《信息技术》;20071225;73-76 * |
Also Published As
Publication number | Publication date |
---|---|
CN106778882A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106778882B (zh) | 一种基于前馈神经网络的智能合约自动分类方法 | |
CN110083700A (zh) | 一种基于卷积神经网络的企业舆情情感分类方法及*** | |
CN110020438B (zh) | 基于序列识别的企业或组织中文名称实体消歧方法和装置 | |
CN108460089A (zh) | 基于Attention神经网络的多元特征融合中文文本分类方法 | |
CN108664632A (zh) | 一种基于卷积神经网络和注意力机制的文本情感分类算法 | |
CN112347268A (zh) | 一种文本增强的知识图谱联合表示学习方法及装置 | |
CN109597891A (zh) | 基于双向长短时记忆神经网络的文本情感分析方法 | |
CN109858032A (zh) | 融合Attention机制的多粒度句子交互自然语言推理模型 | |
CN110188272B (zh) | 一种基于用户背景的社区问答网站标签推荐方法 | |
CN110033281B (zh) | 一种智能客服至人工客服转换的方法及装置 | |
CN110298037A (zh) | 基于增强注意力机制的卷积神经网络匹配的文本识别方法 | |
CN110502749A (zh) | 一种基于双层注意力机制与双向gru的文本关系抽取方法 | |
CN106844349B (zh) | 基于协同训练的垃圾评论识别方法 | |
CN110263323A (zh) | 基于栅栏式长短时记忆神经网络的关键词抽取方法及*** | |
CN110019843A (zh) | 知识图谱的处理方法及装置 | |
CN109241255A (zh) | 一种基于深度学习的意图识别方法 | |
CN109308319B (zh) | 文本分类方法、文本分类装置和计算机可读存储介质 | |
CN103116766B (zh) | 一种基于增量神经网络和子图编码的图像分类方法 | |
CN106919951A (zh) | 一种基于点击与视觉融合的弱监督双线性深度学习方法 | |
CN108549658A (zh) | 一种基于语法分析树上注意力机制的深度学习视频问答方法及*** | |
CN110287323A (zh) | 一种面向目标的情感分类方法 | |
CN109766935A (zh) | 一种基于超图p-Laplacian图卷积神经网络的半监督分类方法 | |
CN109919175A (zh) | 一种结合属性信息的实体多分类方法 | |
CN109271527A (zh) | 一种需求功能点智能识别方法 | |
CN113128233B (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 |