基于无监督式机器学习的区块链异常交易识别方法和系统与流程

文档序号:31792153发布日期:2022-10-14 15:57阅读:237来源:国知局
基于无监督式机器学习的区块链异常交易识别方法和系统与流程

1.本发明涉及区块链应用技术领域,具体而言,涉及一种基于无监督式机器学习的区块链异常交易识别方法和系统。


背景技术:

2.区块链是一种集成分布式数据存储、点对点传输、共识机制、加密算法等多种技术的新型技术。当前以区块链产品为代表的全球金融科技迅猛发展,对实体经济和金融体系产生深远影响,同时暴露了异常交易、欺诈行为、虚假信息诱导和恶意操纵价格等风险,如何平衡好金融科技的创新和风险,成为监督管理部门不可忽视的问题。因此,研究对异常交易进行跟踪识别的技术迫在眉睫,进而达到将异常交易进行实时识别和跟踪,建立有效、快速、准确的异常行为检测机制。
3.现有技术大部分采用监督式机器学习技术对异常地址与正常地址进行分类,首先通过第三方开源渠道获取到异常地址的标签数据,同时对区块链的所有地址数据进行抽样构造训练数据;然后对训练数据中的所有目标地址进行特征构造,最后输入监督室学习机器学习模型中进行建模并预测。由于区块链地址发生异常的方式多种多样,同时区块链地址行为方式随着时间推移,交易行为也处于动态变化中,通过监督式机器学习技术无法对交易行为处于动态变化的地址进行交易异常的识别,其效果严重依赖于异常地址样本的有限数据量,此外,监督式模型具有滞后性且训练时间消耗大的问题。小部分研究者采用基于规则的方法对地址的异常交易进行识别,但是随着区块链技术快速发展,其技术也在处于不停的迭代状态中,地址的交易行为也会随着技术的迭代而改变,因此通过基于规则的方法无法充分使用在技术处于不停迭代过程中地址异常交易识别的场景。
4.有鉴于此,特提出本技术。


技术实现要素:

5.本发明所要解决的技术问题是:基于监督式机器学习的区块链异常交易识别方法不能有效识别出处于迭代更新状态下的区块链异常交易。目的在于提供一种基于无监督式机器学习的区块链异常交易识别方法和系统,通过建立有效、快速、准确的区块链异常交易检测机制,实现对区块链异常交易进行实时识别和跟踪。
6.本发明通过下述技术方案实现:
7.一方面,
8.本发明提供一种基于无监督式机器学习的区块链异常交易识别方法,包括以下步骤:
9.获取最新区块内的多个当前交易数据,从所述多个当前交易数据中解析出所有具有第一交易行为的当前交易地址,得到目标交易地址列表;
10.根据目标交易地址列表,从交易数据库中抽取对应的历史交易数据,建立目标交易地址的历史交易列表;
11.针对所述历史交易列表中的每一个目标交易,从所述交易数据库中获取预设时间范围内的对应的多个交易的特征数据,得到特征数据列表;
12.获取每一个特征数据的风险等级;
13.利用具有风险等级的特征数据训练无监督异常识别模型;
14.利用训练好的无监督异常识别模型对每一个当前交易地址进行异常交易识别。
15.进一步的,
16.建立目标交易地址列表包括以下步骤:
17.从所述交易数据库中提取出当前最新区块的全部交易数据;
18.从提取出的当前最新区块的全部交易数据中筛选出所有的交易支出金额超过预设额度阈值的目标交易地址,建立目标交易地址列表。
19.进一步的,
20.预设时间范围为1个月或3个月。
21.进一步的,
22.特征数据包括:交易金额、交易币种及数量、加密货币转出次数和手续费。
23.进一步的,
24.异常交易识别包括以下步骤:
25.利用训练好的无监督异常识别模型对每一个当前交易地址进行风险识别,得到对应的风险分数;
26.制定异常交易行为分类表和风险分数阈值,根据所述异常交易行为分类表、所述风险分数阈值以及当前交易地址对应的交易行为和风险分数,对每一个当前交易地址进行异常交易识别和预警。
27.进一步的,
28.获取多个当前交易数据之前,包括以下步骤:
29.搭建区块链全节点;
30.解析出所述区块链全节点上的所有历史交易数据,所述历史交易数据包括:交易hash、交易时间、区块号、转出地址、接收地址、交易金额、交易币种和手续费;
31.利用解析出的所有历史交易数据建立交易数据库。
32.另一方面,
33.本发明提供一种基于无监督式机器学习的区块链异常交易识别系统,包括:
34.数据存储模块,用于存储获取的所有历史交易数据和最新区块内的多个当前交易数据;
35.交易数据解析模块,用于从所述最新区块内的多个当前交易数据中解析出所有具有第一交易行为的当前交易地址,得到目标交易地址列表;
36.历史交易列表构建模块,根据目标交易地址列表,从交易数据库中抽取对应的历史交易数据,建立目标交易地址的历史交易列表;
37.特征数据列表构建模块,用于针对所述历史交易列表中的每一个目标交易,从所述交易数据库中获取对应的预设时间范围内的多个交易的特征数据,得到特征数据列表;
38.风险等级获取模块,用于获取每一个特征数据的风险等级;
39.模型训练模块,用于利用风险等级的特征数据训练无监督异常识别模型;
40.异常交易识别和预警模块,用于根据训练好的无监督异常识别模型对每一个当前交易地址进行异常交易识别和预警。
41.进一步的,
42.交易数据解析模块包括:
43.第一交易数据提取单元,用于从所述交易数据库中提取出当前最新区块的全部交易数据;
44.支出额度阈值设置单元,用于预设支出额度阈值;
45.交易数据筛选单元,用于从提取出的当前最新区块的全部交易数据中筛选出所有的交易支出金额超过预设额度阈值的目标交易地址,建立目标交易地址列表。
46.进一步的,
47.异常交易识别和预警模块包括:
48.风险识别单元,用于根据训练好的无监督异常识别模型对每一个当前交易地址进行风险识别,得到对应的风险分数;
49.风险判定标准设置单元,用于制定异常交易行为分类表和风险分数阈值;
50.异常交易识别及预警单元,用于根据所述异常交易行为分类表、所述风险分数阈值以及当前交易地址对应的交易行为和风险分数,对每一个当前交易地址进行异常交易识别和预警。
51.进一步的,
52.该系统还包括交易数据库构建模块,所述交易数据库构建模块包括:
53.全节点搭建单元,用于搭建区块链全节点;
54.历史交易数据接线单元,用于解析出所述区块链全节点上的所有历史交易数据,所述历史交易数据包括:交易hash、交易时间、区块号、转出地址、接收地址、交易金额、交易币种和手续费;
55.交易数据库构建单元,用于利用解析出的所有历史交易数据建立交易数据库。
56.本发明与现有技术相比,具有如下的优点和有益效果:
57.1、本发明提供的一种基于无监督式机器学习的区块链异常交易识别方法和系统,采用基于无监督异常识别模型,能够适应地址交易行为处于动态变化过程中的异常识别,进而有效锁定产生异常的交易;
58.2、本发明提供的一种基于无监督式机器学习的区块链异常交易识别方法和系统,首先针对单一特征进行异常识别并得到其风险等级,让所有的业务特征数据初处于同一量纲;而后将所有特征风险等级数据同时输入无监督异常识别模型,对其整体特征行为进行风险识别,通过双重异常识别,保证了最终输出的有效性与准确性;
59.3、本发明提供的一种基于无监督式机器学习的区块链异常交易识别方法和系统,每次对最新交易数据识别过程中,同时将最新交易数据与最近历史交易数据输入到识别模型并重新训练,模型能够动态地学习到地址动态变化的交易行为,同时预测出最新交易在最近历史行为中是否异常;
60.4、本发明提供的一种基于无监督式机器学习的区块链异常交易识别方法和系统,最新交易中目标地址提取过程,采用了自定义过滤机制,即制定了异常交易行为分类表和风险分数阈值,根据所述异常交易行为分类表、所述风险分数阈值以及交易地址对应的交
易行为和风险分数,对每一个具有加密货币转出行为的交易地址进行异常交易识别和预警,从而有效缩小了当前交易的识别范围,大大提高了异常交易识别的时效。
附图说明
61.为了更清楚地说明本发明示例性实施方式的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
62.图1为本发明实施例1提供的基于无监督式机器学习的区块链异常交易识别方法的技术架构图;
63.图2为本发明实施例2提供的基于无监督式机器学习的区块链异常交易识别方法的流程示意图;
64.图3为本发明实施例4提供的基于无监督式机器学习的区块链异常交易识别系统的结构示意图。
具体实施方式
65.为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
66.实施例1
67.如图1所示,本实施例提供一种基于无监督式机器学习的区块链异常交易识别方法,包括以下步骤:
68.获取最新区块内的多个当前交易数据,从所述多个当前交易数据中解析出所有具有第一交易行为的当前交易地址,得到目标交易地址列表;
69.根据目标交易地址列表,从交易数据库中抽取对应的历史交易数据,建立目标交易地址的历史交易列表;
70.针对所述历史交易列表中的每一个目标交易,从所述交易数据库中获取预设时间范围内的对应的多个交易的特征数据,得到特征数据列表;
71.获取每一个特征数据的风险等级;
72.利用具有风险等级的特征数据训练无监督异常识别模型;
73.利用训练好的无监督异常识别模型对每一个当前交易地址进行异常交易识别。
74.进一步的,
75.建立目标交易地址列表包括以下步骤:
76.从所述交易数据库中提取出当前最新区块的全部交易数据;
77.从提取出的当前最新区块的全部交易数据中筛选出所有的交易支出金额超过预设额度阈值的目标交易地址,建立目标交易地址列表。
78.进一步的,
79.预设时间范围为1个月或3个月。
80.进一步的,
81.特征数据包括:交易金额、交易币种及数量、加密货币转出次数和手续费。
82.进一步的,
83.异常交易识别包括以下步骤:
84.利用训练好的无监督异常识别模型对每一个当前交易地址进行风险识别,得到对应的风险分数;
85.制定异常交易行为分类表和风险分数阈值,根据所述异常交易行为分类表、所述风险分数阈值以及当前交易地址对应的交易行为和风险分数,对每一个当前交易地址进行异常交易识别和预警。
86.进一步的,
87.获取多个当前交易数据之前,包括以下步骤:
88.搭建区块链全节点;
89.解析出所述区块链全节点上的所有历史交易数据,所述历史交易数据包括:交易hash、交易时间、区块号、转出地址、接收地址、交易金额、交易币种和手续费;
90.利用解析出的所有历史交易数据建立交易数据库。
91.实施例2
92.随着区块链技术快速发展,其技术也在处于不停的迭代状态中,地址的交易行为也会随着技术的迭代而改变。目前,基于监督式机器学习的区块链异常交易识别方法已不能有效识别出处于迭代更新状态下的区块链异常交易。
93.针对现有技术存在的上述技术问题,本实施例提供了一种基于无监督式机器学习的区块链异常交易识别方法,其技术架构如图1所示。首先搭建了区域链全节点,然后分别或历史交易数据和当前最新交易数据,并将历史交易数据入库,从当前最新交易数据中提取出存在异常交易行为的目标地址;随后建设目标地址的特征工程、动态识别单一特征的风险等级;接下来训练出无监督式异常识别模型;最后基于业务规则和由无监督式异常识别模型得到的风险分数进行风向等级划分,从而达到建立有效、快速、准确的异常行为检测机制。
94.根据上述技术架构,基于无监督式机器学习的区块链异常交易识别方法的实施流程如图2所示,具体包括以下步骤:
95.步骤1:获取最新区块内的多个当前交易数据,从获取的最新区块内的多个当前交易数据中解析出所有具有加密货币转出行为的交易地址,得到交易地址列表。当前交易数据的个数根据实际情况而定。
96.本实施例提供的方法将是否具有加密货币转出行为作为初步判断当前交易是否异常的一个监听标签,但并不作为判定当前交易为异常交易的标准。由于某一交易地址(用户)可能仅在当前交易中具有加密货币转出行为,而在历史众多交易记录中并不存在加密货币转出行为,因此只能将加密货币转出行为作为初步判读异常交易的监听标签,将存在加密货币转出行为的交易地址作为拟识别(监听)对象,得到的交易地址列表将作为异常交易识别对象的参考。并且,加密货币转出行为并不能作为判定当前交易地址的交易行为异常的唯一标准,需在此基础上继续执行以下步骤,以做进一步判断。
97.步骤2:建立交易数据库,根据交易数据库中的最新区块内的当前交易数据,从交易地址列表中提取出所有转出金额超过预设额度阈值的目标交易地址,并构造与每一个目
标交易地址对应的每笔交易的业务特征,得到业务特征列表。
98.其中,
99.建立交易数据库的方法为:
100.步骤2.11:利用现有技术搭建区块链全节点。
101.步骤2.12:解析出区块链全节点上的所有历史交易数据,该历史交易数据具体指:交易hash、交易时间、区块号、转出地址、接收地址、交易金额、交易币种和手续费。
102.步骤2.13:利用解析出的所有历史交易数据建立交易数据库,为后续获取历史交易数据提供数据支撑。
103.目标地址的提取方法为:
104.从交易数据库中提取出当前最新区块的全部交易数据;从提取出的交易数据中筛选出所有的交易支出金额超过预设额度阈值的目标交易地址,建立目标交易地址列表;
105.业务特征的构造方法为:
106.步骤2.31:在预设时间范围内,从历史数据库中提取出与目标地址对应的每笔交易的历史交易数据;
107.步骤2.32:根据每笔交易的历史交易数据构造业务特征,该业务特征具体包括:交易金额、交易币种及数量、加密货币转出次数和手续费。
108.由于步骤1得到了交易地址列表,交易地址列表中的所有当前交易地址都具有加密货币转出行为,是判断当前交易是否异常的初步参考,而加密货币转出行为并不作为判定当前交易地址的交易行为异常的唯一标准。因此本步骤针对交易地址列表中的每一个交易地址,获取了其对应的在过去1个月内的所有历史交易数据;并且预设了转出额度阈值,将加密货币转出金额是否超过预设交易额度阈值作为判定异常交易行为的标准。在自定义的异常交易行为判定标准的前提下,通过在获取的所有历史交易数据中查询是否存在加密货币转出金额超过预设转出额度阈值的数据记录的方式,从交易地址列表中提取目标交易地址。若某一交易地址对应的历史交易数据中存在一条或多条符合上述判定标准的数据记录,则说明该交易地址在当前交易之前已经存在了异常交易行为;因此,对于该交易地址对应的当前交易行为而言,很大概率上可判定为异常交易,可将该交易地址作为目标交易地址进行后续的异常交易识别。
109.另外,从交易地址列表中提取出的转出金额超过预设额度阈值的目标交易地址将作为异常交易的识别对象,因此对于提取出的目标交易地址的其他交易行为也应当作为异常交易的判断基础。对此,本步骤针对每一个目标交易地址构造其对应的每笔交易的业务特征,得到业务特征列表。
110.步骤3:对业务特征列表中的每一个业务特征,根据目前统计学理论中的分位数原理或均值与方差结合的原理进行风险等级划分。
111.步骤4:利用风险等级划分后的所有业务特征训练无监督异常识别模型,利用训练好的无监督异常识别模型对交易地址列表中的每一个交易地址进行风险识别,得到每一个具有加密货币转出行为的交易地址的风险分数。
112.其中,待训练的无监督异常识别模型可以采用隔离森林、cblof、hbos等无监督异常识别算法。该步骤实现了对目标交易地址的单一业务特征进行风险等级的划分,达到对单一业务特征量纲化的目的。
113.一方面,本实施例采用了基于无监督异常识别模型,能够适应地址交易行为处于动态变化过程中的异常识别,进而有效锁定产生异常的交易。另一方面,本实施例首先针对单一特征进行异常识别并得到其风险等级,让所有的业务特征数据初处于同一量纲;而后将所有特征风险等级数据同时输入无监督异常识别模型,对其整体特征行为进行风险识别,通过双重异常识别,保证了最终输出的有效性与准确性。
114.步骤5:制定异常交易行为分类表和风险分数阈值,根据所述异常交易行为分类表、所述风险分数阈值以及交易地址对应的交易行为和风险分数,对每一个具有加密货币转出行为的交易地址进行异常交易识别和预警。
115.其中,
116.异常交易行为分类表中的异常交易行为包括:当前交易有闪电贷行为、大额手续费行为和资金被兑空行为。
117.风险分数阈值的制定方法为:
118.步骤5.11:将所有交易地址的风险分数按照从大到小的顺序排序,得到风险分数序列表;
119.步骤5.12:统计所述风险分数序列表中交易地址的总数;
120.步骤5.13:设置排序百分比,该排序百分比可根据实际情况具体设置为1%、5%或其他数值,然后将排序百分比与交易地址的总数的乘积作为序列下限;
121.步骤5.14:将位于所述序列下限的交易地址的风险分数作为风险分数阈值。
122.例如,假设排序后的风险分数列表中有1000个交易地址,设置排序百分比为1%,则序列下限为100,即将风险分数列表中排名第100位的交易地址的风险分数作为风险分数阈值。
123.异常交易识别的方法为:
124.判断交易地址对应的交易行为是否属于异常交易行为分类表中的异常交易行为;若不属于所述异常交易行为,则将交易地址对应的交易行为判定为正常交易行为,否则继续判断交易地址的风险分数是否大于或等于所述风险分数阈值;若大于或等于所述风险分数阈值,则将交易地址对应的交易行为判定为异常交易行为,否则将交易地址对应的交易行为判定为正常交易行为。
125.该步骤采用了自定义过滤机制,即制定了异常交易行为分类表和风险分数阈值,根据异常交易行为分类表、风险分数阈值以及交易地址对应的交易行为和风险分数,对每一个具有加密货币转出行为的交易地址进行异常交易识别和预警,从而有效缩小了当前交易的识别范围,大大提高了异常交易识别的时效。
126.综上步骤1至步骤5,本实施例提供的一种基于无监督式机器学习的区块链异常交易识别方法和系统,每次对最新交易数据识别过程中,同时将最新交易数据与最近历史交易数据输入到识别模型并重新训练,模型能够动态地学习到地址动态变化的交易行为,同时预测出最新交易在最近历史行为中是否异常。
127.实施例3
128.本实施例提供了一种与实施例1对应的基于无监督式机器学习的区块链异常交易识别方法的系统,包括:
129.数据存储模块,用于存储获取的所有历史交易数据和最新区块内的多个当前交易
数据;
130.交易数据解析模块,用于从所述最新区块内的多个当前交易数据中解析出所有具有第一交易行为的当前交易地址,得到目标交易地址列表;
131.历史交易列表构建模块,根据目标交易地址列表,从交易数据库中抽取对应的历史交易数据,建立目标交易地址的历史交易列表;
132.特征数据列表构建模块,用于针对所述历史交易列表中的每一个目标交易,从所述交易数据库中获取对应的预设时间范围内的多个交易的特征数据,得到特征数据列表;
133.风险等级获取模块,用于获取每一个特征数据的风险等级;
134.模型训练模块,用于利用风险等级的特征数据训练无监督异常识别模型;
135.异常交易识别和预警模块,用于根据训练好的无监督异常识别模型对每一个当前交易地址进行异常交易识别和预警。
136.进一步的,
137.交易数据解析模块包括:
138.第一交易数据提取单元,用于从所述交易数据库中提取出当前最新区块的全部交易数据;
139.支出额度阈值设置单元,用于预设支出额度阈值;
140.交易数据筛选单元,用于从提取出的当前最新区块的全部交易数据中筛选出所有的交易支出金额超过预设额度阈值的目标交易地址,建立目标交易地址列表。
141.进一步的,
142.异常交易识别和预警模块包括:
143.风险识别单元,用于根据训练好的无监督异常识别模型对每一个当前交易地址进行风险识别,得到对应的风险分数;
144.风险判定标准设置单元,用于制定异常交易行为分类表和风险分数阈值;
145.异常交易识别及预警单元,用于根据所述异常交易行为分类表、所述风险分数阈值以及当前交易地址对应的交易行为和风险分数,对每一个当前交易地址进行异常交易识别和预警。
146.进一步的,
147.该系统还包括交易数据库构建模块,所述交易数据库构建模块包括:
148.全节点搭建单元,用于搭建区块链全节点;
149.历史交易数据接线单元,用于解析出所述区块链全节点上的所有历史交易数据,所述历史交易数据包括:交易hash、交易时间、区块号、转出地址、接收地址、交易金额、交易币种和手续费;
150.交易数据库构建单元,用于利用解析出的所有历史交易数据建立交易数据库。
151.实施例4
152.本实施例提供一种用于执行实施例2所述的基于无监督式机器学习的区块链异常交易识别方法的系统,该系统的结构如图3所示,包括:
153.数据存储模块,用于存储获取的所有当前交易数据和历史交易数据;
154.当前交易数据解析模块,用于从多个当前交易数据中解析出所有具有加密货币转出行为的交易地址,得到交易地址列表;
155.目标交易地址提取模块,用于从交易地址列表中提取出所有转出金额超过预设额度阈值的目标交易地址;
156.业务特征列表构建模块,用于构造与每一个目标交易地址对应的每笔交易的业务特征,得到业务特征列表;
157.风险等级划分模块,用于对业务特征列表中的每一个业务特征进行风险等级划分;
158.模型训练模块,用于利用风险等级划分后的所有业务特征训练无监督异常识别模型;
159.风险识别模块,用于利用训练好的无监督异常识别模型对交易地址列表中的每一个交易地址进行风险识别,得到每一个具有加密货币转出行为的交易地址的风险分数;
160.风险识别预警模块,用于制定异常交易行为分类表和风险分数阈值,并根据异常交易行为分类表、风险分数阈值以及交易地址对应的交易行为和风险分数,对每一个具有加密货币转出行为的交易地址进行异常交易识别和预警。
161.其中,
162.目标交易地址提取模块包括:
163.第一交易数据提取单元,用于从交易数据库中对应地提取出交易时间在预设时间范围内的历史交易数据;
164.额度阈值设置单元,用于预设额度阈值;
165.目标交易地址提取单元,用于根据最新区块内的历史交易数据,从交易地址列表中提取出对应的交易地址作为目标交易地址;
166.交易数据提取单元,根据目标交易地址提取出在预设时间范围内的历史交易数据构建历史交易数据;
167.业务特征列表构建模块包括:
168.第二交易数据提取单元,用于在预设时间范围内,从历史数据库中提取出与目标地址对应的每笔交易的历史交易数据;
169.业务特征列表构建单元,用于根据每笔交易的历史交易数据构造所述业务特征;
170.风险识别预警模块包括:
171.风险分数阈值设置单元,用于将所有交易地址的风险分数按照从大到小的顺序排序,得到风险分数序列表;统计风险分数序列表中交易地址的总数;设置排序百分比,将排序百分比与交易地址的总数的乘积作为序列下限;将位于所述序列下限的交易地址的风险分数作为所述风险分数阈值;
172.异常交易识别单元,用于判断交易地址对应的交易行为是否属于所述异常交易行为分类表中的异常交易行为;若不属于所述异常交易行为,则将交易地址对应的交易行为判定为正常交易行为,否则继续判断交易地址的风险分数是否大于或等于风险分数阈值;若大于或等于风险分数阈值,则将交易地址对应的交易行为判定为异常交易行为,否则将交易地址对应的交易行为判定为正常交易行为将位于所述序列下限的交易地址的风险分数作为所述风险分数阈值。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1