一种匿名区块链节点的主动识别方法技术

技术编号:37999747 阅读:7 留言:0更新日期:2023-06-30 10:13
本发明专利技术公开了一种匿名区块链节点的主动识别方法,该方法实时获取互联网络中的流量,基于流量特征提取模块进行映射得到的特征矩阵判断该流量是否始于区块链流量,进而对流量进行聚类与识别,对于未知流量,本发明专利技术会使用其特征矩阵,利用迁移学习方法对分类模型进行再训练,使其可以识别所获得的未知区块链。本发明专利技术能够主动自适应地更新流量分类模型,在不影响主系统执行正确性与效率的情况下,高效、准确地识别未知、匿名的区块链。匿名的区块链。匿名的区块链。

【技术实现步骤摘要】
一种匿名区块链节点的主动识别方法


[0001]本专利技术属于互联网安全领域,具体涉及一种匿名区块链节点的主动识别方法。

技术介绍

[0002]区块链是一种去中心化的数据库,区块链上的各个节点维护着相同的数据,其数据具有不可篡改性,并会永久保存在节点上。基于区块链的性质,许多应用被部署到链上,例如产品供应链跟踪、医疗数据共享、商业保险服务等,这些应用对社会生产起到了积极的作用。然而,区块链的特性也可能被恶意利用,恶意行为会扰乱网络环境,造成公民财产损失。对非法的区块链以及区块链应用进行打击可以维护社会秩序、保护公民财产,具有一定的现实意义。部分的恶意行为是基于公开区块链执行的,较为容易进行识别与证据收集;而部分恶意应用则部署在私有的区块链上,该链未在网络中公布其网络特征、运行机制以及加入方法,因而具有一定的匿名性,不易被识别到。

技术实现思路

[0003]为了解决互联网络中匿名区块链难以被发现、探测、识别的问题,本专利技术提出一种匿名区块链节点的主动识别方法,该方法可以主动识别互联网络中存在的私有区块链,并探测使用该区块链的节点。
[0004]实现本专利技术所述的互联网中匿名区块链流量检测方法应包含构建:互联网流量获取模块,流量特征提取模块,匿名区块链流量识别模型的训练模块。为实现匿名区块链流量识别模型,应包含:训练集、测试集、训练模型,训练集与测试集中应包含互联网络中的正常流量、已知的区块链流量、未知的区块链流量。
[0005]对于本专利技术所述互联网流量获取模块,在互联网络中对流量进行抓取,流量将被流量特征提取模块进行处理。
[0006]对于本专利技术所述流量特征提取模块,根据区块链的特征,针对其节点发现、区块广播等行为在流量包层面提取其流量中数据,并将数据转化成为特征矩阵,流量特征提取模块可以对网络中包括正常流量在内的所有流量进行转化,并将其作为区块链流量识别模型的训练集与测试集。
[0007]对于本专利技术所述的区块链流量识别模型,其由三大子模块组成:正常流量与区块链流量分类子模块、区块链流量聚类子模块、迁移学习子模块。正常流量与区块链流量分类子模块用于对网络中的流量进行粗粒度分类,以筛选出网络中存在的区块链流量,区块链流量可以包含若干不同的区块链,包括已知或公开的区块链以及私有或匿名的区块链;区块链流量聚类子模块用于对上述筛选出的区块链流量进行聚类,依据其在上述流量特征提取模块中的矩阵特征,在多区块链混合的复杂流量数据中将各区块链流量细分,并筛选出未知的区块链流量;迁移学习子模块用于对区块链流量识别模型的再训练,使其可以识别到上述未知的区块链流量。因此,本专利技术所提出的区块链流量识别模型可以检测到网络中存在的未知区块链流量,并主动自适应地更新自身模型以实现对未知区块链流量的精确识
别。
[0008]为了达到上述专利技术目的,本专利技术提出的方法具体包括如下步骤:
[0009]S1.构建互联网流量获取模块,在互联网络中对网络流量进行抓取,流量将被流量特征提取模块进行处理。
[0010]S2.构建流量特征提取模块。该模块可将互联网流量获取模块所抓取的网络流量进行处理,对于每条网络流量,抽取其某些特征,并构建一个二维矩阵。所提取的特征与区块链网络通信机制(如心跳机制、区块广播机制、交易广播机制)有关。具体地,对于每一条网络流量S,提取包方向、长度、时间戳、应用层数据、生存时间、序列号等数据,并将所提取的数据进行转换以构造大小为m
×
n的二维特征矩阵I。
[0011]S3.构建并初始化区块链流量识别模型,该模型功能为以所述二维特征矩阵I为输入,判断二维特征矩阵I所代表的流量是否为区块链流量。区块链流量识别模型由两部分组成,第一部分为分类子模型M1,用于对网络流量进行分类,输入为大小为m
×
n的二维特征矩阵I,输出为大小为1
×
2的输出矩阵O1,满足
[0012]O1[0]+O1[1]=1
[0013]其中O1[0]、O1[1]代表流量S分别为普通流量与区块链流量的概率,当O1[1]>0.5时,认定该流量为区块链流量。第二部分为聚类子模型M2,第二部分根据第一部分的输出进行处理,将O1中被认定属于区块链的网络流量S合并为集合{S}(假设流量数量为x),并采用所述流量特征提取模块对集合{S}中的网络流量进行特征提取,得到特征矩阵集合{I},此时所述集合{I}的维度为x
×
m
×
n。聚类子模型M2以集合{I}作为输入,以大小为x
×
1的矩阵O2作为输出,其中O2代表对x条区块链流量的聚类结果,O2的每一行的值为区间[0,y]之间的整数,代表该流量被M2聚类为哪种区块链流量,其中y代表集合{S}可以被划分为的区块链种类数量;
[0014]模型M1可由l个矩阵计算层组成,每一层都包含一个参数矩阵W,用来执行矩阵运算,计算公式为
[0015][0016]其中level代表矩阵计算层的层数,代表第level层计算后得到的矩阵第a行b列的输出,h,w分别代表第level

1层中参数矩阵的行与列的大小,W
i,j
代表大小为h
×
w的二维参数矩阵W的第i行第j列的值,代表第level

1层计算后得到的第a+i行b+j列的输出,在第一层中,A0由网络流量二维特征矩阵I表示。
[0017]模型M2根据如下公式对{I}进行计算,将特征相似的区块链流量归为一类。
[0018]N
Eps
={p,q∈I|dist(p,q)<Eps,N
Eps
(P)>MinPts}
[0019]其中dist(p,q)代表任意两流量实体p,q的二维特征矩阵I之间的距离,Eps代表两流量实体p,q相关的最小距离,N
Eps
代表与流量实体p相关的数量。如果对于一个流量实体p,其∈邻域(即最小距离Eps)至少包含MinPts个点,那么这个点被认为是核心点,与核心点p距离小于Epq的流量实体q被认为与实体p同属一类。
[0020]S4.根据M2所输出的每一种区块链流量进行处理,具体地,对于上述y种区块链,首
先筛选出未发现过的,将其所对应的流量加入新的集合{S

},并最终构建流量特征矩阵集合{I

},假设其维度为x
′×
m
×
n,复制模型M1为M3,使用{I

}作为训练集更新M3为M
′3,并将M
′3作为新的分类模型替换M1。
[0021]S5.使用互联网流量获取模块与流量特征提取模块对互联网络中的流量进行抓取以及特征提取,制作测试集,得到集合{I

}并作为分类子模型M1的输入,并将M1的输出作为聚类子模型M2的输入,最终得到M2的输出。对M1以及M2的准确率、误报率、本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种匿名区块链节点的主动识别方法,其特征在于,该方法包括以下步骤:S1.构建互联网流量获取模块,在互联网络中对网络流量进行抓取;S2.构建流量特征提取模块,该模块将互联网流量获取模块所抓取的网络流量进行处理,对于每条网络流量,抽取其某些特征,并构建一个二维矩阵,所抽取的特征与区块链网络通信机制有关,具体地,对于每一条网络流量S,提取包方向、长度、时间戳、应用层数据、生存时间、序列号数据,并将所提取的数据进行转换以构造大小为m
×
n的二维特征矩阵I;S3.构建并初始化区块链流量识别模型,该模型功能为以所述二维特征矩阵I为输入,判断二维特征矩阵I所代表的流量是否为区块链流量;所述区块链流量识别模型由两部分组成,第一部分为分类子模型M1,用于对网络流量进行分类,输入为大小为m
×
n的二维特征矩阵I,输出为大小为1
×
2的输出矩阵O1,满足O1[0]+O1[1]=1其中O1[0]、O1[1]代表流量S分别为普通流量与区块链流量的概率,当O1[1]>0.5时,认定该流量为区块链流量;第二部分为聚类子模型M2,第二部分根据第一部分的输出进行处理,将O1中被认定属于区块链的网络流量S合并为集合{S},假设流量数量为x,采用所述流量特征提取模块对集合{S}中的网络流量进行特征提取,得到特征矩阵集合{I},此时所述集合{I}的维度为x
×
m
×
n,聚类子模型M2以集合{I}作为输入,以大小为x
×
1的矩阵O2作为输出,其中O2代表对x条区块链流量的聚类结果,O2的每一行的值为区间[0,y]之间的整数,代表该流量被M2聚类为哪种区块链流量,其中y代表集合{S}可以被划分为的区块链种类数量;模型M1可由1个矩阵计算层组成,每一层都包含一个参数矩阵W,用来执行矩阵运算,计算公式为:其中level代表矩阵计算层的层数,代表第level层计算后得到的矩阵第a行b列的输出,h,w分别代表第level

1层中参数矩阵的行与列的大小,W
i,j
代表大小为h
×
w的二维参数矩阵W的第i行第j列的值,代表第level

1层计算后得到的第...

【专利技术属性】
技术研发人员:丁旭阳李世鹏谢盈张小松
申请(专利权)人:电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1