一种基于多层级的群智合约异常交易识别方法及识别系统与流程

文档序号:21982497发布日期:2020-08-25 19:18阅读:147来源:国知局
一种基于多层级的群智合约异常交易识别方法及识别系统与流程

本发明属于网络安全技术,具体涉及一种基于多层级的群智合约异常交易识别方法及识别系统。



背景技术:

随着区块链技术的普及和智能服务交易监管需求的不断扩大,群智合约的交易安全性越来越被人们所关注。为了保证群智合约交易的安全性,相应的业务系统中通常会设置有交易行为的检测机制,如通过对群智合约恶意节点检测的方式对业务系统中可能存在的风险交易进行拦截。随着网络技术的不断提高,病毒或木马程序等攻击手段越来越多,而对恶意节点检测方式很难及时覆盖到所有可能的网络攻击,或者其他存在风险的交易,在实际应用中,用户可能会被恶意的安全节点利用完成风险交易,造成用户的损失。因此需要一种有效的群智合约异常交易识别方案。



技术实现要素:

发明目的:本发明的目的在于解决现有技术中存在的不足,提供一种基于多层级的群智合约异常交易识别方法及识别系统,通过对群智合约中客户端与各节点之间多层级交易流量序列及属性特征的提取、量化、分析,从而监测并识别群智合约中的异常交易。

技术方案:本发明的一种基于多层级的群智合约异常交易识别方法,包括以下步骤:

(1)采集群智合约多层级交易流量数据;即采集每笔交易所产生的流量数据,包括客户端与ca之间、客户端与背书节点之间和客户端与orderer之间等多层级流量信息;

(2)对所得多层级交易流量数据按照序列和属性两种特征类型进行统计,获得两种不同特征类型的流量特征;

(3)根据步骤(2)所得两种流量特征的特征类型,分别对序列特征和属性特征进行特征提取和量化,获得两种不同特征类型的特征数据;

(4)根据步骤(3)所得两种不同特征类型的特征数据,分别对所述的两种特征数据,采取“多删少补”和信息增益率的方法进行特征选择,获得目标特征维度内两种不同类型的特征矩阵;

(5)根据步骤(4)所得两种不同特征类型的特征矩阵,采取预设自适应k值异常点检测算法对所述目标特征维度内不同类型的特征矩阵进行分析,获得对所述目标特征维度内两种不同类型的特征矩阵的分析结果。

进一步的,所述步骤(2)的详细过程为:先对每个单层级的交易流量按照序列和属性两种特征类型进行统计,获得用户交易时各节点间发送和接收的流量序列以及交易产生的流量属性;其中,流量属性包括数据包大小、连续发送数据包的个数、调用的合约标识、参数信息。

进一步的,所述步骤(3)的详细过程为:

对两种不同特征类型的流量特征数据进行量化:序列特征中“发送”和“接收”分别用数值“1”,“0”进行标记;属性特征用属性值进行标记,其中非数值类型的属性值,用独热编码进行量化,并对属性特征数据进行归一化。

进一步的,所述步骤(4)的详细过程为:

由于步骤(3)提取和量化的序列特征数据特征维度不同,采取“多删少补”的方法进行特征选择,“多删少补”的具体方法为:设定特征维度为预设值,大于特征维度的特征数据只保留预设值之前的特征值,小于特征维度的特征数据用“-1”填充。本发明对特征维度预设值不做限定,具体视实际情况而定。

在特征选择后获得目标特征维度内两种不同类型的特征矩阵,即先对每个单层级的序列特征和属性特征的两种特征矩阵采用多层级特征学习进行融合,获得交易判定矩阵。然后采取预设自适应k值异常点检测算法对目标特征维度内不同类型的特征矩阵进行分析,获得最终群智合约的异常交易识别结果。

自适应k值异常点检测算法详细过程为:

本发明还公开一种实现基于多层级的群智合约异常交易识别方法的识别系统,包括多层级交易流量采集模块、统计模块、特征提取量化模块、特征选择模块和特征分析模块;所述多层级交易流量采集模块采集群智合约多层级交易流量数据;所述统计模块对所得多层级交易流量数据按照序列和属性两种特征类型进行统计,进而获得两种不同特征类型的流量特征;所述特征提取量化模根据两种流特征量的特征类型,分别对序列特征和属性特征进行特征提取、量化,进而获得两种不同特征类型的特征数据;所述特征选择模块分别对两种特征数据采取“多删少补”和信息增益率的方法进行特征选择,进而获得目标特征维度内两种不同类型的特征矩阵;所述特征分析模块采取预设自适应k值异常点检测算法对所得目标特征维度内不同类型的特征矩阵进行分析,组中获得对目标特征维度内两种不同类型的特征矩阵的分析结果。

进一步的,对两种不同特征类型的特征数据进行量化,序列特征中“发送”和“接收”分别用数值“1”,“0”进行标记;属性特征用属性值进行标记,其中非数值类型的属性值,用独热编码(one-hotencode)进行量化之后还包括:

还包括数据预处理模块,数据预处理模块将量化后的属性特征数据进行归一化处理,将特征值映射到[0,1]之间。

进一步的,对每个单层级的序列特征和属性特征的两种特征矩阵进行融合,获得交易判定矩阵。采用自适应k值异常点检测算法对交易判定矩阵进行分析,获得最终群智合约的异常交易识别结果。

有益效果:本发明首先在多层级交易流量抓取和特征提取阶段,提出客户端与相关节点之间序列特征和属性特征双特征集的方法,量化交易特征,并提高对各节点交易描述的精确性。其次在特征选择阶段,提出“多删少补”和信息增益率(gainratio),删除冗余特征,降低交易流量数据特征空间,从而减少时间消耗、提高效率;最后在训练检测模型阶段,采取自适应k值异常点检测算法对所述特征选择后的数据进行分析,获得交易流量数据的分析结果,以实现对群智合约中异常交易的检测。并且异常交易检测方法对提取的序列特征和属性特征进行处理和分析,大大提高了当前检测系统的性能和适用性。

附图说明

图1为本发明的一个实施例提供的一种基于多层级的群智合约异常交易识别方法的流程示意图;

图2为本发明的一个优选实施例提供的一种基于多层级的群智合约异常交易识别方法的流程示意图;

图3为本发明的另一个优选实施例提供的一种基于多层级的群智合约异常交易识别方法的流程示意图;

图4为本发明的一个实施例提供的一种基于多层级的群智合约异常交易检测系统的结构示意图;

图5为本发明的另一个实施例提供的一种基于多层级的群智合约异常交易检测系统的结构示意图。

具体实施方式

下面对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例。

如图1所示,本实施例的一种基于多层级的群智合约异常交易识别方法,包括以下步骤:

s101:采集群智合约多层级交易流量数据。

群智合约多层级交易流量数据是指每笔交易所产生的流量数据,其中包括:客户端与ca之间、客户端与背书节点之间和客户端与orderer之间、orderer与提交节点之间四个层级的流量信息。

s102:对多层级交易流量数据按照序列和属性两种特征类型进行统计,获得两种不同特征类型的流量特征。

交易流量的序列特征是指该交易从开始到结束对于用户节点所发送和接收的每条流量序列。

交易流量的属性特征是指该交易过程中各层级所产生的每条数据流的特征和交易完成后对该交易全部数据流的统计特征。

交易流量的属性特征包括:该条交易数据流开始时间、持续时间、源ip地址、源端口、目的ip地址、目的端口、传输层协议类型、数据包长度、数据包个数、单个数据包的字节数、该交易连续发送的数据包个数、数据包的总长度、数据包的总字节数、数据包的总个数、数据包到达间隔时间、数据包发送间隔时间、相应间隔时间的方差、相应间隔时间的均值,其属性特征还包括:调用的合约标识、合约方法、参数信息等群智合约的独有特征。上述的交易流量特征在一定程度上反映着该交易的异常程度。

在本实施例中交易流量的属性特征包括但不限于上述内容。

s103:根据两种流量的特征类型,分别对序列特征和属性特征进行特征提取、量化,获得两种不同特征类型的特征数据。

每个交易的情况不同,会导致每个交易的序列数不同,有些交易比较简单,用户节点发送和接收的交易流量较少,所以可提取的序列特征维度较低,有些交易比较复杂,用户节点发送和接收的交易流量较多,所以可提取的序列特征特征维度较高。

每条交易流量的情况不同,会导致每条交易流量的参数不同,例如,对于某些交易流量,不涉及端口号,因此交易流量中不涉及的属性特征特征值提取为“null”。

提取的两种不同类型的流量特征中包含非数值型的特征值,无法直接作为对象进行分析,因此在特征提取后需要对特征值进行量化,获得两种不同特征类型的特征数据,特征数据均为量化后的数值型数据,例如对于序列特征,用“1”表示发送,“0”表示接收,因此交易流量的序列特征量化为“101101000…”,对于属性特征,非数值型特征值运用独热编码(one-hotencode)将其量化为数值型特征数据。

s104:根据的两种不同特征类型的特征数据,分别对的两种特征数据,采取“多删少补”和信息增益率的方法进行特征选择,获得目标特征维度内两种不同类型的特征矩阵。

由于提取和量化的序列特征数据特征维度不同,采取“多删少补”的方法进行特征选择,其中特征维度为预设值,例如,预设值为1000,那么大于特征维度1000的特征数据只保留前1000个特征值,而小于特征维度1000的特征数据用“-1”填充。本实施例对特征维度预设值不做限定,具体视实际情况而定。

为更高效的识别群智合约的异常交易,对属性特征数据,采取信息增益率的方法进行降维处理,删除冗余特征,降低交易流量数据特征空间,从而减少时间消耗。

需要说明的是,本实施例中冗余特征是指在特定环境下对于异常交易检测没有贡献的特征,比如在某个特定环境下,小流量数据包的数量较多为正常现象,此时发送的小流量数据包总数、到达的小流量数据包总数这两个特征即为冗余特征。

s105:根据两种不同特征类型的特征矩阵,采取预设自适应k值异常点检测算法对目标特征维度内不同类型的特征矩阵进行分析,获得对目标特征维度内两种不同类型的特征矩阵的分析结果。

需要说明的是,群智合约交易流量数据对应的特征数据具有特征维度较高的特点,因此运用异常点检测算法对其进行分析,相比于聚类算法,异常点检测算法的计算运行效率高,而且其对每个数据点返回一个数值表示其异常度,可以根据实际需要或结合可视化模块调节异常数据点预设阈值,从而标注异常数据,从而检测出异常交易。

传统的异常点检测算法需要预设k值,k值的选择对检测结果影响较大,因此,需要通过多次实验选择最优k值。在群智合约的异常交易检测中,由于交易的不同,产生的数据特征差异较大,通过预设的k值无法适应多变的实际场景。因此,设计并采用预设自适应k值异常点检测算法对交易判定矩阵进行分析,获得最终群智合约的异常交易识别结果。

需要说明的是,群智合约交易流量数据对应的特征数据具有特征维度较高的特点,因此运用异常点检测算法对其进行分析,相比于聚类算法,异常点检测算法的计算运行效率高,而且其对每个数据点返回一个数值表示其异常度,可以根据实际需要调节异常数据点预设阈值,从而标注异常数据,检测出异常交易。

在上述实施例的基础上,在本申请的一个优选实施例中,如图2所示,根据两种流量的特征类型,分别对序列特征和属性特征进行特征提取、量化,获得两种不同特征类型的特征数据之后还包括:

s1034:对属性特征数据进行归一化处理,将特征值映射到[0,1]之间,获得优化的属性特征数据。

需要说明的是,提取的属性特征数据在量化后,相同交易的两个特征值相对其他交易而言相差比较大,出现奇异样本数据,导致无法收敛。因此,为提高群智合约异常交易检测系统的效率和精度,在特征选择之前对属性特征数据进行归一化处理,将特征值映射到[0,1]之间,获得优化的属性特征数据。

在上述实施例的基础上,本申请的一个具体实施例中,如图3所示,根据两种不同特征类型的特征矩阵,采取预设自适应k值异常点检测算法对目标特征维度内不同类型的特征矩阵进行分析,获得对目标特征维度内两种不同类型的特征矩阵的分析结果包括:

s1051:对每个单层级的序列特征和属性特征的两种特征矩阵采用多层级特征学习进行融合,获得交易判定矩阵。

s1052:根据交易判定矩阵,采取预设自适应k值异常点检测算法对目标特征维度内不同类型的特征矩阵进行分析,获得对目标特征维度内两种不同类型的特征矩阵的分析结果。

需要说明的是,序列特征集和属性特征集是两个完全不同的交易流量特征集,序列特征集体现了用户交易过程中节点之间的交互情况,而属性特征集体现了用户交易过程中具体的流量信息情况。相比于单一的分析流量序列特征集或流量属性特征集,两个特征融合后,可以更全面的反映群智合约交易的异常度,获得更精确的异常交易检测结果。

如图4所示,本实施例中实现上述基于多层级的群智合约异常交易识别方法的识别系统还提供了群智合约的异常交易检测系统,,包括多层级交易流量采集模块100、统计模块200、特征提取量化模块300、特征选择模块400和特征分析模块500。

多层级交易流量采集模块100,用于采集群智合约多层级交易流量数据;统计模块200,用于对多层级交易流量按照序列和属性两种特征类型进行统计,获得两种不同特征类型的流量特征;特征提取量化模块300,用于根据两种流量的特征类型,分别对序列特征和属性特征进行特征提取、量化,获得两种不同特征类型的特征数据;特征选择模块400,用于根据的两种不同特征类型的特征数据,分别对的两种特征数据,采取“多删少补”和信息增益率的方法进行特征选择,获得目标特征维度内两种不同类型的特征矩阵;特征分析模块500,用于根据两种不同特征类型的特征矩阵,采取预设自适应k值异常点检测算法对目标特征维度内不同类型的特征矩阵进行分析,获得对目标特征维度内两种不同类型的特征矩阵的分析结果。

在上述实施例的基础上,在本申请的一个优选实施例中,如图5所示,根据两种流量的特征类型,分别对序列特征和属性特征进行特征提取、量化,获得两种不同特征类型的特征数据之后还包括:

数据预处理模块600,用于对的属性特征数据进行归一化处理,将特征值映射到[0,1]之间,获得优化的属性特征数据。

需要说明的是,提取的属性特征数据在量化后,相同交易的两个特征值相对其他交易而言相差比较大,出现奇异样本数据,导致无法收敛。因此,为了提高群智合约异常交易检测系统的效率和精度,在特征选择之前对属性特征数据进行归一化处理,将特征值映射到[0,1]之间,获得优化的属性特征数据。

在上述实施例的基础上,本申请的一个具体实施例中,特征分析模块500具体用于对每个单层级的序列特征和属性特征的两种特征矩阵采用多层级特征学习进行融合,获得交易判定矩阵。

根据交易判定矩阵,采取预设自适应k值异常点检测算法对目标特征维度内不同类型的特征矩阵进行分析,获得对目标特征维度内两种不同类型的特征矩阵的分析结果。

需要说明的是,序列特征集和属性特征集是两个完全不同的交易流量特征集,序列特征集体现了用户交易过程中节点之间的交互情况,而属性特征集体现了用户交易过程中具体的流量信息情况。相比于单一的分析流量序列特征集或流量属性特征集,两个特征融合后,可以更全面的反映群智合约交易的异常度,获得更精确的异常交易检测结果。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1