一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

智能合约风险预测方法、装置、存储介质及计算机设备

2022-11-14 13:24:12 来源:中国专利 TAG:


1.本技术涉及区块链技术领域,尤其涉及一种智能合约风险预测方法、装置、存储介质及计算机设备。


背景技术:

2.区块链是一种分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,它本质上是一个去中心化的数据库,具有去中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明等特点。这些特点保证了区块链的“诚实”与“透明”,为区块链创造信任奠定基础。其中,智能合约作为一种特殊协议,在区块链内制定合约时使用,当中内含了代码函数,可以实现与其他合约进行交互、做决策、存储资料等功能。智能合约主要提供验证及执行合约内所订立的条件,允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。
3.然而智能合约在提供极大的便利的同时,也存在一些潜在安全隐患。例如,智能合约的匿名性为诈骗者创造了新的机会;并且,由于智能合约不可修改和不可回退的性质,诈骗合约一旦启动将无法回退。因此,亟需研究一种对智能合约的风险进行预测的方法,以此来提高区块链的安全性与可信任度。


技术实现要素:

4.本技术的目的旨在至少能解决上述的技术缺陷之一,特别是现有技术中缺少一种对智能合约的风险进行预测的方法,以此来提高区块链的安全性与可信任度的技术缺陷。
5.本技术提供了一种智能合约风险预测方法,所述方法包括:
6.获取若干智能合约,其中,若干智能合约中包含有恶意合约;
7.确定每一智能合约与其他智能合约之间的相似度距离,并根据所述相似度距离对各个智能合约进行聚类,得到多个簇;
8.从多个簇中筛选出包含恶意合约的簇作为目标簇,并将所述目标簇中除所述恶意合约外的其他智能合约预测为风险合约。
9.可选地,所述方法还包括:
10.根据所述目标簇中的恶意合约与风险合约之间的相似度距离,对所述目标簇中的风险合约的风险等级进行划分。
11.可选地,所述确定每一智能合约与其他智能合约之间的相似度距离,包括:
12.对每一智能合约进行多维度的特征提取;
13.根据每一智能合约在每一维度提取的特征,计算每一智能合约与其他智能合约在不同维度上的合约相似度;
14.根据每一智能合约与其他智能合约在不同维度上的合约相似度,确定每一智能合约与其他智能合约之间的相似度距离。
15.可选地,所述多维度的特征包括代码层面特征、内部结构特征和交易关系特征;
16.所述对每一智能合约进行多维度的特征提取,包括:
17.对每一智能合约的操作码频率特征以及字节码相似性特征进行提取,得到每一智能合约的代码层面特征;
18.根据每一智能合约的操作码构建每一智能合约的控制流图,并通过每一智能合约的控制流图提取每一智能合约的内部结构特征;
19.根据每一智能合约的交易信息提取每一智能合约的交易关系特征。
20.可选地,所述根据每一智能合约在每一维度提取的特征,计算每一智能合约与其他智能合约在不同维度上的合约相似度,包括:
21.根据每一智能合约的操作码频率特征以及字节码相似性特征,计算每一智能合约与其他智能合约在代码层面的操作码频率分布相似度以及字节码相似度;
22.根据每一智能合约的内部结构特征,计算每一智能合约与其他智能合约在结构层面的内部结构相似度;
23.根据每一智能合约的交易关系特征,计算每一智能合约与其他智能合约在交易层面的交易相似度。
24.可选地,所述根据每一智能合约与其他智能合约在不同维度上的合约相似度,确定每一智能合约与其他智能合约之间的相似度距离,包括:
25.根据每一智能合约与其他智能合约在代码层面的操作码频率分布相似度以及字节码相似度、在结构层面的内部结构相似度,以及在交易层面的交易相似度,计算每一智能合约与其他智能合约之间的综合相似度,并将所述综合相似度作为每一智能合约与其他智能合约之间的相似度距离。
26.可选地,所述根据所述相似度距离对各个智能合约进行聚类,包括:
27.采用dbscan算法,并将所述相似度距离作为所述dbscan算法的聚类指标,对各个智能合约进行聚类。
28.本技术还提供了一种智能合约风险预测装置,包括:
29.获取模块,用于获取若干智能合约,其中,若干智能合约中包含有恶意合约;
30.聚类模块,用于确定每一智能合约与其他智能合约之间的相似度距离,并根据所述相似度距离对各个智能合约进行聚类,得到多个簇;
31.风险预测模块,用于从多个簇中筛选出包含恶意合约的簇作为目标簇,并将所述目标簇中除所述恶意合约外的其他智能合约预测为风险合约。
32.本技术还提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述智能合约风险预测方法的步骤。
33.本技术还提供了一种计算机设备,包括:一个或多个处理器,以及存储器;
34.所述存储器中存储有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,执行如上述实施例中任一项所述智能合约风险预测方法的步骤。
35.从以上技术方案可以看出,本技术实施例具有以下优点:
36.本技术提供的智能合约风险预测方法、装置、存储介质及计算机设备,在对智能合约进行风险预测时,可以先获取若干智能合约,其中包括恶意合约,接着再确定每一智能合约与其他智能合约之间的相似度距离,这样便可以通过相似度距离来将各个智能合约进行
聚类,当得到多个簇后,可以从多个簇中筛选出包含恶意合约的簇作为目标簇,由于每一簇中各个智能合约之间的相似度较高,因此,当目标簇中包含恶意合约时,即可界定该目标簇中除恶意合约外的其他智能合约为风险合约,从而快速预测大量智能合约的风险情况,有效提高区块链的安全性与可信任度。
附图说明
37.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
38.图1为本技术实施例提供的一种智能合约风险预测方法的流程示意图;
39.图2为本技术实施例提供的一种智能合约风险预测装置的结构示意图;
40.图3为本技术实施例提供的一种计算机设备的内部结构示意图。
具体实施方式
41.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
42.现有技术中,智能合约在提供极大的便利的同时,也存在一些潜在安全隐患。例如,智能合约的匿名性为诈骗者创造了新的机会;并且,由于智能合约不可修改和不可回退的性质,诈骗合约一旦启动将无法回退。因此,亟需研究一种对智能合约的风险进行预测的方法,以此来提高区块链的安全性与可信任度,具体参见下文:
43.在一个实施例中,如图1所示,图1为本技术实施例提供的一种智能合约风险预测方法的流程示意图;本技术提供了一种智能合约风险预测方法,所述方法可以包括:
44.s110:获取若干智能合约。
45.本步骤中,在对智能合约是否存在恶意风险进行预测时,本技术可以先获取若干智能合约,这样便可以同时对若干智能合约是否存在恶意风险进行预测,从而有效提高预测效率。
46.其中,本技术的若干智能合约中包含有恶意合约,该部分恶意合约可以作为后续检测以及分级预警的参照。而本技术中智能合约的获取方式可以通过相关的区块链数据集网站进行收集,在此不做限制。
47.s120:确定每一智能合约与其他智能合约之间的相似度距离,并根据相似度距离对各个智能合约进行聚类,得到多个簇。
48.本步骤中,通过s110获取若干智能合约后,可以根据每一智能合约与其他智能合约之间的相似度距离,来对各个智能合约进行聚类,从而得到多个簇。
49.具体地,本技术在确定每一智能合约与其他智能合约之间的相似度距离时,可以使用智能合约的字节码和操作码来提取多维度特征,以此来确定每两个智能合约在不同维度特征下的相似度,最终再确定每两个智能合约之间的综合相似度,由此得到每一智能合
约与其他智能合约之间的相似度距离。
50.可以理解的是,由于大部分智能合约是匿名和无源码提供的,仅有小部分智能合约具有源代码,因此,本技术使用智能合约的字节码和操作码来提取智能合约多个维度特征,不但能够提高数据收集的广泛程度,进一步提高恶意合约的检测精度,还能够克服现有技术中依赖于源代码提供的语义信息进行特征提取导致智能合约相似度判断时存在的片面性问题。
51.进一步地,本技术中智能合约的字节码可以直接获取得到,而智能合约的操作码则可以通过对字节码进行反编译操作进行获取,由此得到智能合约的字节码和操作码。接着,本技术可以提取智能合约的字节码和操作码在不同维度下的特征,如代码层面的特征、内部结构层面的特征、交易层面的特征等,以此来全面化展示智能合约的功能性质。
52.当本技术得到每一智能合约与其他智能合约之间的相似度距离后,便可以根据每一智能合约与其他智能合约之间的相似度距离,对各个智能合约进行聚类,聚类后得到多个簇,每个簇中包含多个相似度距离相近的智能合约。
53.可以理解的是,聚类的思想就是把属性相似的样本归到一类。对于每一个智能合约,本技术可以根据每一智能合约与其他智能合约之间的相似度距离,将其归到一个特定的类,同时每个类中的所有智能合约在某种程度上有着共性,比如空间位置接近、功能特征相似等特性。常用的聚类算法可以包括k-means(k均值)聚类、基于密度的聚类方法(dbscan)、用高斯混合模型(gmm)的最大期望(em)聚类等,本技术可以使用任意聚类算法对各个智能合约进行聚类,在此不做限制。
54.s130:从多个簇中筛选出包含恶意合约的簇作为目标簇,并将目标簇中除恶意合约外的其他智能合约预测为风险合约。
55.本步骤中,通过s120对各个智能合约进行聚类,得到多个簇后,可以从多个簇中筛选出包含恶意合约的簇作为目标簇,并预测目标簇中除恶意合约外的其他智能合约为风险合约。
56.具体地,由于对各个智能合约进行聚类后,每个类中的所有智能合约在某种程度上有着共性,如功能特征相似等特性。当某一个或多个簇中包含恶意合约,则表示该一个或多个簇中除恶意合约外的其他智能合约也存在恶意合约的风险。因此,本技术可以将包含恶意合约的簇作为目标簇,并将目标簇中除恶意合约外的其他智能合约预测为风险合约,这样便可以在短时间内对大量的智能合约进行风险预测,有利于提高预测效率。
57.上述实施例中,在对智能合约进行风险预测时,可以先获取若干智能合约,其中包括恶意合约,接着再确定每一智能合约与其他智能合约之间的相似度距离,这样便可以通过相似度距离来将各个智能合约进行聚类,当得到多个簇后,可以从多个簇中筛选出包含恶意合约的簇作为目标簇,由于每一簇中各个智能合约之间的相似度较高,因此,当目标簇中包含恶意合约时,即可界定该目标簇中除恶意合约外的其他智能合约为风险合约,从而快速预测大量智能合约的风险情况,有效提高区块链的安全性与可信任度。
58.在一个实施例中,所述方法还可以包括:
59.s140:根据所述目标簇中的恶意合约与风险合约之间的相似度距离,对所述目标簇中的风险合约的风险等级进行划分。
60.本实施例中,当得到目标簇以及目标簇中的风险合约后,本技术可以根据目标簇
中的恶意合约与风险合约之间的相似度距离,来进一步对目标簇中的风险合约的风险等级进行划分,并根据不同的风险等级进行分级预警。
61.例如,某目标簇c中含有已标记的恶意合约a,则该目标簇中除恶意合约外的其他智能合约都将被标记为潜在恶意合约,即风险合约。更进一步地,本技术可以以恶意合约a为中心,考虑目标簇c中各风险合约与恶意合约a的相似度距离,相似度距离越近,说明风险合约的恶意风险可能性越大,基于此,本技术可以根据目标簇中的恶意合约与风险合约之间的相似度距离来对风险合约的风险等级进行划分,如划分目标簇中的风险合约为一级风险合约、二级风险合约,...,l级风险合约,具体的l值可以根据实际需求进行确定,在此不做限制。
62.在一个实施例中,s120中确定每一智能合约与其他智能合约之间的相似度距离,可以包括:
63.s121:对每一智能合约进行多维度的特征提取。
64.s122:根据每一智能合约在每一维度提取的特征,计算每一智能合约与其他智能合约在不同维度上的合约相似度。
65.s123:根据每一智能合约与其他智能合约在不同维度上的合约相似度,确定每一智能合约与其他智能合约之间的相似度距离。
66.本实施例中,在确定每一智能合约与其他智能合约之间的相似度距离时,可以先对每一智能合约进行多维度的特征提取,接着可以计算每一智能合约与其他智能合约在不同维度上的合约相似度,最后再根据每一智能合约与其他智能合约在不同维度上的合约相似度来确定每一智能合约与其他智能合约之间的相似度距离。
67.其中,对每一智能合约进行多维度特征提取时,可以使用使用智能合约的字节码和操作码进行代码层面或内部结构层面的特征提取,也可以使用智能合约的交易信息进行交易层面的特征提取,具体在此不做限制。
68.当提取到智能合约在不同维度的特征后,本技术可以计算每两个智能合约在不同维度上的合约相似度,接着再根据每两个智能合约在不同维度上的合约相似度,来计算每两个智能合约的综合相似度,并将该综合相似度作为相似度距离,以此类推,便可以得到每一智能合约与其他智能合约之间的相似度距离。
69.在一个实施例中,所述多维度的特征可以包括代码层面特征、内部结构特征和交易关系特征。
70.s121中对每一智能合约进行多维度的特征提取,可以包括:
71.s1211:对每一智能合约的操作码频率特征以及字节码相似性特征进行提取,得到每一智能合约的代码层面特征。
72.s1212:根据每一智能合约的操作码构建每一智能合约的控制流图,并通过每一智能合约的控制流图提取每一智能合约的内部结构特征。
73.s1213:根据每一智能合约的交易信息提取每一智能合约的交易关系特征。
74.本实施例中,在对每一智能合约进行多维度的特征提取时,可以提取代码层面特征、内部结构特征以及交易关系特征,以此来对两个智能合约之间进行全面的特征比对。
75.具体地,在对智能合约的代码层面特征进行提取时,本技术可以分别提取智能合约的操作码频率特征以及字节码相似性特征。其中,操作码频率特征的提取可以通过智能
合约中各操作码的出现频率进行确定,例如,检索数据发现某一智能合约中出现d种操作码,则操作码频率特征将会是一个d维的向量,向量中每一个分量可以是范围在[0,1]的小数,指示对应操作码出现的频率。
[0076]
而字节码相似性特征则可以使用一种非加密的ssdeep哈希函数进行处理,该哈希函数可将变长的输入(即智能合约的字节码)映射成一致的定长哈希值输出,由于其输出并不具备随机性,故而该映射过程将不会影响字节码的相似性衡量,亦即,如若两个字节码有种高度相似的结构,经过ssdeep哈希函数所得哈希值结果将也存在高度相似性。
[0077]
接着,在对智能合约的内部结构特征进行提取时,本技术可以根据智能合约的操作码来构建相应的控制流图,并通过该控制流图来提取智能合约的内部结构特征。具体地,智能合约中存在着各种调用关系可以揭示其内部结构上的特征,为了提取这一特征,本技术可以根据智能合约的操作码来构建控制流图,具体操作如下:
[0078]
智能合约在执行过程中使得其状态改变的语句在操作码中都将体现为跳转操作码,下表列出了控制流相关的操作码:
[0079][0080]
表1为智能合约控制流相关的操作码
[0081]
基于表1中的操作码,本技术可以通过切片操作将操作码划分为一个个基本块,其中,基本块指的是一段能够完成一个基本功能的指令集合。将操作码划分为基本块时可以使用一定的切片标准,如标准a:对于改变控制流的操作,即表1中列出位置为末尾的操作码指令,将这些指令作为当前基本块的最后一条指令;标准b:对于跳转目标位置标记指令如jumpdest或程序中首个操作码,说明需要构建新的基本块,将其作为基本块的开头;标准c:表1中未提到的操作码直接加入当前基本块。
[0082]
通过上述切片标准,本技术可以以控制流基本块作为顶点,有向边指示基本块间执行路径,构造出一个有向图g=(n,e),n为基本块(顶点)集合,e为指代函数调用执行路径关系的边集合。在此基础上,本技术可以通过实施模拟执行以追踪控制流并分析指令间的依赖关系,生成需要的有向图;其中,模拟执行指的是一种动态符号执行,其将使用符号值作为输入象征性执行虚拟机的操作。
[0083]
经过上述步骤后,智能合约将被转化为一个图结构,下面将使用图嵌入方法提取图的特征向量。本技术可以采用graph2vec算法,该算法将自然语言处理的skip-gram模型引入图谱中,基于sikp-gram所提出的相似上下文中的单词往往具有相似含义因而具有相似向量表示的核心思想,将有根子图看作词,将整张图看做句子或者段落。具体的特征向量提取过程如下:
[0084]
首先,在提取有根子图阶段,可以采取getwlsubgraph算法:输入图g、子图根节点n、以及待提取子图的邻居阶数d,该算法输出节点n附近度为d的有根子图。经过上述算法后可以将有向图g转换为子图序列集合:c(g)={sg1,sg2,

,sgn}。
[0085]
接下来对于图嵌入映射函数:f:g-》r
|v|
×d,本技术可以采用skip-gram模型,给定第i个目标节点的二阶交易子图gi,考虑通过getwlsubgraph算法得到其表示子图序列集合,序列定长为l,sgj为表示子图序列中的第j个表示子图,则sgj出现在图gi的概率为:
[0086][0087]
故而对于给定子图sgj,本技术可以通过优化映射函数f,最大化下述似然函数:
[0088][0089]
接着本技术可以采用随机梯度下降法对上述似然函数进行优化,通过上述算法迭代,最终得到智能合约的内部结构特征向量映射函数。
[0090]
进一步地,在对智能合约的交易关系特征进行提取时,本技术可以从智能合约账户的交易记录中提取多个交易关系特征,如下表所示:
[0091]
[0092][0093]
表2为智能合约中提取的交易关系特征
[0094]
由表2可知,本技术可以从智能合约账户的交易记录中提取13个交易关系特征,而本层次特征提取结果将是一个11维的向量,其中的差异向量v1和v2将不纳入特征中,采用后面统计量作为代替以达到降维的目的。提取后的交易关系特征集合为:
[0095]ftran
(c)=(bal,n_max,n_inv,n_pay,dcm,dcsd,dcs,dam,dasd,dam,pr)
[0096]
在一个实施例中,s122中根据每一智能合约在每一维度提取的特征,计算每一智能合约与其他智能合约在不同维度上的合约相似度,可以包括:
[0097]
s1221:根据每一智能合约的操作码频率特征以及字节码相似性特征,计算每一智能合约与其他智能合约在代码层面的操作码频率分布相似度以及字节码相似度。
[0098]
s1222:根据每一智能合约的内部结构特征,计算每一智能合约与其他智能合约在结构层面的内部结构相似度。
[0099]
s1223:根据每一智能合约的交易关系特征,计算每一智能合约与其他智能合约在交易层面的交易相似度。
[0100]
本实施例中,当得到每一智能合约的操作码频率特征以及字节码相似性特征后,
本技术可以计算出每一智能合约的操作码频率分布相似度以及字节码相似度。具体地,操作码频率分布相似度的计算公式如下:
[0101]sop
(c1,c2)=mean(abs(p
1-p2))
[0102]
其中,c1、c2分别指代两个智能合约,p1、p2指代智能合约操作码对应频率特征向量。
[0103]
字节码相似度的计算可以通过哈希函数处理后的哈希值进行计算。本技术可以采取三个距离度量莱文斯坦距离、jaccard相似指数、骰子系数的平均值衡量相似性,记为两个智能合约的哈希值。可以理解的是,莱文斯坦距离是编辑距离的一种,其允许的编辑操作包括将一个字符替换成另一个字符、插入一个字符、删除一个字符的前提下,两个字串之间由一个转成另一个所需的最少编辑操作次数,记为l(h1,h2)。
[0104]
jaccard相似指数可以用于衡量两个集合的相似性,此处两个集合指的是两个智能合约的哈希值,该度量定义如下:
[0105][0106]
骰子系数可以用于衡量两个样本相似性,该度量定义如下:
[0107][0108]
综合上述三个距离度量的相似性,本技术的字节码相似度定义如下:
[0109][0110]
进一步地,两个智能合约在结构层面的内部结构相似度可以利用两个特征向量的欧式距离进行度量,做出定义如下:
[0111]sstruct
(c1,c2)=euclid_dist(f(c1)-f(c2))
[0112]
而两个智能合约在交易层面的交易相似度可以利用两个特征向量的欧式距离进行度量,做出定义如下:
[0113]sstruct
(c1,c2)=euclid_dist(f(c1)-f(c2))
[0114]
在一个实施例中,s123中根据每一智能合约与其他智能合约在不同维度上的合约相似度,确定每一智能合约与其他智能合约之间的相似度距离,可以包括:
[0115]
根据每一智能合约与其他智能合约在代码层面的操作码频率分布相似度以及字节码相似度、在结构层面的内部结构相似度,以及在交易层面的交易相似度,计算每一智能合约与其他智能合约之间的综合相似度,并将所述综合相似度作为每一智能合约与其他智能合约之间的相似度距离。
[0116]
本实施例中,在计算每一智能合约与其他智能合约之间的相似度距离时,本技术可以综合上述特征提取过程以及最后对特征的相似度量化处理,并提出智能合约的综合相似度度量,具体度量方式如下:
[0117]
s(c1,c2)=α
·sbyte
β
·sop
γ
·sstruc
θ
·stran
[0118]
α β γ θ=1
[0119]
在一个实施例中,s120中根据所述相似度距离对各个智能合约进行聚类,可以包括:
[0120]
采用dbscan算法,并将所述相似度距离作为所述dbscan算法的聚类指标,对各个智能合约进行聚类。
[0121]
本实施例中,可以采用dbscan算法,对各个智能合约进行聚类。dbscan算法术语解释如下:
[0122]
ε邻域:
[0123]nε
(x)={y∈x|d(x,y)《ε}
[0124]
其中,x为集合x中的某个点,y为集合x中的其他点。
[0125]
密度:
[0126][0127]
核心点:设x∈x,若ρ(x)≥m,则称x为x的核心点,xc为x中核心点构成的集合,x
nc
为x中非核心点构成的集合。
[0128]
边界点:若x∈x
nc
,且x落在某个核心点的ε邻域,则称x为x的一个边界点,x
bd
为x中边界点构成的集合。
[0129]
噪声点:x∈x,且
[0130]
本技术的具体算法流程如下:
[0131]
当获取到智能合约总特征向量后,每个智能合约将可以由一个高维向量表示。首先可以标记所有智能合约为unvisited。当有标记对象时,随机选取一个unvisited智能合约p,将智能合约p标记为visited,考虑p的ε邻域,若其中至少有m个智能合约,则创建新的簇c,p加入c中;考虑p的ε邻域中的每个unvisited点p’,将其标记为visited,若其ε邻域有m个智能合约,则将这些对象都添加到n,判断p’是否属于某个簇,若不属于任何簇,则将p’添加到c;若p的ε邻域中没有m个智能合约则标记其为噪声,由此得到多个簇。
[0132]
下面对本技术实施例提供的智能合约风险预测装置进行描述,下文描述的智能合约风险预测装置与上文描述的智能合约风险预测方法可相互对应参照。
[0133]
在一个实施例中,如图2所示,图2为本技术实施例提供的一种智能合约风险预测装置的结构示意图;本技术还提供了一种智能合约风险预测装置,可以包括获取模块210、聚类模块220、风险预测模块230,具体包括如下:
[0134]
获取模块210,用于获取若干智能合约,其中,若干智能合约中包含有恶意合约。
[0135]
聚类模块220,用于确定每一智能合约与其他智能合约之间的相似度距离,并根据所述相似度距离对各个智能合约进行聚类,得到多个簇。
[0136]
风险预测模块230,用于从多个簇中筛选出包含恶意合约的簇作为目标簇,并将所述目标簇中除所述恶意合约外的其他智能合约预测为风险合约。
[0137]
上述实施例中,在对智能合约进行风险预测时,可以先获取若干智能合约,其中包括恶意合约,接着再确定每一智能合约与其他智能合约之间的相似度距离,这样便可以通过相似度距离来将各个智能合约进行聚类,当得到多个簇后,可以从多个簇中筛选出包含恶意合约的簇作为目标簇,由于每一簇中各个智能合约之间的相似度较高,因此,当目标簇中包含恶意合约时,即可界定该目标簇中除恶意合约外的其他智能合约为风险合约,从而快速预测大量智能合约的风险情况,有效提高区块链的安全性与可信任度。
[0138]
在一个实施例中,本技术还提供了一种存储介质,所述存储介质中存储有计算机
可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述智能合约风险预测方法的步骤。
[0139]
在一个实施例中,本技术还提供了一种计算机设备,包括:一个或多个处理器,以及存储器。
[0140]
所述存储器中存储有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,执行如上述实施例中任一项所述智能合约风险预测方法的步骤。
[0141]
示意性地,如图3所示,图3为本技术实施例提供的一种计算机设备的内部结构示意图,该计算机设备300可以被提供为一服务器。参照图3,计算机设备300包括处理组件302,其进一步包括一个或多个处理器,以及由存储器301所代表的存储器资源,用于存储可由处理组件302的执行的指令,例如应用程序。存储器301中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件302被配置为执行指令,以执行上述任意实施例的智能合约风险预测方法。
[0142]
计算机设备300还可以包括一个电源组件303被配置为执行计算机设备300的电源管理,一个有线或无线网络接口304被配置为将计算机设备300连接到网络,和一个输入输出(i/o)接口305。计算机设备300可以操作基于存储在存储器301的操作系统,例如windows server tm、mac os xtm、unix tm、linux tm、free bsdtm或类似。
[0143]
本领域技术人员可以理解,图3中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0144]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0145]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
[0146]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献