基于扩展哈希和KNN的区块链应用流量识别方法及系统

allin2023-04-12  53


基于扩展哈希和knn的区块链应用流量识别方法及系统
技术领域
1.本发明涉及区块链技术领域,尤其涉及基于扩展哈希和knn的区块链应用流量识别方法及系统。


背景技术:

2.区块链技术作为一种新兴技术,其核心是去中心化,同时具有匿名化、数据不可篡改、集体维护等特点,具有广阔的发展前景,尤其是有助于解决当前各领域面临的信息安全、效率较低、成本高昂等问题;随着区块链技术的发展,其在各行各业中有了越来越广泛的部署,推出了越来越丰富的区块链应用产品。但是由于区块链技术具有匿名化和去中心化的特点,其容易成为不法活动的交易平台,因此,需要对现网流量中的区块链应用进行分类识别,正确区分合法区块链应用和非法区块链应用,以加强对区块链应用市场的监管;传统的流量识别技术主要运用于中心化对等网络以及去中心化p2p网络的流量识别,具体有基于支持向量机的流量识别方法、基于贝叶斯算法的流量识别方法和基于k临近算法的流量识别方法,但是基于支持向量机的流量识别方法并不适用与具有较多种类的区块链流量识别,基于贝叶斯算法的流量识别方法在处理特征关联性比较强的数据时会产生较大误差,而基于k临近算法的流量识别方法虽然在分类识别场景下具有较强的识别能力,但对于内存要求较高,识别较慢。


技术实现要素:

3.为了解决上述技术问题,本发明的目的是提供基于扩展哈希和knn的区块链应用流量识别方法及系统,能够在保证区块链应用流量数据识别准确率的同时提高流量数据的识别效率。
4.本发明所采用的第一技术方案是:基于扩展哈希和knn的区块链应用流量识别方法,包括以下步骤:
5.获取数据集流量样本进行特征提取处理和数据转换处理,得到数据集ascii码;
6.根据数据集ascii码,构建满二叉树;
7.通过满二叉树对数据集ascii码进行转换处理,得到数据集扩展哈希值;
8.根据数据集扩展哈希值对初步的knn分类模型进行训练,得到训练完成的knn分类模型;
9.基于训练完成的knn分类模型对待测流量数据样本进行分类识别,得到流量分类识别结果。
10.进一步,所述获取数据集流量样本进行特征提取处理和数据转换处理,得到数据集ascii码这一步骤,其具体包括:
11.采集流量数据,选取数据长度大于预设长度的流量数据,得到数据集流量样本;
12.选取一定数量的数据集流量样本进行赋予标签处理,以赋予标签的流量样本作为训练集流量样本,以未赋予标签的流量样本作为测试集流量样本;
13.对训练集流量样本和测试集流量样本进行特征提取处理,得到训练集数据特征和测试集数据特征;
14.对训练集数据特征和测试集数据特征进行统一进制和相加处理,得到训练集ascii码和测试集ascii码。
15.进一步,所述根据数据集ascii码,构建满二叉树这一步骤,其具体包括:
16.设定满二叉树的高度和满二叉树的循环层;
17.合并训练集ascii码作为循环层的节点;
18.对循环层的节点进行取平均值处理,得到节点的根植;
19.将节点的根植与训练集ascii码进行判断,并根据判断结果构建下一循环层的节点;
20.根据循环条件,对循环层的层数和循环层的节点进行判断,得到判断结果;
21.判断结果满足循环条件,循环取平均值步骤和构建节点步骤,直至判断结果不满足循环条件,输出满二叉树。
22.进一步,所述将节点的根植与训练集ascii码进行判断,并根据判断结果构建下一循环层的节点这一步骤,其具体包括:
23.判断到循环层的节点内的训练集ascii码大于节点的根植,构建循环层的节点的左树枝;
24.判断到循环层的节点内的训练集ascii码小于或等于节点的根植,构建循环层的节点的右树枝;
25.组合循环层节点的左树枝和循环层节点的右树枝,构建下一循环层的节点。
26.进一步,所述通过满二叉树对数据集ascii码进行转换处理,得到数据集扩展哈希值这一步骤,其具体包括:
27.根据测试集数据特征选取对应特征的满二叉树;
28.根据满二叉树的高度,设定扩展哈希值的位宽;
29.对下一循环层的节点左树枝内的训练集ascii码取平均计算,构建下一节点的根植;
30.根据节点的根植,对训练集ascii码和测试集ascii码进行判断与循环处理,得到训练集扩展哈希值和测试集扩展哈希值。
31.进一步,所述根据节点的根植,对训练集ascii码和测试集ascii码进行判断与循环处理,得到训练集扩展哈希值和测试集扩展哈希值这一步骤,其具体包括:
32.根据节点的根植,分别对训练集ascii码和测试集ascii码进行判断;
33.判断到ascii码大于对应层节点的根植,设置扩展哈希值的第i位宽为“1”;
34.判断到ascii码小于或等于对应层节点的根植,设置扩展哈希值的第i位宽为“0”;
35.每完成一次判断步骤,令i=i+1;
36.判断到i小于满二叉树的高度时,循环对ascii码的判断步骤;
37.判断到i等于满二叉树的高度时,终止ascii码的判断步骤,输出训练集扩展哈希值和测试集扩展哈希值。
38.进一步,所述根据数据集扩展哈希值对初步的knn分类模型进行训练,得到训练完成的knn分类模型这一步骤,其具体包括:
39.将训练集数据特征作为knn分类模型维度,不同训练集流量样本作为knn分类模型维度的坐标点,训练集扩展哈希值作为knn分类模型维度的坐标值,构建初步的knn分类模型;
40.对初步的knn分类模型维度的坐标点个数进行开方计算与取整处理,得到k值;
41.根据训练集扩展哈希值构建流量样本点;
42.通过异或运算计算流量样本点与初步的knn分类模型维度的坐标点之间的距离,得到距离值;
43.根据距离值与流量样本标签,选取距离值最小时且出现最高频率的流量样本标签对应的流量样本点,作为识别结果;
44.将对比结果与实际流量属性标签进行判断识别,并计算识别准确率;
45.选取识别准确率最高时的k值作为训练结果,得到训练完成的knn分类模型。
46.进一步,还包括测试步骤,其具体包括:
47.对测试集扩展哈希值进行赋予标签处理,得到带标签的扩展哈希值并作为测试集流量样本点;
48.将测试集流量样本点输入训练完成的knn分类模型进行测试,得到测试结果。
49.本发明所采用的第二技术方案是:基于扩展哈希和knn的区块链应用流量识别系统,包括:
50.获取模块,用于获取数据集流量样本进行特征提取处理和数据转换处理,得到数据集ascii码;
51.构建模块,用于根据数据集ascii码,构建满二叉树;
52.转换模块,用于通过满二叉树对数据集ascii码进行转换处理,得到数据集扩展哈希值;
53.训练模块,用于根据数据集扩展哈希值对初步的knn分类模型进行训练,得到训练完成的knn分类模型;
54.识别模块,基于训练完成的knn分类模型对待测流量数据样本进行分类识别,得到流量分类识别结果。
55.本发明方法及系统的有益效果是:本发明通过采集用户使用区块链应用的流量数据并构建流量数据的ascii码值,可以对区块链应用流量进行有效的识别,再根据流量数据的ascii码值进行转换构建数据的二进制扩展哈希值,可以降低数据的空间大小并保留大部分的流量数据特征信息,通过构建knn分类模型进行流量数据的识别,可以在保证最终的识别准确率的同时提高流量数据识别的效率。
附图说明
56.图1是本发明基于扩展哈希和knn的区块链应用流量识别方法的步骤流程图;
57.图2是本发明基于扩展哈希和knn的区块链应用流量识别系统的结构框图;
58.图3是本发明通过ascii码值构建满二叉树的结构示意图;
59.图4是本发明通过knn分类模型进行流量识别的结果示意图。
具体实施方式
60.下面结合附图和具体实施例对本发明做进一步的详细说明。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
61.参照图1,本发明提供了基于扩展哈希和knn的区块链应用流量识别方法,该方法包括以下步骤:
62.s1、获取数据集流量样本进行特征提取处理和数据转换处理,得到数据集ascii码;
63.s11、采集流量数据,选取数据长度大于预设长度的流量数据,得到数据集流量样本;
64.s12、选取一定数量的数据集流量样本进行赋予标签处理,以赋予标签的流量样本作为训练集流量样本,以未赋予标签的流量样本作为测试集流量样本;
65.具体地,选取aaveprotocol、livepper、opensea、pegaxy等9种dapp作为待分类的区块链应用,以9种区块链应用流量和非区块链应用普通流量共10种类型作为分类标准,进行分类识别,分别单独使用9中dapp中的一种,收集使用过程中产生的流量数据和不使用dapp正常访问网络,收集使用过程中产生的流量数据,去除流量数据中长度小于1000的数据,剩余的流量样本为数据集流量样本,在10种数据集流量样本中,每种随机选取20条,共200条流量样本,标记其属于哪一个dapp的流量作为其流量属性标签,作为训练集流量样本,其余数据集流量样本作为测试集流量样本,进行后续识别测试。
66.s13、对训练集流量样本和测试集流量样本进行特征提取处理,得到训练集数据特征和测试集数据特征;
67.具体地,对于训练集流量样本和测试集流量样本中每一条流量样本,分别提取其物理层、数据链路层、网络层以及传输层中包含的特征信息,最终提取源端口、目的端口、源ip、目的ip、源mac、目的mac等18项流量特征信息,保留训练集流量样本属性标签。
68.s14、对训练集数据特征和测试集数据特征进行统一进制和相加处理,得到训练集ascii码和测试集ascii码。
69.具体地,对于训练集流量样本和测试集流量样本中每一条流量样本提取的18项流量特征信息,将其转换为ascii码值,对于每一条流量的每一项流量特征信息,按照ascii码值将其从字符转换为十进制ascii码值并对十进制ascii码值进行相加,获得训练集ascii码和测试集ascii码。
70.s2、根据数据集ascii码,构建满二叉树;
71.s21、设定满二叉树的高度和满二叉树的循环层;
72.s22、合并训练集ascii码作为循环层的节点;
73.s23、对循环层的节点进行取平均值处理,得到节点的根植;
74.s24、将节点的根植与训练集ascii码进行判断,并根据判断结果构建下一循环层的节点;
75.具体地,设定满二叉树高度h=4,对于每一项流量特征,设定初始循环层n=1,初始节点为200条训练集流量该项特征的ascii码组成的集合,对于第n层中的每一个节点,计算该节点包含ascii码的平均值,作为该节点的根值root。
76.s231、判断到循环层的节点内的训练集ascii码大于节点的根植,构建循环层的节点的左树枝;
77.s232、判断到循环层的节点内的训练集ascii码小于或等于节点的根植,构建循环层的节点的右树枝;
78.s233、组合循环层节点的左树枝和循环层节点的右树枝,构建下一循环层的节点。
79.具体地,对于第n层中的每一个节点,该节点包含的ascii码大于其根值的组成该节点的左树枝lchild,小于等于其根值的组成该节点右树枝rchild,第n层所有节点的左右树枝组成第n+1层的所有节点。
80.s25、根据循环条件,对循环层的层数和循环层的节点进行判断,得到判断结果;
81.s26、判断结果满足循环条件,循环取平均值步骤和构建节点步骤,直至判断结果不满足循环条件,输出满二叉树。
82.具体地,参照图3,当满足循环条件时,重复执行s232、s233步骤,所述循环条件为:层数n小于满二叉树高度4和第n层所有节点的lchild和rchild无空集,循环结束后,由所有节点根值组成该流量特征的满二叉树,最终得到与流量特征一一对应的18颗满二叉树。
83.s3、通过满二叉树对数据集ascii码进行转换处理,得到数据集扩展哈希值;
84.s31、根据测试集数据特征选取对应特征的满二叉树;
85.s32、根据满二叉树的高度,设定扩展哈希值的位宽;
86.s33、对下一循环层的节点左树枝内的训练集ascii码取平均计算,构建下一节点的根植;
87.具体地,通过s2步骤构建的18颗满二叉树,将训练集及测试集的流量样本的18项流量特征的ascii码转换为二进制拓展哈希值,对于训练集和测试集中的每一条流量样本,选择对应的满二叉树,将18项特征的ascii码转换为二进制拓展哈希值,对18项流量特征中的每一项,选择与该项特征对应的满二叉树,二进制哈希码的位宽为该满二叉树高度,设i=1;选择该二叉树第一层节点的根值root为判断基准。
88.s34、根据节点的根植,对训练集ascii码和测试集ascii码进行判断与循环处理,得到训练集扩展哈希值和测试集扩展哈希值。
89.s341、根据节点的根植,分别对训练集ascii码和测试集ascii码进行判断;
90.s342、判断到ascii码大于对应层节点的根植,设置扩展哈希值的第i位宽为“1”;
91.s343、判断到ascii码小于或等于对应层节点的根植,设置扩展哈希值的第i位宽为“0”;
92.s344、每完成一次判断步骤,令i=i+1;
93.s345、判断到i小于满二叉树的高度时,循环对ascii码的判断步骤;
94.s346、判断到i等于满二叉树的高度时,终止ascii码的判断步骤,输出训练集扩展哈希值和测试集扩展哈希值。
95.具体地,当ascii码值大于节点的根植时,二进制拓展哈希码的第i位置1,该节点左树枝lchild为新节点,新节点的根值为新节点的根植;当ascii码值小于节点的根植时,二进制拓展哈希码的第i位置0,该节点左树枝rchild为新节点的根植,当i小于满二叉树高度时,i=i+1,再次执行s341的判断步骤,最终获得位宽为i的二进制训练集扩展哈希值和二进制测试集扩展哈希值。
96.s4、根据数据集扩展哈希值对初步的knn分类模型进行训练,得到训练完成的knn分类模型。
97.s41、将训练集数据特征作为knn分类模型维度,不同训练集流量样本作为knn分类模型维度的坐标点,训练集扩展哈希值作为knn分类模型维度的坐标值,构建初步的knn分类模型;
98.具体地,对于训练集中的每一个流量样本,构建knn分类模型,其18个流量特征作为knn分类模型的18个维度,每一个特征的二进制拓展哈希值为该维度的坐标值,每一个流量样本看作是knn分类模型中的一个坐标点,流量属性标签则为该点的分类类型,得到200个带流量属性标签的18维坐标点。
99.s42、对初步的knn分类模型维度的坐标点个数进行开方计算与取整处理,得到k值;
100.s43、根据训练集扩展哈希值构建流量样本点。
101.s44、通过异或运算计算流量样本点与knn分类模型维度的坐标点之间的距离,得到距离值;
102.s45、根据距离值与流量样本标签,选取距离值最小时且出现最高频率的流量样本标签对应的流量样本点,作为识别结果;
103.s46、将对比结果与实际流量属性标签进行判断识别,并计算识别准确率;
104.s47、选取识别准确率最高时的k值作为训练结果,得到训练完成的knn分类模型。
105.具体地,参照图4,所述实际流量属性标签是根据收集数据时,收集的是哪种区块链应用流量得到的,即实际流量标签就是流量所属的区块链应用,分别计算测试集流量样本点与knn分类模型中所有点之间的距离,距离使用汉明距离,具体计算方法包括对流量样本点与knn分类模型点的每一维度进行异或运算,统计所有异或运算结果中1的个数,即为两点之间的汉明距离,按照距离的大小对knn分类模型200个坐标点排序选取距离最小的k个点,k个点中进行准确率的计算,计算过程如下,knn分类模型的算法是根据与待识别目标点最近的k个点所属类型来判断目标点的类型。k个点中,哪种类型的点最多,则将该点判断为该类型,因此,需要从小到大先选取一个k值,再将训练集中的每一条流量样本作为待识别的目标流量,计算与它最近的k个训练集流量,这k个训练集流量中哪种类型的流量最多,则判断目标流量为该类型。记录当前k取值下,判断类型与实际类型相同的流量数量为m,训练集流量总数设为m,则当前k取值下,流量识别准确率为m/m。根据不同k取值下的识别准确率,选择准确率最高时k的取值作为knn模型k的最优取值,出现频率最高的流量属性标签作为该流量样本的预测分类,重复s44至s45步骤,每次k增值1,k的上限为训练集样本数量的开方,选取准确率最高时的k,作为该种区块链应用流量识别的k取值,对k的平均值向下取整,作为knn分类模型的最终k值,统计得到最终k的取值为5。
106.s47、对测试集扩展哈希值进行赋予标签处理,得到带标签的扩展哈希值并作为测试集流量样本点;
107.s48、将测试集流量样本点输入训练完成的knn分类模型进行测试,得到测试结果。
108.具体地,利用训练完成的knn分类模型,对测试集拓展哈希值进行分类识别,测试其识别能力,根据计算结果选取测试集流量样本的标签出现最高频率的测试集流量样本点作为流量分类的识别结果,针对于9种区块链应用和非区块链应用流量,本发明提出的方法
实现了对实例中10种类型流量的分类识别,且识别准确率不低于80%,具有较强的识别能力。
109.s5、基于训练完成的knn分类模型对待测流量数据样本进行分类识别,得到流量分类识别结果。
110.参照图2,基于扩展哈希和knn的区块链应用流量识别系统,包括:
111.获取模块,用于获取数据集流量样本进行特征提取处理和数据转换处理,得到数据集ascii码;
112.构建模块,用于根据数据集ascii码,构建满二叉树;
113.转换模块,用于通过满二叉树对数据集ascii码进行转换处理,得到数据集扩展哈希值;
114.训练模块,用于根据数据集扩展哈希值对预训练的knn分类模型进行训练,得到knn分类模型;
115.识别模块,基于knn分类对待测流量数据样本进行分类识别,得到流量分类识别结果。
116.上述方法实施例中的内容均适用于本系统实施例中,本系统实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
117.以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本技术权利要求所限定的范围内。

技术特征:
1.基于扩展哈希和knn的区块链应用流量识别方法,其特征在于,包括以下步骤:获取数据集流量样本进行特征提取处理和数据转换处理,得到数据集ascii码;根据数据集ascii码,构建满二叉树;通过满二叉树对数据集ascii码进行转换处理,得到数据集扩展哈希值;根据数据集扩展哈希值对初步的knn分类模型进行训练,得到训练完成的knn分类模型;基于训练完成的knn分类模型对待测流量数据样本进行分类识别,得到流量分类识别结果。2.根据权利要求1所述基于扩展哈希和knn的区块链应用流量识别方法,其特征在于,所述获取数据集流量样本进行特征提取处理和数据转换处理,得到数据集ascii码这一步骤,其具体包括:采集流量数据,选取数据长度大于预设长度的流量数据,得到数据集流量样本;选取一定数量的数据集流量样本进行赋予标签处理,以赋予标签的流量样本作为训练集流量样本,以未赋予标签的流量样本作为测试集流量样本;对训练集流量样本和测试集流量样本进行特征提取处理,得到训练集数据特征和测试集数据特征;对训练集数据特征和测试集数据特征进行统一进制和相加处理,得到训练集ascii码和测试集ascii码。3.根据权利要求2所述基于扩展哈希和knn的区块链应用流量识别方法,其特征在于,所述根据数据集ascii码,构建满二叉树这一步骤,其具体包括:设定满二叉树的高度和满二叉树的循环层;合并训练集ascii码作为循环层的节点;对循环层的节点进行取平均值处理,得到节点的根植;将节点的根植与训练集ascii码进行判断,并根据判断结果构建下一循环层的节点;根据循环条件,对循环层的层数和循环层的节点进行判断,得到判断结果;判断结果满足循环条件,循环取平均值步骤和构建节点步骤,直至判断结果不满足循环条件,输出满二叉树。4.根据权利要求3所述基于扩展哈希和knn的区块链应用流量识别方法,其特征在于,所述将节点的根植与训练集ascii码进行判断,并根据判断结果构建下一循环层的节点这一步骤,其具体包括:判断到循环层的节点内的训练集ascii码大于节点的根植,构建循环层的节点的左树枝;判断到循环层的节点内的训练集ascii码小于或等于节点的根植,构建循环层的节点的右树枝;组合循环层节点的左树枝和循环层节点的右树枝,构建下一循环层的节点。5.根据权利要求4所述基于扩展哈希和knn的区块链应用流量识别方法,其特征在于,所述通过满二叉树对数据集ascii码进行转换处理,得到数据集扩展哈希值这一步骤,其具体包括:根据测试集数据特征选取对应特征的满二叉树;
根据满二叉树的高度,设定扩展哈希值的位宽;对下一循环层的节点左树枝内的训练集ascii码取平均计算,构建下一节点的根植;根据节点的根植,对训练集ascii码和测试集ascii码进行判断与循环处理,得到训练集扩展哈希值和测试集扩展哈希值。6.根据权利要求5所述基于扩展哈希和knn的区块链应用流量识别方法,其特征在于,所述根据节点的根植,对训练集ascii码和测试集ascii码进行判断与循环处理,得到训练集扩展哈希值和测试集扩展哈希值这一步骤,其具体包括:根据节点的根植,分别对训练集ascii码和测试集ascii码进行判断;判断到ascii码大于对应层节点的根植,设置扩展哈希值的第i位宽为“1”;判断到ascii码小于或等于对应层节点的根植,设置扩展哈希值的第i位宽为“0”;每完成一次判断步骤,令i=i+1;判断到i小于满二叉树的高度时,循环对ascii码的判断步骤;判断到i等于满二叉树的高度时,终止ascii码的判断步骤,输出训练集扩展哈希值和测试集扩展哈希值。7.根据权利要求6所述基于扩展哈希和knn的区块链应用流量识别方法,其特征在于,所述根据数据集扩展哈希值对初步的knn分类模型进行训练,得到训练完成的knn分类模型这一步骤,其具体包括:将训练集数据特征作为knn分类模型维度,不同训练集流量样本作为knn分类模型维度的坐标点,训练集扩展哈希值作为knn分类模型维度的坐标值,构建初步的knn分类模型;对初步的knn分类模型维度的坐标点个数进行开方计算与取整处理,得到k值;根据训练集扩展哈希值构建流量样本点;通过异或运算计算流量样本点与初步的knn分类模型维度的坐标点之间的距离,得到距离值;根据距离值与流量样本标签,选取距离值最小时且出现最高频率的流量样本标签对应的流量样本点,作为识别结果;将对比结果与实际流量属性标签进行判断识别,并计算识别准确率;选取识别准确率最高时的k值作为训练结果,得到训练完成的knn分类模型。8.根据权利要求7所述基于扩展哈希和knn的区块链应用流量识别方法,其特征在于,还包括测试步骤:对测试集扩展哈希值进行赋予标签处理,得到带标签的扩展哈希值并作为测试集流量样本点;将测试集流量样本点输入训练完成的knn分类模型进行测试,得到测试结果。9.基于扩展哈希和knn的区块链应用流量识别系统,其特征在于,包括以下模块:获取模块,用于获取数据集流量样本进行特征提取处理和数据转换处理,得到数据集ascii码;构建模块,用于根据数据集ascii码,构建满二叉树;转换模块,用于通过满二叉树对数据集ascii码进行转换处理,得到数据集扩展哈希值;训练模块,用于根据数据集扩展哈希值对初步的knn分类模型进行训练,得到训练完成
的knn分类模型;识别模块,基于训练完成的knn分类模型对待测流量数据样本进行分类识别,得到流量分类识别结果。

技术总结
本发明公开了基于扩展哈希和KNN的区块链应用流量识别方法及系统,该方法包括:获取数据集流量样本进行特征提取处理和数据转换处理,得到数据集ASCII码;根据数据集ASCII码,构建满二叉树;通过满二叉树对数据集ASCII码进行转换处理,得到数据集扩展哈希值;根据数据集扩展哈希值对预训练的KNN分类模型进行训练,得到KNN分类模型;基于KNN分类对待测流量数据样本进行分类识别,得到流量分类识别结果。通过使用本发明能够在保证区块链应用流量数据识别准确率的同时提高流量数据的识别效率。本发明作为基于扩展哈希和KNN的区块链应用流量识别方法及系统,可广泛应用于区块链技术领域。术领域。术领域。


技术研发人员:吴波 陈翔 王玺钧
受保护的技术使用者:中山大学
技术研发日:2022.04.08
技术公布日:2022/7/5
转载请注明原文地址: https://www.8miu.com/read-10348.html

最新回复(0)