CN112949778A - 基于局部敏感哈希的智能合约分类方法、***及电子设备 - Google Patents
基于局部敏感哈希的智能合约分类方法、***及电子设备 Download PDFInfo
- Publication number
- CN112949778A CN112949778A CN202110414897.2A CN202110414897A CN112949778A CN 112949778 A CN112949778 A CN 112949778A CN 202110414897 A CN202110414897 A CN 202110414897A CN 112949778 A CN112949778 A CN 112949778A
- Authority
- CN
- China
- Prior art keywords
- matrix
- characteristic
- code
- transaction
- intelligent contract
- 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
- 238000000034 method Methods 0.000 title claims abstract description 56
- 239000011159 matrix material Substances 0.000 claims abstract description 203
- 238000010606 normalization Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 12
- 239000013598 vector Substances 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 5
- 238000010276 construction Methods 0.000 claims description 5
- 238000010801 machine learning Methods 0.000 abstract description 17
- 238000004364 calculation method Methods 0.000 abstract description 13
- 238000012549 training Methods 0.000 abstract description 10
- 238000002372 labelling Methods 0.000 abstract description 5
- 238000013145 classification model Methods 0.000 abstract description 4
- 238000005516 engineering process Methods 0.000 description 11
- 238000012546 transfer Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Business, Economics & Management (AREA)
- Mathematical Physics (AREA)
- Finance (AREA)
- Mathematical Analysis (AREA)
- Accounting & Taxation (AREA)
- General Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Algebra (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了基于局部敏感哈希的智能合约分类方法、***和电子设备,通过将多个智能合约的代码信息与交易信息构造代码特征矩阵和交易特征矩阵,并对其进行局部敏感哈希计算获得对应的代码特征局部敏感哈希矩阵和交易特征局部敏感哈希矩阵,以分别表征智能合约中代码信息和交易信息的相似度,最后将两个敏感哈希矩阵进行拼接,获得最终的智能合约局部敏感哈希矩阵,以从代码和交易信息两个方向对智能合约进行相似度对比,获得最终的智能合约分类结果,本方法不需要标签数据训练模型,无需耗费人力完成数据标注工作,也减少了机器学习的分类模型进行训练时对大量训练样本的依赖。同时,本方法对新类型的智能合约适应性更强。
Description
技术领域
本发明涉及区块链的智能合约分类方法领域,尤其涉及基于局部敏感哈希的智能合约分类方法、***及电子设备。
背景技术
随着网络和信息技术的不断普及,互联网产生的数据量正呈指数级增长。在区块链中,每天都有成千上万份智能合约被部署。调查发现,有很多人对区块链上的智能合约全貌非常感兴趣,因为这会影响他们目前正在从事的工作。例如智能合约开发者,他们需要链上智能合约全貌信息指导他们开发什么类型的合约,从而能更顺利开发出热门的合约;智能合约研究人员也需要智能合约的全貌信息,他们利用这些信息指导他们的研究方向,他们将更关注多人使用的合约类型的安全问题,以及一些新型合约是否存在安全问题,毕竟合约和数字资产是密切相关的,需要保证合约没有漏洞,以免财产损失。如果通过人工阅读每一份合约来了解智能合约的发展现状是不太现实的,因为阅读合约的速度完全跟不上合约的部署速度,因此目前迫切需要一种智能合约快速聚类的技术,使得人们更迅速获取区块链上智能合约的全貌信息。
现有的用于分类智能合约的方式已经出现了基于机器学习的分类方法,但机器学习的方式需要大量已打标签的数据训练模型,而打标签的过程非常消耗人力,并且机器学习的分类方式对新类型合约适应性差。运行在区块链上的智能合约诞生不久,目前出现的智能合约类型肯定是不够全面的,如果出现新型智能合约,模型只会把它划分为已有类别的某一类,并不能新建一类,识别分类不准确。
发明内容
本发明提供了基于局部敏感哈希的智能合约分类方法、***及电子设备,旨在解决现有的区块链中智能合约基于机器学习的分类方法模型训练困难、分类不准确问题。
根据本申请实施例,提供了基于局部敏感哈希的智能合约分类方法,包括以下步骤:步骤S1:获取基于区块链的多个智能合约,提取每个智能合约中的代码信息和交易信息;步骤S2:基于代码信息构造代码特征矩阵,基于交易信息构造交易特征矩阵;步骤S3:对代码特征矩阵进行局部敏感哈希,获得代码特征局部敏感哈希矩阵,对交易特征矩阵进行局部敏感哈希,获得交易特征局部敏感哈希矩阵;步骤S4:将代码特征局部敏感哈希矩阵和交易特征局部敏感哈希矩阵进行拼接,获得智能合约局部敏感哈希矩阵;及步骤S5:基于智能合约局部敏感哈希矩阵,对每一行的向量进行分类,获得多种不同类型的智能合约。
优选地,上述步骤S1具体包括:步骤S11:获取区块链的多个智能合约,将所有智能合约生成抽象语法树;及步骤S12:遍历所述抽象语法树,解析并记录抽象语法树上各个节点的信息,分别获取对应的代码信息和交易信息。
优选地,上述步骤S2具体包括:步骤S21:基于抽象语法树的节点及对应的代码信息,得到所有智能合约中对应的代码特征矩阵;及步骤S22:基于抽象语法树的节点及对应的交易信息,得到所有智能合约中对应的交易特征矩阵。
优选地,上述步骤S21具体包括:步骤S211:获取抽象语法树的所有节点,提取每一个节点的类型,去除掉重复的节点;及步骤S212:统计剩余节点的种类,构建智能合约中对应的代码特征矩阵。
优选地,上述步骤S3具体包括:步骤S31:生成一个随机矩阵,所述随机矩阵的行数等于代码特征矩阵的行数,列数为用户预设值;步骤S32:将代码特征矩阵点乘随机矩阵,获得代码特征随机矩阵,将所述代码特征随机矩阵进行归一化处理,获得代码特征局部敏感哈希矩阵;及步骤S33:将交易特征矩阵点乘随机矩阵,获得交易特征随机矩阵,将所述交易特征随机矩阵进行归一化处理,获得交易特征局部敏感哈希矩阵。
本发明还提供基于局部敏感哈希的智能合约分类***,包括:智能合约获取单元,用于获取基于区块链的多个智能合约,提取每个智能合约中的代码信息和交易信息;特征矩阵构造单元,用于基于代码信息构造代码特征矩阵,基于交易信息构造交易特征矩阵;局部敏感哈希单元,用于对代码特征矩阵进行局部敏感哈希,获得代码特征局部敏感哈希矩阵,对交易特征矩阵进行局部敏感哈希,获得交易特征局部敏感哈希矩阵;矩阵拼接单元,用于将代码特征局部敏感哈希矩阵和交易特征局部敏感哈希矩阵进行拼接,获得智能合约局部敏感哈希矩阵;及合约分类单元,用于基于智能合约局部敏感哈希矩阵,对每一行的向量进行分类,获得多种不同类型的智能合约。
优选地,所述智能合约获取单元还包括:语法树构建单元,用于获取区块链的多个智能合约,将所有智能合约生成抽象语法树;及节点遍历单元,用于遍历所述抽象语法树,解析并记录抽象语法树上各个节点的信息,分别获取对应的代码信息和交易信息。
优选地,所述局部敏感哈希单元还包括:随机矩阵生成单元,用于生成一个随机矩阵,所述随机矩阵的行数等于代码特征矩阵的行数,列数为用户预设值;代码矩阵点乘单元,用于将代码特征矩阵点乘随机矩阵,获得代码特征随机矩阵,将所述代码特征随机矩阵进行归一化处理,获得代码特征局部敏感哈希矩阵;及交易矩阵点乘单元,用于将交易特征矩阵点乘随机矩阵,获得交易特征随机矩阵,将所述交易特征随机矩阵进行归一化处理,获得交易特征局部敏感哈希矩阵。
本发明还提供一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被设置为运行时执行上述任一项中所述基于局部敏感哈希的智能合约分类方法;所述处理器被设置为通过所述计算机程序执行上述任一项中所述基于局部敏感哈希的智能合约分类方法。
本发明提供的基于局部敏感哈希的智能合约分类方法、***及电子设备具有以下有益效果:
1、通过将多个智能合约的代码信息与交易信息构造代码特征矩阵和交易特征矩阵,并对其进行局部敏感哈希计算获得对应的代码特征局部敏感哈希矩阵和交易特征局部敏感哈希矩阵,以分别表征智能合约中代码信息和交易信息的相似度,最后将两个敏感哈希矩阵进行拼接,获得最终的智能合约局部敏感哈希矩阵,以从代码和交易信息两个方向对智能合约进行相似度对比,获得最终的智能合约分类结果,相对于使用机器学习对智能合约进行聚类的技术,本方法不需要标签数据训练模型,无需耗费人力完成数据标注工作,也减少了机器学习的分类模型进行训练时对大量训练样本的依赖。同时,本方法对新类型的智能合约适应性更强,基于机器学习的方法,还需要重新对新类型的智能合约进行重新样本学习,提炼特征。而本方法只需要根据规则计算新类型合约的局部敏感哈希值,从而发现该局部敏感哈希值不同于已有局部敏感哈希值,然后自成一类,最后根据用户查看即可对新类型的智能合约进行分类即可,也即本方法可以对已经出现的智能合约进行分类外,也可以对新出现的智能合约进行分类,分类更准确。进一步地,本方法通过局部敏感哈希的计算方法,基于矩阵的形式进行分类,即线性计算智能合约的相似度的技术,分类计算的效率更高,更适合大规模且频繁的智能合约聚类场景。另外,本方法结合了代码信息和交易信息,相对于现存的非机器学习智能合约聚类技术,使用的特征更丰富,更全面。
2、将重复的节点类型去掉,将重复相同的节点归为同一类,减少后续的计算,提高分类效率。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一实施例提供的基于局部敏感哈希的智能合约分类方法的流程图。
图2是本发明第一实施例提供的基于局部敏感哈希的智能合约分类方法中步骤S1的流程图。
图3是本发明第一实施例提供的基于局部敏感哈希的智能合约分类方法中步骤S2的流程图。
图4是本发明第一实施例提供的基于局部敏感哈希的智能合约分类方法中步骤S21的流程图。
图5是本发明第一实施例提供的基于局部敏感哈希的智能合约分类方法中步骤S3的流程图。
图6是本发明第二实施例提供的基于局部敏感哈希的智能合约分类***的模块图。
图7是本发明第二实施例提供的基于局部敏感哈希的智能合约分类***中智能合约单元的模块图。
图8是本发明第二实施例提供的基于局部敏感哈希的智能合约分类***中局部敏感哈希单元的模块图。
图9是本发明第三实施例提供的一种电子设备的模块图。
标号说明:
1、智能合约获取单元;2、特征矩阵构造单元;3、局部敏感哈希单元;4、矩阵拼接单元;5、合约分类单元;
11、语法树构建单元;12、节点遍历单元;31、随机矩阵生成;32、代码矩阵点乘单元;33、交易矩阵点乘单元;
10、存储器;20、处理器。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的″一″、″一个″及″该″意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语″和/或″是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,本发明第一实施例公开了基于局部敏感哈希的智能合约分类方法,包括以下步骤:
步骤S1:获取基于区块链的多个智能合约,提取每个智能合约中的代码信息和交易信息。
步骤S2:基于代码信息构造代码特征矩阵,基于交易信息构造交易特征矩阵。
步骤S3:对代码特征矩阵进行局部敏感哈希,获得代码特征局部敏感哈希矩阵,对交易特征矩阵进行局部敏感哈希,获得交易特征局部敏感哈希矩阵。
步骤S4:将代码特征局部敏感哈希矩阵和交易特征局部敏感哈希矩阵进行拼接,获得智能合约局部敏感哈希矩阵。及
步骤S5:基于智能合约局部敏感哈希矩阵,对每一行的向量进行分类,获得多种不同类型的智能合约。
可以理解,在步骤S1中,智能合约是一段运行在区块链上的程序,它由事件驱动,具有状态、能够保存账本上的资产。用户可以将资产交易逻辑写进智能合约,实现价值转移。交易信息指的是存储在交易里的信息,如转账金额等,代码信息指的是智能合约编程语言的功能,如条件分支,循环,转账等。
可以理解,在步骤S2中,所述代码特征矩阵表征的是在当前收集的所有智能合约中,哪种代理特征在哪一个智能合约中存在与否,以矩阵的形式表现,交易特征矩阵与代码特征矩阵同理。
可以理解,在步骤S3中,局部敏感哈希是一种大规模数据快速聚类的方法,它的基本思想是:如果两个数据点在原有的数据空间是相似的,那么数据点分别经过哈希函数转换后仍然具有高度的相似性。该步骤采用局部敏感哈希算法解决海量智能合约对比问题,也即通过局部敏感哈希算法,进行哈希函数转换后保持原有的相似性进行保留。
可以理解,在步骤S4中,将代码特征局部敏感哈希矩阵和交易特征局部敏感哈希矩阵进行拼接,以基于代码信息和交易信息相结合对智能合约进行分类,对智能合约的分类更精确,提高分类的准确度。
可以理解,在步骤S5中,智能合约局部敏感哈希矩阵中的每一行的向量代表一个智能合约的局部敏感哈希值,可基于向量的相似度对不同类型的智能合约进行准确分类。
可以理解,在步骤S5中,局部敏感哈希矩阵H′的第i行表示第i个智能合约的局部敏感哈希值,将具有相同局部敏感哈希值的智能合约(高度相似的智能合约)聚为一类。用户可以随机从各个聚类挑一个智能合约来推出该聚类里智能合约的类型。如果发现有新的局部敏感哈希值,则意味着区块链上出现新的智能合约类别。
可以理解,通过将多个智能合约的代码信息与交易信息构造代码特征矩阵和交易特征矩阵,并对其进行局部敏感哈希计算获得对应的代码特征局部敏感哈希矩阵和交易特征局部敏感哈希矩阵,以分别表征智能合约中代码信息和交易信息的相似度,最后将两个敏感哈希矩阵进行拼接,获得最终的智能合约局部敏感哈希矩阵,以从代码和交易信息两个方向对智能合约进行相似度对比,获得最终的智能合约分类结果,相对于使用机器学习对智能合约进行聚类的技术,本方法不需要标签数据训练模型,无需耗费人力完成数据标注工作,也减少了机器学习的分类模型进行训练时对大量训练样本的依赖。同时,本方法对新类型的智能合约适应性更强,基于机器学习的方法,还需要重新对新类型的智能合约进行重新样本学习,提炼特征。而本方法只需要根据规则计算新类型合约的局部敏感哈希值,从而发现该局部敏感哈希值不同于已有局部敏感哈希值,然后自成一类,最后根据用户查看即可对新类型的智能合约进行分类即可,也即本方法可以对已经出现的智能合约进行分类外,也可以对新出现的智能合约进行分类,分类更准确。进一步地,本方法通过局部敏感哈希的计算方法,基于矩阵的形式进行分类,即线性计算智能合约的相似度的技术,分类计算的效率更高,更适合大规模且频繁的智能合约聚类场景。另外,本方法结合了代码信息和交易信息,相对于现存的非机器学习智能合约聚类技术,使用的特征更丰富,更全面。
请参阅图2,上述步骤S1具体包括:
步骤S11:获取区块链的多个智能合约,将所有智能合约生成抽象语法树;及
步骤S12:遍历所述抽象语法树,解析并记录抽象语法树上各个节点的信息,分别获取对应的代码信息和交易信息。
可以理解,在步骤S11中,具体地,利用Solidity-Antlr4工具对所有智能合约生成抽象语法树,抽象语法树中具有多个节点,每个节点表示合约中的一种语法结构。
可以理解,在步骤S12中,遍历抽象语法树,解析并记录语法树中各个节点中的信息,包括表示查询合约余额操作的QueryContractBalance,表示转账操作的Transfer,表示条件语句的IfStatement等。
可以理解,交易信息也按照上述步骤S11-S12计算获得,在此不再赘述。
可以理解,步骤S11~S12仅为该实施例的一种实施方式,其实施方式并不限定于步骤S11~S12。
请参阅图3,上述步骤S2具体包括:
步骤S21:基于抽象语法树的节点及对应的代码信息,得到所有智能合约中对应的代码特征矩阵;及
步骤S22:基于抽象语法树的节点及对应的交易信息,得到所有智能合约中对应的交易特征矩阵。
可以理解,在步骤S21中,统计每一个合约具有哪些节点种类,得到0,1代码特征矩阵Mc,代码特征矩阵的大小为z×m,z表示合约的个数,m表示节点种类数,因此代码特征矩阵的第i,j个元素表示第i个智能合约是否具有第j个节点种类,若有则等于1,否则为0。
可以理解,步骤S21~S22仅为该实施例的一种实施方式,其实施方式并不限定于步骤S21~S22。
可选地,请参阅图4,作为一种实施例,上述步骤S21具体包括:
步骤S211:获取抽象语法树的所有节点,提取每一个节点的类型,去除掉重复的节点;及
步骤S212:统计剩余节点的种类,构建智能合约中对应的代码特征矩阵。
可以理解,在步骤S211中,将重复的节点类型去掉,将重复相同的节点归为同一类,减少后续的计算,提高分类效率。
请参阅图5,上述步骤S3具体包括:
步骤S31:生成一个随机矩阵,所述随机矩阵的行数等于代码特征矩阵的行数,列数为用户预设值。
步骤S32:将代码特征矩阵点乘随机矩阵,获得代码特征随机矩阵,将所述代码特征随机矩阵进行归一化处理,获得代码特征局部敏感哈希矩阵。及
步骤S33:将交易特征矩阵点乘随机矩阵,获得交易特征随机矩阵,将所述交易特征随机矩阵进行归一化处理,获得交易特征局部敏感哈希矩阵。
可以理解,在步骤S31中,生成一个m×r维的0,1随机矩阵Vc,其中m表示代码特征矩阵Mc的行数,r表示聚类的宽松程度,r越大表示越严格,反之表示越宽松。
可以理解,在步骤S32中,将代码特征矩阵Mc点乘随机矩阵Vc,得到代码特征随机矩阵Hc,其大小为z×r。调整代码特征局部敏感哈希矩阵Hc的每一个元素,若元素大于阈值t则调整为1,否则为0,得到最终的局部敏感哈希矩阵H′c,局部敏感哈希矩阵H′c第i行的向量就是第i个智能合约的代码特征局部敏感哈希值。H′c是Hc的归一化结果,归一化可以加快聚类的效率。
可以理解,步骤S31~S33仅为该实施例的一种实施方式,其实施方式并不限定于步骤S31~S33。
请参阅图6,本发明第二实施例提供基于局部敏感哈希的智能合约分类***,其采用上述第一实施例提供的基于局部敏感哈希的智能合约分类方法,其包括:
智能合约获取单元1,用于获取基于区块链的多个智能合约,提取每个智能合约中的代码信息和交易信息。
特征矩阵构造单元2,用于基于代码信息构造代码特征矩阵,基于交易信息构造交易特征矩阵。
局部敏感哈希单元3,用于对代码特征矩阵进行局部敏感哈希,获得代码特征局部敏感哈希矩阵,对交易特征矩阵进行局部敏感哈希,获得交易特征局部敏感哈希矩阵。
矩阵拼接单元4,用于将代码特征局部敏感哈希矩阵和交易特征局部敏感哈希矩阵进行拼接,获得智能合约局部敏感哈希矩阵。及
合约分类单元5,用于基于智能合约局部敏感哈希矩阵,对每一行的向量进行分类,获得多种不同类型的智能合约。
请参阅图7,所述智能合约获取单元1还包括:
语法树构建单元11,用于获取区块链的多个智能合约,将所有智能合约生成抽象语法树;及
节点遍历单元12,用于遍历所述抽象语法树,解析并记录抽象语法树上各个节点的信息,分别获取对应的代码信息和交易信息。
请参阅图8,所述局部敏感哈希单元3还包括:
随机矩阵生成单元31,用于生成一个随机矩阵,所述随机矩阵的行数等于代码特征矩阵的行数,列数为用户预设值。
代码矩阵点乘单元32,用于将代码特征矩阵点乘随机矩阵,获得代码特征随机矩阵,将所述代码特征随机矩阵进行归一化处理,获得代码特征局部敏感哈希矩阵。及
交易矩阵点乘单元33,用于将交易特征矩阵点乘随机矩阵,获得交易特征随机矩阵,将所述交易特征随机矩阵进行归一化处理,获得交易特征局部敏感哈希矩阵。
请参阅图9,本发明第三实施例提供一种电子设备,所述电子设备包括存储器10和处理器20,所述存储器10中存储有运算机程序,所述运算机程序被设置为运行时执行上述任一项基于局部敏感哈希的智能合约分类方法实施例中的步骤。所述处理器20被设置为通过所述运算机程序执行上述任一项基于局部敏感哈希的智能合约分类方法实施例中的步骤。
可选地,在本实施例中,上述电子设备可以位于运算机网络的多个网络设备中的至少一个网络设备。
本发明提供的基于局部敏感哈希的智能合约分类方法、***及电子设备具有以下有益效果:
1、通过将多个智能合约的代码信息与交易信息构造代码特征矩阵和交易特征矩阵,并对其进行局部敏感哈希计算获得对应的代码特征局部敏感哈希矩阵和交易特征局部敏感哈希矩阵,以分别表征智能合约中代码信息和交易信息的相似度,最后将两个敏感哈希矩阵进行拼接,获得最终的智能合约局部敏感哈希矩阵,以从代码和交易信息两个方向对智能合约进行相似度对比,获得最终的智能合约分类结果,相对于使用机器学习对智能合约进行聚类的技术,本方法不需要标签数据训练模型,无需耗费人力完成数据标注工作,也减少了机器学习的分类模型进行训练时对大量训练样本的依赖。同时,本方法对新类型的智能合约适应性更强,基于机器学习的方法,还需要重新对新类型的智能合约进行重新样本学习,提炼特征。而本方法只需要根据规则计算新类型合约的局部敏感哈希值,从而发现该局部敏感哈希值不同于已有局部敏感哈希值,然后自成一类,最后根据用户查看即可对新类型的智能合约进行分类即可,也即本方法可以对已经出现的智能合约进行分类外,也可以对新出现的智能合约进行分类,分类更准确。进一步地,本方法通过局部敏感哈希的计算方法,基于矩阵的形式进行分类,即线性计算智能合约的相似度的技术,分类计算的效率更高,更适合大规模且频繁的智能合约聚类场景。另外,本方法结合了代码信息和交易信息,相对于现存的非机器学习智能合约聚类技术,使用的特征更丰富,更全面。
2、将重复的节点类型去掉,将重复相同的节点归为同一类,减少后续的计算,提高分类效率。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (9)
1.基于局部敏感哈希的智能合约分类方法,其特征在于:包括以下步骤:
步骤S1:获取基于区块链的多个智能合约,提取每个智能合约中的代码信息和交易信息;
步骤S2:基于代码信息构造代码特征矩阵,基于交易信息构造交易特征矩阵;
步骤S3:对代码特征矩阵进行局部敏感哈希,获得代码特征局部敏感哈希矩阵,对交易特征矩阵进行局部敏感哈希,获得交易特征局部敏感哈希矩阵;
步骤S4:将代码特征局部敏感哈希矩阵和交易特征局部敏感哈希矩阵进行拼接,获得智能合约局部敏感哈希矩阵;及
步骤S5:基于智能合约局部敏感哈希矩阵,对每一行的向量进行分类,获得多种不同类型的智能合约。
2.根据权利要求1所述的基于局部敏感哈希的智能合约分类方法,其特征在于:上述步骤S1具体包括:
步骤S11:获取区块链的多个智能合约,将所有智能合约生成抽象语法树;及
步骤S12:遍历所述抽象语法树,解析并记录抽象语法树上各个节点的信息,分别获取对应的代码信息和交易信息。
3.根据权利要求2所述的基于局部敏感哈希的智能合约分类方法,其特征在于:上述步骤S2具体包括:
步骤S21:基于抽象语法树的节点及对应的代码信息,得到所有智能合约中对应的代码特征矩阵;及
步骤S22:基于抽象语法树的节点及对应的交易信息,得到所有智能合约中对应的交易特征矩阵。
4.根据权利要求1所述的基于局部敏感哈希的智能合约分类方法,其特征在于:上述步骤S21具体包括:
步骤S211:获取抽象语法树的所有节点,提取每一个节点的类型,去除掉重复的节点;及
步骤S212:统计剩余节点的种类,构建智能合约中对应的代码特征矩阵。
5.根据权利要求1所述的基于局部敏感哈希的智能合约分类方法,其特征在于:上述步骤S3具体包括:
步骤S31:生成一个随机矩阵,所述随机矩阵的行数等于代码特征矩阵的行数,列数为用户预设值;
步骤S32:将代码特征矩阵点乘随机矩阵,获得代码特征随机矩阵,将所述代码特征随机矩阵进行归一化处理,获得代码特征局部敏感哈希矩阵;及
步骤S33:将交易特征矩阵点乘随机矩阵,获得交易特征随机矩阵,将所述交易特征随机矩阵进行归一化处理,获得交易特征局部敏感哈希矩阵。
6.基于局部敏感哈希的智能合约分类***,其特征在于:包括:
智能合约获取单元,用于获取基于区块链的多个智能合约,提取每个智能合约中的代码信息和交易信息;
特征矩阵构造单元,用于基于代码信息构造代码特征矩阵,基于交易信息构造交易特征矩阵;
局部敏感哈希单元,用于对代码特征矩阵进行局部敏感哈希,获得代码特征局部敏感哈希矩阵,对交易特征矩阵进行局部敏感哈希,获得交易特征局部敏感哈希矩阵;
矩阵拼接单元,用于将代码特征局部敏感哈希矩阵和交易特征局部敏感哈希矩阵进行拼接,获得智能合约局部敏感哈希矩阵;及
合约分类单元,用于基于智能合约局部敏感哈希矩阵,对每一行的向量进行分类,获得多种不同类型的智能合约。
7.根据权利要求6所述的基于局部敏感哈希的智能合约分类***,其特征在于:所述智能合约获取单元还包括:
语法树构建单元,用于获取区块链的多个智能合约,将所有智能合约生成抽象语法树;及
节点遍历单元,用于遍历所述抽象语法树,解析并记录抽象语法树上各个节点的信息,分别获取对应的代码信息和交易信息。
8.根据权利要求7所述的基于局部敏感哈希的智能合约分类***,其特征在于:所述局部敏感哈希单元还包括:
随机矩阵生成单元,用于生成一个随机矩阵,所述随机矩阵的行数等于代码特征矩阵的行数,列数为用户预设值;
代码矩阵点乘单元,用于将代码特征矩阵点乘随机矩阵,获得代码特征随机矩阵,将所述代码特征随机矩阵进行归一化处理,获得代码特征局部敏感哈希矩阵;及
交易矩阵点乘单元,用于将交易特征矩阵点乘随机矩阵,获得交易特征随机矩阵,将所述交易特征随机矩阵进行归一化处理,获得交易特征局部敏感哈希矩阵。
9.一种电子设备,包括存储器和处理器,其特征在于:所述存储器中存储有计算机程序,所述计算机程序被设置为运行时执行所述权利要求1至5任一项中所述基于局部敏感哈希的智能合约分类方法;
所述处理器被设置为通过所述计算机程序执行所述权利要求1至5任一项中所述基于局部敏感哈希的智能合约分类方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110414897.2A CN112949778A (zh) | 2021-04-17 | 2021-04-17 | 基于局部敏感哈希的智能合约分类方法、***及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110414897.2A CN112949778A (zh) | 2021-04-17 | 2021-04-17 | 基于局部敏感哈希的智能合约分类方法、***及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112949778A true CN112949778A (zh) | 2021-06-11 |
Family
ID=76232938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110414897.2A Pending CN112949778A (zh) | 2021-04-17 | 2021-04-17 | 基于局部敏感哈希的智能合约分类方法、***及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112949778A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114153496A (zh) * | 2021-09-08 | 2022-03-08 | 北京天德科技有限公司 | 一种基于区块链的高速可并行代码相似度对比方法和*** |
CN117170677A (zh) * | 2023-09-01 | 2023-12-05 | 佛山市康颐福城市服务科技有限公司 | 智能合约的相似性检测方法、装置、设备和可读存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106709704A (zh) * | 2016-11-23 | 2017-05-24 | 杭州秘猿科技有限公司 | 一种基于许可链的智能合约升级方法 |
CN109445834A (zh) * | 2018-10-30 | 2019-03-08 | 北京计算机技术及应用研究所 | 基于抽象语法树的程序代码相似性快速比较方法 |
CN110288307A (zh) * | 2019-05-13 | 2019-09-27 | 西安电子科技大学 | 基于Fabric区块链的智能合约协同开发***及数据处理方法 |
CN110569033A (zh) * | 2019-09-12 | 2019-12-13 | 北京工商大学 | 一种数字化交易类智能合约基础代码生成方法 |
CN110795432A (zh) * | 2019-10-29 | 2020-02-14 | 腾讯云计算(北京)有限责任公司 | 一种特征数据的检索方法、装置及存储介质 |
CN110796546A (zh) * | 2019-10-25 | 2020-02-14 | 上海有倕信息科技有限公司 | 一种基于区块链的分布式聚类算法 |
CN111061996A (zh) * | 2019-12-09 | 2020-04-24 | 昆明理工大学 | 一种结合Word2vec词向量和LSH局部敏感哈希的推荐算法 |
CN112084520A (zh) * | 2020-09-18 | 2020-12-15 | 支付宝(杭州)信息技术有限公司 | 保护数据隐私的双方联合训练业务预测模型的方法及装置 |
CN112416912A (zh) * | 2020-10-14 | 2021-02-26 | 深圳前海微众银行股份有限公司 | 纵向联邦数据统计的去重方法、装置、终端设备及介质 |
CN112613043A (zh) * | 2020-12-30 | 2021-04-06 | 杭州趣链科技有限公司 | 一种基于智能合约调用网络的智能合约漏洞检测方法 |
-
2021
- 2021-04-17 CN CN202110414897.2A patent/CN112949778A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106709704A (zh) * | 2016-11-23 | 2017-05-24 | 杭州秘猿科技有限公司 | 一种基于许可链的智能合约升级方法 |
CN109445834A (zh) * | 2018-10-30 | 2019-03-08 | 北京计算机技术及应用研究所 | 基于抽象语法树的程序代码相似性快速比较方法 |
CN110288307A (zh) * | 2019-05-13 | 2019-09-27 | 西安电子科技大学 | 基于Fabric区块链的智能合约协同开发***及数据处理方法 |
CN110569033A (zh) * | 2019-09-12 | 2019-12-13 | 北京工商大学 | 一种数字化交易类智能合约基础代码生成方法 |
CN110796546A (zh) * | 2019-10-25 | 2020-02-14 | 上海有倕信息科技有限公司 | 一种基于区块链的分布式聚类算法 |
CN110795432A (zh) * | 2019-10-29 | 2020-02-14 | 腾讯云计算(北京)有限责任公司 | 一种特征数据的检索方法、装置及存储介质 |
CN111061996A (zh) * | 2019-12-09 | 2020-04-24 | 昆明理工大学 | 一种结合Word2vec词向量和LSH局部敏感哈希的推荐算法 |
CN112084520A (zh) * | 2020-09-18 | 2020-12-15 | 支付宝(杭州)信息技术有限公司 | 保护数据隐私的双方联合训练业务预测模型的方法及装置 |
CN112416912A (zh) * | 2020-10-14 | 2021-02-26 | 深圳前海微众银行股份有限公司 | 纵向联邦数据统计的去重方法、装置、终端设备及介质 |
CN112613043A (zh) * | 2020-12-30 | 2021-04-06 | 杭州趣链科技有限公司 | 一种基于智能合约调用网络的智能合约漏洞检测方法 |
Non-Patent Citations (2)
Title |
---|
HUAKUN LIU等: "OPRCP: approximate nearest neighbor binary search algorithm for hybrid data over WMSN blockchain", 《EURASIP JOURNAL ON WIRELESS COMMUNICATIONS AND NETWORKING》, pages 1 - 14 * |
黄步添等: "基于语义嵌入模型与交易信息的智能合约自动分类***", 《自动化学报》, vol. 43, no. 09, pages 2 - 4 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114153496A (zh) * | 2021-09-08 | 2022-03-08 | 北京天德科技有限公司 | 一种基于区块链的高速可并行代码相似度对比方法和*** |
CN114153496B (zh) * | 2021-09-08 | 2023-09-12 | 北京天德科技有限公司 | 一种基于区块链的高速可并行代码相似度对比方法和*** |
CN117170677A (zh) * | 2023-09-01 | 2023-12-05 | 佛山市康颐福城市服务科技有限公司 | 智能合约的相似性检测方法、装置、设备和可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019218475A1 (zh) | 异常行为对象的识别方法、装置、终端设备及介质 | |
US11841839B1 (en) | Preprocessing and imputing method for structural data | |
CN112711953A (zh) | 一种基于注意力机制和gcn的文本多标签分类方法和*** | |
CN111461164B (zh) | 样本数据集的扩容方法及模型的训练方法 | |
CN110737821B (zh) | 相似事件查询的方法、装置、存储介质和终端设备 | |
CN109033833B (zh) | 一种基于多特征与特征选择的恶意代码分类方法 | |
CN112949778A (zh) | 基于局部敏感哈希的智能合约分类方法、***及电子设备 | |
WO2024060684A1 (zh) | 模型训练方法、图像处理方法、设备及存储介质 | |
CN115577701A (zh) | 针对大数据安全的风险行为识别方法、装置、设备及介质 | |
Ozdemir et al. | Comparison of deep learning techniques for classification of the insects in order level with mobile software application | |
CN111898418A (zh) | 一种基于t-tiny-yolo网络的人体异常行为检测方法 | |
Gorokhovatskyi et al. | Transforming image descriptions as a set of descriptors to construct classification features | |
CN113282433B (zh) | 集群异常检测方法、装置和相关设备 | |
CN116016365B (zh) | 一种加密流量下基于数据包长度信息的网页识别方法 | |
CN112330426A (zh) | 一种产品推荐方法、装置及存储介质 | |
CN108830302B (zh) | 一种图像分类方法、训练方法、分类预测方法及相关装置 | |
CN113706207B (zh) | 基于语义解析的订单成交率分析方法、装置、设备及介质 | |
CN113259369B (zh) | 一种基于机器学习成员推断攻击的数据集认证方法及*** | |
CN113569879B (zh) | 异常识别模型的训练方法、异常账号识别方法及相关装置 | |
CN116776932A (zh) | 用户的电商行为识别方法及装置 | |
CN112989869B (zh) | 人脸质量检测模型的优化方法、装置、设备及存储介质 | |
Zhong et al. | Independent feature and label components for multi-label classification | |
Mutasim et al. | Impute Missing Values in R Language using IBK Classification Algorithm | |
Nohuddin et al. | Social network trend analysis using frequent pattern mining and self organizing maps | |
CN116188049B (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 |