会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 加密货币 / 一种加密货币异常交易检测方法及应用

一种加密货币异常交易检测方法及应用

申请号 CN202111641806.5 申请日 2021-12-29 公开(公告)号 CN114298712A 公开(公告)日 2022-04-08
申请人 上海朝夕网络技术有限公司; 发明人 陈伟; 贾曦; 李汝佳;
摘要 本发明公开了一种加密货币异常交易检测方法及应用。该方法包括步骤:分别对基于区块链的加密货币的正常交易数据和异常交易数据进行采样,将同一用户的交易数据根据交易时间进行序列化,生成用户交易序列样本,并对用户交易序列样本标记正常交易标签或异常交易标签;将用户交易序列样本编码成用户交易序列向量后输入到加密货币异常交易检测模型进行训练,其中,加密货币异常交易检测模型是基于Transformer网络架构实现的。本发明中采用的模型网络十分适用于区块链技术的加密货币异常交易检测,提取的特征表达性更强,从而使得本发明的检测准确率更高。
权利要求

1.一种加密货币异常交易检测方法,其特征在于,包括步骤:分别对基于区块链的加密货币的正常交易数据和异常交易数据进行采样,将同一用户的交易数据根据交易时间进行序列化,生成用户交易序列样本,并对用户交易序列样本标记正常交易标签或异常交易标签;

将用户交易序列样本编码成用户交易序列向量后输入到加密货币异常交易检测模型进行训练,其中,加密货币异常交易检测模型是基于Transformer网络架构实现的,训练后的加密货币异常交易检测模型用于输出表示交易异常与否的检测结果。

2.如权利要求1所述的一种加密货币异常交易检测方法,其特征在于,基于区块序列来获取交易时间的先后顺序。

3.如权利要求1所述的一种加密货币异常交易检测方法,其特征在于,每笔交易数据包括交易价值属性、燃料属性和交易地址属性,交易价值属性表示该笔交易中转移的货币量,燃料属性包括第一字段、第二字段和第三字段,第一字段表示交易发送方允许执行交易的计算工作的上限,第二字段表示实际执行的计算量,第三字段表示发送方愿意为交易支付的成本,交易地址属性表示该笔交易的发送方和接收方。

4.如权利要求3所述的一种加密货币异常交易检测方法,其特征在于,根据交易地址属性将交易数据按照用户进行分类。

5.如权利要求1所述的一种加密货币异常交易检测方法,其特征在于,设置多个不同的正常交易数据和异常交易数据的采样比率,基于每个采样比例分别构建训练集,分别在多个训练集上训练该加密货币异常交易检测模型,得到多个训练后的加密货币异常交易检测模型,根据测试结果选择最佳的采样比率。

6.一种加密货币异常交易检测系统,其特征在于,包括:样本获取模块,用于分别对基于区块链的加密货币的正常交易数据和异常交易数据进行采样,将同一用户的交易数据根据交易时间进行序列化,生成用户交易序列样本,并对用户交易序列样本标记正常交易标签或异常交易标签;

训练模块,用于将用户交易序列样本编码成用户交易序列向量后输入到加密货币异常交易检测模型进行训练,其中,加密货币异常交易检测模型是基于Transformer网络架构实现的,训练后的加密货币异常交易检测模型用于输出表示交易异常与否的检测结果。

7.如权利要求6所述的一种加密货币异常交易检测系统,其特征在于,基于区块序列来获取交易时间的先后顺序。

8.如权利要求6所述的一种加密货币异常交易检测系统,其特征在于,每笔交易数据包括交易价值属性、燃料属性、交易地址属性,交易价值属性表示该笔交易中转移的货币量,燃料属性包括第一字段、第二字段和第三字段,第一字段表示交易发送方允许执行交易的计算工作的上限,第二字段表示实际执行的计算量,第三字段表示发送方愿意为交易支付的成本,交易地址属性表示该笔交易的发送方和接收方。

9.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述的方法的步骤。

10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的方法。

说明书全文

一种加密货币异常交易检测方法及应用

技术领域

[0001] 本发明属于区块链技术领域,更具体地,涉及一种加密货币异常交易检测方法及应用。

背景技术

[0002] 目前金融市场对异常交易的检测主要集中在传统的金融领域,如银行卡和信用卡交易。按照检测方式,可以分为两类:基于手工特征的检测和基于机器学习的检测。基于手
工特征的检测就是通过建立、更新基于交易行为特征的规则库,并在交易发生时,通过查询
该交易的某些特征,比如交易量,交易频率,时间等来判断该笔交易的交易状态。但是基于
手工特征的检测只能覆盖已经出现的诈骗类型,对于新兴诈骗无能为力。基于机器学习的
检测主要是利用机器学习领域的算法,随机森林和深度学习技术,去自动学习交易的特征,
发现潜在的诈骗模式。这些方法虽然能在某种程度上缓解基于卡片交易的金融诈骗,但是
由于基于银行卡的交易与基于区块链技术的加密货币交易有着本质的区别,比如对用户的
定义,交易平台的不同等,上述方法并不能直接应用到加密货币交易的监管当中。
[0003] 目前区块链系统中异常用户检测的方法主要使用机器学习技术,从现有的异常用户和非异常用户的行为中总结规律,最终使得模型能够具有甄别异常以及正常用户的能
力。使用机器学习的异常用户检测方法主要包括数据收集和解析、特征提取、设计合理的机
器学习算法几个阶段。(1)在数据收集和解析阶段,在由于区块链数据的去中心化的账本存
在,在数据收集解析过程一般使用的是同样来源的数据,主要是数据量的使用随发表时间
有所不同。(2)特征提取阶段,现有技术中一般使用手工特征。但是机器学习理论已经证明,
使用手工特征容易使模型陷入过拟合的问题,削弱了模型的泛化能力,使得模型在处理大
量数据或者新数据时的性能大大下降,而处理大量数据和新的交易数据证实基于区块链的
加密货币交易所具有的明显特点。其次,手工特征不一定能够表达出异常账号的特征,比如
用户节点的平均转账数量和入账数量只能表现一个账号的一段时间的整体行为,或者手工
计算不同时间段峰值,而并没有对行为在时序上的差异进行深入的分析挖掘。(3)在机器学
习阶段,一般包括无监督学习方法和监督学习方法。对于无监督学习,常用Mahalanobis 
distance或者Unsupervised SVM来计算不同用户之间的距离,然后使用k‑means方法进行
聚类,对于不在聚类集群内的类外的样本点,则被看作异常账号/用户。一种现有技术中,使
用无监督学习方法,利用用户图和交易图的一致性来判断用户或者交易是不是异常,最终
由于图特征选取的偏差,使得不同特征对于最终图一致性的结果影响巨大,从而影响模型
的公平性和准确性。对于有监督学习,常用SVM,Random  Forest,XGBoost,
ExtraTreesClassifier等对样本特征进行分类。但是对于目前的算法设计,都假设正负样
本的数量差别不大,而目前能获取到的异常用户数量非常少,需要在数据不均衡的角度对
当前的算法进行改进。

发明内容

[0004] 针对现有技术的至少一个缺陷或改进需求,本发明提供了一种加密货币异常交易检测方法及应用,采用的模型网络十分适用于区块链技术的加密货币异常交易检测,提取
的特征表达性更强,从而使得本发明检测准确率更高。
[0005] 为实现上述目的,按照本发明的第一方面,提供了一种加密货币异常交易检测方法,包括步骤:
[0006] 分别对基于区块链的加密货币的正常交易数据和异常交易数据进行采样,将同一用户的交易数据根据交易时间进行序列化,生成用户交易序列样本,并对用户交易序列样
本标记正常交易标签或异常交易标签;
[0007] 将用户交易序列样本编码成用户交易序列向量后输入到加密货币异常交易检测模型进行训练,其中,加密货币异常交易检测模型是基于Transformer网络架构实现的,训
练后的加密货币异常交易检测模型用于输出表示交易异常与否的检测结果。
[0008] 进一步地,基于区块序列来获取交易时间的先后顺序。
[0009] 进一步地,每笔交易数据包括交易价值属性、燃料属性和交易地址属性,交易价值属性表示该笔交易中转移的货币量,燃料属性包括第一字段、第二字段和第三字段,第一字
段表示交易发送方允许执行交易的计算工作的上限,第二字段表示实际执行的计算量,第
三字段表示发送方愿意为交易支付的成本,交易地址属性表示该笔交易的发送方和接收
方。
[0010] 进一步地,根据交易地址属性将交易数据按照用户进行分类。
[0011] 进一步地,设置多个不同的正常交易数据和异常交易数据的采样比率,基于每个采样比例分别构建训练集,分别在多个训练集上训练该加密货币异常交易检测模型,得到
多个训练后的加密货币异常交易检测模型,根据测试结果选择最佳的采样比率。
[0012] 按照本发明的第二方面,提供了一种加密货币异常交易检测系统,包括:
[0013] 样本获取模块,用于分别对基于区块链的加密货币的正常交易数据和异常交易数据进行采样,将同一用户的交易数据根据交易时间进行序列化,生成用户交易序列样本,并
对用户交易序列样本标记正常交易标签或异常交易标签;
[0014] 训练模块,用于将用户交易序列样本编码成用户交易序列向量后输入到加密货币异常交易检测模型进行训练,其中,加密货币异常交易检测模型是基于Transformer网络架
构实现的,训练后的加密货币异常交易检测模型用于输出表示交易异常与否的检测结果。
[0015] 进一步地,基于区块序列来获取交易时间的先后顺序。
[0016] 进一步地,每笔交易数据包括交易价值属性、燃料属性、交易地址属性,交易价值属性表示该笔交易中转移的货币量,燃料属性包括第一字段、第二字段和第三字段,第一字
段表示交易发送方允许执行交易的计算工作的上限,第二字段表示实际执行的计算量,第
三字段表示发送方愿意为交易支付的成本,交易地址属性表示该笔交易的发送方和接收
方。
[0017] 按照本发明的第三方面,提供了一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现任一项上述的方
法的步骤。
[0018] 按照本发明的第四方面,提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现任一项上述的方法的步骤。
[0019] 总体而言,本发明与现有技术相比,具有有益效果:
[0020] (1)本发明创新性地提出了使用Transformer网络架构的深度学习方法来进行基于区块链技术的加密货币异常交易检测,使用该方法训练出来的模型可以很好地应用到不
同的交易场景中来预防非法交易。
[0021] (2)本发明提出了一种新的对于某个用户在某个时间段内的交易数据的预处理方式,通过该预处理,用户的交易数据序列可以转化为有利于Transformer网络架构处理的数
据,进一步提升交易预测准确率。
[0022] (3)本发明提出了一种有效的使用加密货币交易数据属性的方法,即只使用交易数据部分属性对Transformer网络学习有效的属性,舍弃部分属性,可以提供模型预测准确
率和学习效率。

附图说明

[0023] 图1是本发明实施例的一种加密货币异常交易检测方法的流程图;
[0024] 图2是本发明实施例的一笔交易数据的示意图。

具体实施方式

[0025] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不
用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼
此之间未构成冲突就可以相互组合。
[0026] 如图1所示,本发明实施例的一种加密货币异常交易检测方法,包括步骤:
[0027] S1,分别对基于区块链的加密货币的正常交易数据和异常交易数据进行采样,将同一用户的交易数据根据交易时间进行序列化,生成用户交易序列样本,并对用户交易序
列样本标记正常交易标签或异常交易标签。
[0028] S2,将用户交易序列样本编码成用户交易序列向量后输入到加密货币异常交易检测模型进行训练,其中,加密货币异常交易检测模型是基于Transformer网络架构实现的,
训练后的加密货币异常交易检测模型用于输出表示交易异常与否的检测结果。
[0029] 本发明首先将用户不同时间段的交易数据整合在一起,将同一用户的交易数据根据交易时间进行序列化,然后通过Transformer网络架构来对整个交易时间段的用户行为
特征进行提取,以获取该用户该时间段的交易行为的整体特征,这样可以更为有效地避免
平均行为特征的缺点。此外由于Transformer网络架构是一种深度学习框架,所提取的特征
比传统的手工特征表达性更强,本发明有力地证明了该深度学习框架可以很好地应用于基
于区块链的加密货币异常交易检测。
[0030] 下面具体说明每个步骤中关键点和优选实现方式。
[0031] 1.Transformer网络架构
[0032] Transformer使用多头以及自注意力(multi‑head,self‑attention)机制,所谓多头机制是指将模型内部分为多个头,形成多个子空间,这样就可以让模型去关注所输入的
序列的不同方面的信息,由于每个头的操作是独立的,所以很容易并行。但是RNN网络(循环
神经网路,一种处理非图片数据的常见网络架构)及其变体LSTM(长短期记忆网络,一种常
见的RNN网络变体)网络等本身的结构不适合并行,并且由于反向传播梯度弥散原因,不能
使用层数很多的网络进行训练,所以学习能力有限。另外,Transformer解决了RNN的长距离
依赖问题,RNN只能捕获较短距离的依赖,LSTM利用门限机制,将连乘转变了为连加,提升了
模型长程捕获能力,但梯度弥散问题没有从根本上得到解决,故其最大程度只能在400左
右,Transformer网络利用self‑attention机制进行建模,使得任何两个位置单词的距离都
为1。如果没有内存和计算力的限制,Transformer理论上可以编码无限长的文本。但是这同
时也是Transformer的缺点,即在序列长度增加的情况下,其内存和计算量的消耗非常的
大,但是RNN及LSTM不会。
[0033] 针对加密货币的交易状态监测的任务场景,Transformer有着显著的优势,大量研究已经证明在有大数据的情况下Transformer的性能效果会大幅度好于RNN等结构。而根据
加密货币的交易特点,即在短时间内能产生大量的交易数据,海量的交易数据显然使用
Transformer更具优势。而且Transformer能很好地进行并行处理,可以极大地提高网络模
型的数据处理能力。
[0034] 2.交易数据采集及预处理
[0035] 图2是以太坊某笔交易数据的示例。数据挖掘过程中,所使用的特征包含的语意信息越丰富,最终分类或者回归的结果越好。所以,通常情况下,需要对原始数据进行预处理,
以提取有效信息。
[0036] 由于区块链中,每笔交易数据不包含实际的时间,因此本申请基于区块序列来(block Index)获取交易时间的先后顺序,即以1块为时间单位,对于每一个区块提取特征,
用来学习或者进行数据分析。
[0037] 在一个实施例中,基于区块链的加密货币的交易数据如表1所示。根据对于一笔以太坊交易记录字段的先验知识,每个属性的解释如下。
[0038] 交易哈希值(hash)是一串唯一的66个字符标识符,用来标记每笔被验证并加入到区块链的交易。每一笔交易被执行时,就会生成对应的交易哈希值。
[0039] 时间戳(block time stamp)是一笔交易被挖掘的日期和时间。
[0040] 区块编号(block number)是一笔交易被记录的区块的编号。
[0041] 交易地址(from and to addresses)包含两个字段,交易发送方(from)和交易接收方(to)。from和to字段都是20字节长的发送方和接收方账户公钥的散列。在一笔交易中,
如果to字段为空,则表示该交易为合约创建交易。
[0042] 交易价值(value)字段代表该笔交易转移的以太币(Ether),以Wei为单位。一个以^18
太币相当于10 Wei。Wei是最小面额的以太币。
[0043] 燃料(gas)相关的字段有:gas limit,gas used和gas price。其中gas limit指定了为一笔交易提供的最大gas量,即发送方允许矿工执行交易的计算工作的上限。而gas 
used是实际执行的计算量。发送方愿意为交易支付的每单位gas成本由gas price表示,其
9
单位为Gwei,1Gwei=10Wei。
[0044] 表1交易数据格式
[0045]
[0046] 因为本发明的目的是判断某个用户的交易行为是否正常,因此本发明根据from(address)和to(address)这两条属性对不同的交易数据按照用户进行归类,将同一个用户
的在某一个时间段内的所有交易的某些属性归为一类,形成这个用户的交易序列。根据各
个属性的实际含义,交易哈希等属性不具备实际操作意义,因此本发明实施例选取属性
value,gas price,gas limit,gas used,以及block time stamp作为训练所使用的属性,
则对用户u可以形成如下的交易序列样本:
[0047]
[0048] 其中,t0,t1等表示交易时间,dt0u表示用户u在时间t0的交易数据中的value属性t0 t0
的值,f u表示用户u在时间t0的交易数据中的gas price属性的值,g u表示用户u在时间t0
t0
的交易数据中的gas limit属性的值,i u表示用户u在时间t0的交易数据中的gas used属
性的值。之后使用word2vec和Positional Encoding技术对这个用户交易序列样本进行编
码。
[0049] 这里仍旧以交易数据中的value属性为例进行说明。假设有M个用户,这M个用户在t0到tN时间段内的所有value属性可以构成一个value属性字典:
[0050]
[0051] 然后将字典 中的元素集合化,所谓集合化就是把相同的元素合并,保证每个元素只出现一次。假设集合化后的字典里面有T个元素(T≤M),给每个元素按照其出现的顺序
依次编码为: 假设某个用户在某个时间段内没有交易则相对应的
属性值用0代替。然后根据编码后的字典: 就可以得出某个用户u在t0到tN时间段内属
性value的数字化序列。使用类似的技术,可以对所有采用的属性进行编码,这样就得到了
属于用户u的交易序列样本的向量Vu。将M个用户的交易序列样本的向量分为训练集和测试
集分别用来训练和测试我们的网络。
[0052] 3.加密货币异常交易检测模型训练及测试
[0053] (1)网络训练
[0054] 本发明实施例中采取有监督的方式对网络进行训练,所谓有监督的方式就是对于已经采集到的每个用户的交易序列,都有对应的正常交易标签或异常交易标签。根据机器
学习里面分类常用的损失函数,本发明实施例使用交叉熵损失函数来训练Transformer网
络。
[0055] 由于在真实世界中异常交易一般交易场景中总是占很少一部分,为了体现这种交易量的不平衡性,在训练神经网络的时候,在一个实施例中,对正常交易和异常交易分别进
行采样,设置多个不同的正常交易数据和异常交易数据的采样比率,例如采样比率可以设
为:100:1,1000:1,10000:1。然后基于每个采样比例分别构建训练集,分别在多个训练集上
训练该加密货币异常交易检测模型,之后根据测试结果选取较为合适的采样比率。
[0056] (2)评价标准
[0057] 对训练好的加密货币异常交易检测模型,使用事先划分好的测试集对训练好的模型进行测试。下面具体说明加密货币异常交易检测模型的评价标准。
[0058] 针对本发明实施例的使用场景和任务,加密货币异常交易检测模型的评价标准主要是在于模型能不能识别某个特定的用户交易序列的交易状态:正常或异常。具体做法如
下描述。在测试环节对于输入的每个用户的交易序列,网络会输出一个2维向量[pnormal,
pabnormal],其中pnormal和pabnormal分别表示此条交易序列属于正常和非正常交易的概
率。取概率较大的为预测值,即,若pnormal大于pabnormal,则认为此条交易正常,反之不正
常。将预测值与真实值与比较,得出此条交易是否预测正确。假设测试集中有Mtest个用户,
我们的网络预测对了M′test个交易序列,则加密货币异常交易检测模型的预测正确率为
[0059] 本发明实施例的一种加密货币异常交易检测系统,包括:
[0060] 样本获取模块,用于分别对基于区块链的加密货币的正常交易数据和异常交易数据进行采样,将同一用户的交易数据根据交易时间进行序列化,生成用户交易序列样本,并
对用户交易序列样本标记正常交易标签或异常交易标签;
[0061] 训练模块,用于将用户交易序列样本编码成用户交易序列向量后输入到加密货币异常交易检测模型进行训练,其中,加密货币异常交易检测模型是基于Transformer网络架
构实现的,训练后的加密货币异常交易检测模型用于输出表示交易异常与否的检测结果。
[0062] 进一步地,基于区块序列来获取交易时间的先后顺序。
[0063] 进一步地,每笔交易数据包括交易价值属性、燃料属性、交易地址属性,交易价值属性表示该笔交易中转移的货币量,燃料属性包括第一字段、第二字段和第三字段,第一字
段表示交易发送方允许执行交易的计算工作的上限,第二字段表示实际执行的计算量,第
三字段表示发送方愿意为交易支付的成本,交易地址属性表示该笔交易的发送方和接收
方。
[0064] 系统的实现原理、技术效果与上述方法类似,此处不再赘述。
[0065] 本实施例还提供了一种电子设备,其包括至少一个处理器、以及至少一个存储器,其中,存储器中存储有计算机程序,当计算机程序被处理器执行时,使得处理器执行上述实
施例中加密货币异常交易检测方法的步骤,此处不再赘述。本实施例中,处理器和存储器的
类型不作具体限制,例如:处理器可以是微处理器、数字信息处理器、片上可编程逻辑系统
等;存储器可以是易失性存储器、非易失性存储器或者它们的组合等。
[0066] 本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行以实现上述任一加密货币异常交易检测方法实施例的技术方案。其实现
原理、技术效果与上述方法类似,此处不再赘述。
[0067] 必须说明的是,上述任一实施例中,方法并不必然按照序号顺序依次执行,只要从执行逻辑中不能推定必然按某一顺序执行,则意味着可以以其他任何可能的顺序执行。
[0068] 本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含
在本发明的保护范围之内。