会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 比特币地址 / 一种比特币恶意地址识别方法及装置

一种比特币恶意地址识别方法及装置

申请号 CN202110103938.6 申请日 2021-01-26 公开(公告)号 CN112861123B 公开(公告)日 2022-02-08
申请人 中山大学; 发明人 郑子彬; 田浩; 陈志广;
摘要 本申请公开了一种比特币恶意地址识别方法及装置,方法包括:获取待测地址的交易信息及原始特征;得到待测地址的一跳地址及二跳地址,并计算一跳地址和二跳地址的第一特征;获取交易信息中的时序行为序列,获取时序行为序列中出现频次最多的行为子序列,获取行为子序列对应的交易子序列;提取交易子序列的基础特征序列;将基础特征序列输入到训练好的自编码器中得到待测地址的交易时序特征;将原始特征、一跳地址的第一特征、二跳地址的第一特征和交易时序特征进行拼接得到待测地址的总的特征集合;将总的特征集合输入训练好的二分类模型中,得到待测地址的识别结果。本申请充分考虑区块链公开信息的时序特征和拓扑结构,使得识别结果更加准确。
权利要求

1.一种比特币恶意地址识别方法,其特征在于,包括:获取区块链上所有地址的交易信息;

根据待测地址的交易信息计算所述待测地址的原始特征;

遍历所述待测地址的交易信息,得到所述待测地址的一跳地址,遍历所述一跳地址的交易信息,得到所述待测地址的二跳地址;

分别以所述待测地址的交易信息中待测地址与所述一跳地址交易次数和交易量为权重,根据所述一跳地址的原始特征计算所述一跳地址的交易次数特征以及交易量特征;

对所述一跳地址的交易次数特征以及交易量特征进行聚合,得到所述一跳地址的第一特征;

分别以所述一跳地址的交易信息中所述一跳地址与所述二跳地址的交易次数和交易量为权重,根据所述二跳地址的原始特征计算所述二跳地址的交易次数特征以及交易量特征;

对所述二跳地址的交易次数特征以及交易量特征进行聚合,得到所述二跳地址的第一特征;

根据所述待测地址的交易信息获取对应的时序行为序列,采用序列提取窗口获取所述时序行为序列中出现频次最多的行为子序列;

根据所述待测地址的交易信息获取所述行为子序列对应的交易子序列;

提取所述交易子序列的基础特征序列;

将所述基础特征序列输入到训练好的自编码器中得到所述待测地址的交易时序特征;

将所述原始特征、所述一跳地址的第一特征、所述二跳地址的第一特征和所述交易时序特征进行拼接得到所述待测地址的总的特征集合;

将所述总的特征集合输入训练好的二分类模型中,得到所述待测地址的识别结果。

2.根据权利要求1所述比特币恶意地址识别方法,其特征在于,所述原始特征包括所述待测地址的生命周期、活跃天数、单日最大交易量、转账/接收比特币的交易次数、转账与接收比特币的交易比例、转账/接收比特币数量的基尼系数、转账/接收比特币的数量总和、转账/接收比特币的数量的均值和方差、转账/接收比特币的时间间隔的最大值,最小值和均值以及所述待测地址交易的频繁程度。

3.根据权利要求1所述比特币恶意地址识别方法,其特征在于,所述基础特征包括所述交易子序列中每个交易的输入地址数量,输出地址数量,交易的比特币数量,以及与下一次交易的时间间隔。

4.根据权利要求1所述比特币恶意地址识别方法,其特征在于,还包括:采用若干的所述基础特征序列作为训练集,通过最小化所述自编码器输入和输出之间的误差对所述自编码器进行训练,得到训练好的所述自编码器。

5.根据权利要求1所述比特币恶意地址识别方法,其特征在于,还包括:获取若干标记好的恶意地址样本以及正常地址样本作为数据集;

从比特币区块链上公开的交易信息进行特征提取;

将所述数据集划分为训练集和测试集用于训练所述二分类模型,直到模型收敛,得到训练好的所述二分类模型。

6.一种比特币恶意地址识别装置,其特征在于,包括:第一获取单元,用于获取区块链上所有地址的交易信息;

第一计算单元,用于根据待测地址的交易信息计算所述待测地址的原始特征;

遍历单元,用于遍历所述待测地址的交易信息,得到所述待测地址的一跳地址,遍历所述一跳地址的交易信息,得到所述待测地址的二跳地址;

第二计算单元,用于根据所述一跳地址和所述二跳地址的交易信息分别计算所述一跳地址的第一特征和所述二跳地址的第一特征;

所述第二计算单元包括:第三计算单元,用于分别以所述待测地址的交易信息中待测地址与所述一跳地址的交易次数和交易量为权重,根据所述一跳地址的原始特征计算所述一跳地址的交易次数特征以及交易量特征;第一聚合单元,用于对所述一跳地址的交易次数特征以及交易量特征进行聚合,得到所述一跳地址的第一特征;第四计算单元,用于分别以所述一跳地址的交易信息中所述一跳地址与所述二跳地址的交易次数和交易量为权重,根据所述二跳地址的原始特征计算所述二跳地址的交易次数特征以及交易量特征;第二聚合单元,用于对所述二跳地址的交易次数特征以及交易量特征进行聚合,得到所述二跳地址的第一特征;

第二获取单元,用于根据所述待测地址的交易信息获取对应的时序行为序列,采用序列提取窗口获取所述时序行为序列中出现频次最多的行为子序列;

第三获取单元,用于根据所述待测地址的交易信息获取所述行为子序列对应的交易子序列;

提取单元,用于提取所述交易子序列的基础特征序列;

时序特征提取单元,将所述基础特征序列输入到训练好的自编码器中得到所述待测地址的交易时序特征;

第一合并单元,将所述原始特征、所述一跳地址的第一特征、所述二跳地址的第一特征和所述交易时序特征进行拼接得到所述待测地址的总的特征集合;

识别单元,将所述总的特征集合输入训练好的二分类模型中,得到所述待测地址的识别结果。

7.根据权利要求6所述的比特币恶意地址识别装置,其特征在于,还包括第一训练单元,用于采用若干的所述基础特征序列作为训练集,通过最小化所述自编码器输入和输出之间的误差对所述自编码器进行训练,得到训练好的所述自编码器。

8.根据权利要求6所述的比特币恶意地址识别装置,其特征在于,还包括:第四获取单元,用于获取若干标记好的恶意地址样本以及正常地址样本作为数据集;

特征提取单元,用于从比特币区块链上公开的交易信息进行特征提取;

第二训练单元,用于将所述数据集划分为训练集和测试集用于训练所述二分类模型,直到模型收敛,得到训练好的所述二分类模型。

说明书全文

一种比特币恶意地址识别方法及装置

技术领域

[0001] 本申请涉及区块链地址识别技术领域,尤其涉及一种比特币恶意地址识别方法及装置。

背景技术

[0002] 比特币有着去中心化,匿名,安全可靠等优点,它有着一个完全公开透明,可追溯且不可篡改的分布式账本。用户以比特币地址的形式存在,用户间的交易相当于地址与地
址间的比特币数量转换,交易记录存储与公共的分布式账本中,账本的不可篡改性通过比
特币用户(矿工)的算力来维护。
[0003] 在比特币交易网络中,一旦一笔交易被发送到任意一个连接至比特币网络的节点,这笔交易将会被该节点验证。如果交易被验证有效,该节点会将这笔交易传播给其他节
点进行数据同步。比特币在交易中实际上以UTXO(Unspent Transaction Output)的形式存
在,每个UTXO包括锁定的比特币数量以及锁定脚本,锁定脚本会把比特币锁定在一个特定
的比特币地址上,从而能把一定数量的比特币的所有权转移到新的所有者上。
[0004] 针对如何准确且高效地识别比特币中的恶意群体问题,基于分类的恶意地址识别:将恶意地址识别转换为二分类的问题展开研究,通常通过数据搜集‑特征提取‑数据处
理‑模型训练来展开。现有技术没有充分利用到比特币区块链上的公开数据信息。有些方法
仅考虑到一些基础特征的提取,信息提取不充分;有些方法会加上时序特征,但是没有考虑
到比特币交易网络的拓扑结构;有些方法会考虑网络结构的拓扑结构,但是没有应用到比
特币区块链的时序信息。

发明内容

[0005] 本申请实施例提供了一种比特币恶意地址识别方法及装置,充分考虑区块链公开信息的时序特征和拓扑结构,使得识别结果更加准确。
[0006] 有鉴于此,本申请第一方面提供了一种比特币恶意地址识别方法,所述方法包括:
[0007] 获取区块链上所有地址的交易信息;
[0008] 根据待测地址的交易信息计算所述待测地址的原始特征;
[0009] 遍历所述待测地址的交易信息,得到所述待测地址的一跳地址,遍历所述一跳地址的交易信息,得到所述待测地址的二跳地址;
[0010] 根据所述一跳地址和所述二跳地址的交易信息分别计算所述一跳地址的第一特征和所述二跳地址的第一特征;
[0011] 根据所述待测地址的交易信息获取对应的时序行为序列,采用序列提取窗口获取所述时序行为序列中出现频次最多的行为子序列;
[0012] 根据所述待测地址的交易信息获取所述行为子序列对应的交易子序列;
[0013] 提取所述交易子序列的基础特征序列;
[0014] 将所述基础特征序列输入到训练好的自编码器中得到所述待测地址的交易时序特征;
[0015] 将所述原始特征、所述一跳地址的第一特征、所述二跳地址的第一特征和所述交易时序特征进行拼接得到所述待测地址的总的特征集合;
[0016] 将所述总的特征集合输入训练好的二分类模型中,得到所述待测地址的识别结果。
[0017] 可选的,所述根据所述一跳地址和所述二跳地址的交易信息分别计算所述一跳地址的第一特征和所述二跳地址的第一特征,包括:
[0018] 分别以所述待测地址的交易信息中待测地址与所述一跳地址交易次数和交易量为权重,根据所述一跳地址的原始特征计算所述一跳地址的交易次数特征以及交易量特
征;
[0019] 对所述一跳地址的交易次数特征以及交易量特征进行聚合,得到所述一跳地址的第一特征;
[0020] 分别以所述一跳地址的交易信息中所述一跳地址与所述二跳地址的交易次数和交易量为权重,根据所述二跳地址的原始特征计算所述二跳地址的交易次数特征以及交易
量特征;
[0021] 对所述二跳地址的交易次数特征以及交易量特征进行聚合,得到所述二跳地址的第一特征。
[0022] 可选的,所述原始特征包括所述待测地址的生命周期、活跃天数、单日最大交易量、转账/接收比特币的交易次数、转账与接收比特币的交易比例、转账/接收比特币数量的
基尼系数、转账/接收比特币的数量总和、转账/接收比特币的数量的均值和方差、转账/接
收比特币的时间间隔的最大值,最小值和均值以及所述待测地址交易的频繁程度。
[0023] 可选的,所述基础特征包括所述交易子序列中每个交易的输入地址数量,输出地址数量,交易的比特币数量,以及与下一次交易的时间间隔。
[0024] 可选的,还包括:
[0025] 采用若干的所述基础特征序列作为训练集,通过最小化所述自编码器输入和输出之间的误差对所述自编码器进行训练,得到训练好的所述自编码器。
[0026] 可选的,还包括:
[0027] 获取若干标记好的恶意地址样本以及正常地址样本作为数据集;
[0028] 从比特币区块链上公开的交易信息进行特征提取;
[0029] 将所述数据集划分为训练集和测试集用于训练所述二分类模型,直到模型收敛,得到训练好的所述二分类模型。
[0030] 本申请第二方面提供一种比特币恶意地址识别装置,所述装置包括:
[0031] 第一获取单元,用于获取区块链上所有地址的交易信息;
[0032] 第一计算单元,用于根据待测地址的交易信息计算所述待测地址的原始特征;
[0033] 遍历单元,用于遍历所述待测地址的交易信息,得到所述待测地址的一跳地址,遍历所述一跳地址的交易信息,得到所述待测地址的二跳地址;
[0034] 第二计算单元,用于根据所述一跳地址和所述二跳地址的交易信息分别计算所述一跳地址的第一特征和所述二跳地址的第一特征;
[0035] 第二获取单元,用于根据所述待测地址的交易信息获取对应的时序行为序列,采用序列提取窗口获取所述时序行为序列中出现频次最多的行为子序列;
[0036] 第三获取单元,用于根据所述待测地址的交易信息获取所述行为子序列对应的交易子序列;
[0037] 提取单元,用于提取所述交易子序列的基础特征序列;
[0038] 时序特征提取单元,将所述基础特征序列输入到训练好的自编码器中得到所述待测地址的交易时序特征;
[0039] 第一合并单元,将所述原始特征、所述一跳地址的第一特征、所述二跳地址的第一特征和所述交易时序特征进行拼接得到所述待测地址的总的特征集合;
[0040] 识别单元,将所述总的特征集合输入训练好的二分类模型中,得到所述待测地址的识别结果。
[0041] 可选的,所述第二计算单元包括:
[0042] 第三计算单元,用于分别以所述待测地址的交易信息中待测地址与所述一跳地址的交易次数和交易量为权重,根据所述一跳地址的原始特征计算所述一跳地址的交易次数
特征以及交易量特征;
[0043] 第一聚合单元,用于对所述一跳地址的交易次数特征以及交易量特征进行聚合,得到所述一跳地址的第一特征;
[0044] 第四计算单元,用于分别以所述一跳地址的交易信息中所述一跳地址与所述二跳地址的交易次数和交易量为权重,根据所述二跳地址的原始特征计算所述二跳地址的交易
次数特征以及交易量特征;
[0045] 第二聚合单元,用于对所述二跳地址的交易次数特征以及交易量特征进行聚合,得到所述二跳地址的第一特征。
[0046] 可选的,还包括:
[0047] 第四获取单元,用于获取若干标记好的恶意地址样本以及正常地址样本作为数据集;
[0048] 特征提取单元,用于从比特币区块链上公开的交易信息进行特征提取;
[0049] 第二训练单元,用于将所述数据集划分为训练集和测试集用于训练所述二分类模型,直到模型收敛,得到训练好的所述二分类模型。
[0050] 从以上技术方案可以看出,本申请具有以下优点:
[0051] 本申请中,提供了一种比特币恶意地址识别方法,包括:获取区块链上所有地址的交易信息;根据待测地址的交易信息计算待测地址的原始特征;遍历待测地址的交易信息,
得到待测地址的一跳地址,遍历一跳地址的交易信息,得到待测地址的二跳地址;根据一跳
地址和二跳地址的交易信息分别计算一跳地址的第一特征和二跳地址的第一特征;根据待
测地址的交易信息获取对应的时序行为序列,采用序列提取窗口获取时序行为序列中出现
频次最多的行为子序列;根据待测地址的交易信息获取行为子序列对应的交易子序列;提
取交易子序列的基础特征序列;将基础特征序列输入到训练好的自编码器中得到待测地址
的交易时序特征;将原始特征、一跳地址的第一特征、二跳地址的第一特征和交易时序特征
进行拼接得到待测地址的总的特征集合;将总的特征集合输入训练好的二分类模型中,得
到待测地址的识别结果。
[0052] 本申请通过遍历交易信息,得到待测地址的一跳地址和二跳地址,并分别计算一跳地址和二跳地址的第一特征,得到待测地址的拓扑结构特征;通过根据待测地址的交易
信息获取对应的时序行为序列获取交易信息中的时序行为序列,获取时序行为序列中出现
频次最多的行为子序列,获取行为子序列对应的交易子序列;提取交易子序列的基础特征
序列;将基础特征序列输入到训练好的自编码器中得到待测地址的交易时序特征;充分考
虑区块链公开信息的时序特征和拓扑结构,使得识别结果更加准确。

附图说明

[0053] 图1为本申请一种比特币恶意地址识别方法的一个实施例的方法流程图;
[0054] 图2为本申请一种比特币恶意地址识别方法的一个具体实施方式的示意图;
[0055] 图3为本申请实施例中采用序列提取窗口获取时序行为序列中行为子序列的示意图;
[0056] 图4为本申请一种比特币恶意地址识别装置的一个实施例的结构示意图。

具体实施方式

[0057] 为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本
申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在
没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0058] 图1为本申请一种比特币恶意地址识别方法的一个实施例的方法流程图,如图1所示,图1中包括:
[0059] 101、获取区块链上所有地址的交易信息;
[0060] 需要说明的是,本申请可以采用BlockSci工具(一个高性能的区块链数据分析框架)获取区块链上所有地址的交易信息,包括待测地址、待测地址的一跳地址以及待测地址
的二跳地址的所有历史的转账/接收比特币的交易信息。
[0061] 102、根据待测地址的交易信息计算待测地址的原始特征;
[0062] 需要说明的是,本申请可以通过待测地址的交易信息计算出待测地址的原始特征。具体的,原始特征包括待测地址的生命周期、活跃天数、单日最大交易量、转账/接收比
特币的交易次数、转账与接收比特币的交易比例、转账/接收比特币数量的基尼系数、转账/
接收比特币的数量总和、转账/接收比特币的数量的均值和方差、转账/接收比特币的时间
间隔的最大值,最小值和均值以及待测地址交易的频繁程度。
[0063] 本申请中可以设置待测地址Address的原始特征为v=(v1,v2 … vm),其为1*m维向量(m为原始特征的个数)。
[0064] 103、遍历待测地址的交易信息,得到待测地址的一跳地址,遍历一跳地址的交易信息,得到待测地址的二跳地址;
[0065] 需要说明的是,交易信息中包括与待测地址有过交易的所有地址信息,则与待测地址有过交易的地址称为一跳地址。同样的,可以分别遍历一跳地址的交易信息,得到与一
跳地址有过交易的所有地址信息,即得到待测地址的二跳地址。
[0066] 104、根据一跳地址和所述二跳地址的交易信息分别计算一跳地址的第一特征和二跳地址的第一特征;
[0067] 需要说明的是,根据获取到的一跳地址和所述二跳地址的交易信息,可以根据交易信息中的数据进行加权得到一跳地址和二跳地址的加权特征。
[0068] 分别以交易次数和交易量(比特币数量)为权重,当然也可以以其他的交易信息作为权重,对一跳地址和二跳地址的特征集进行特征的加权。
[0069] S1:先以交易次数为权重计算一跳地址的交易次数特征,以交易量为权重计算一跳地址的交易量特征:
[0070] 本申请可以设一跳地址集合中共有t个地址,记为Address1‑hop={Address 1,Address 2 …… Address t}。可以统计得到集合内的t个地址和待测地址Address的交易
的总次数,记为N;对于其中每个地址Address i,可以得到Address i和Address的交易的次
数ni,计算得到Address i的原始特征,记为vi=(vi1,vi2 … vim)。设交易次数特征v1‑hop_freq
=(v1‑hop_freq 1,v1‑hop_freq 2 … v1‑hop_freq m),其中一跳地址的以交易次数为权重的交易次数
特征的表达方式为:
[0071] v1‑hop_freq 1=n1/N*v11+n2/N*v21+……+nt/N*vt1
[0072] v1‑hop_freq 2=n1/N*v12+n2/N*v22+……+nt/N*vt2
[0073] ……
[0074] v1‑hop_freq m=n1/N*v1m+n2/N*v2m+……+nt/N*vtm
[0075] 即得到以交易次数为权重的一跳地址的交易次数特征v1‑hop_freq m。
[0076] 同理统计集合内的t个地址和Address的交易量的总数记为N,其中每个地址Address i和Address的交易量的总数记为ni,同样的以上述的方法进行加权可以得到以交
易量为权重的一跳地址的交易量特征v1‑hop_amount=(v1‑hop_amount 1,v1‑hop_amount 2 … 
v1‑hop_amount m)。
[0077] S2:对一跳地址的交易次数特征以及交易量特征进行聚合,得到一跳地址的第一特征;
[0078] 具体的,可以接着对交易次数特征v1‑hop_freq和交易量特征v1‑hop_amount进行聚合,获得一跳地址聚合后的第一特征v1‑hop。这里对对应维度的特征采用最大值进行聚合,以得到
交易次数特征以及交易量特征在地址集内最突出的表现作为聚合后的特征。
[0079] 设v1‑hop=(v1‑hop 1,v1‑hop 2 … v1‑hop m),其中v1‑hop 1=max(v1‑hop_freq 1,v1‑hop_amount 1),v1‑hop 2=max(v1‑hop_freq 2,v1‑hop_amount 2),……,v1‑hop m=max(v1‑hop_freq m,
v1‑hop_amount m)。
[0080] S3:以交易次数为权重计算二跳地址的交易次数特征,以交易量为权重计算二跳地址的交易量特征;
[0081] S4:对二跳地址的交易次数特征以及交易量特征进行聚合,得到二跳地址的第一特征。
[0082] 需要说明的是,本申请可以根据一跳地址的第一特征获取方式,对二跳地址进行同样的特征计算,得到二跳地址的第一特征v2‑hop=(v2‑hop 1,v2‑hop 2 … v2‑hop m)。
[0083] 105、根据待测地址的交易信息获取对应的时序行为序列,采用序列提取窗口获取时序行为序列中出现频次最多的行为子序列;需要说明的是,通过获取的待测地址所有历
史的转账/接收比特币的交易信息,可以得到待测地址的时序行为序列。
[0084] 例如,可以将待测地址Address的交易信息中接收比特币的行为记为+1(此次交易没有买入也没有卖出也记作+1),将待测地址Address的交易信息中转出比特币的行为,记
为‑1。则待测地址Address的交易序列[Trans1,Trans2,…TransZ]可以采用+1和‑1表示每
一个Trans字符,从而构成时序行为序列,具体的表达方式如图3所示。本申请可以采用序列
提取窗口获取时序行为序列中的行为子序列,例如,如图3中,可以选择长度为10的序列提
取窗口,长度可自行选择,长度不足时可在其后补上缺少的几次空交易。序列提取窗口在时
序行为序列中依次向右滑动,同时记录每一种行为序列出现的次数。最终第一行和第四行
的行为子序列[+1,‑1,‑1,+1,‑1,‑1,+1,‑1,‑1,+1]出现的次数最多,因此此序列作为最具
代表性的行为子序列(如果出现次数最多的子序列有多个,则随机选取一个)。
[0085] 106、根据待测地址的交易信息获取行为子序列对应的交易子序列;
[0086] 需要说明的是,可以从最具代表性的行为子序列的对应交易子序列中随机提取一个,若序列长度不足时可在其后补上缺少的几次空交易,作为对应的交易子序列。例如,若
获取的行为子序列是图3中第一个交易序列和第四个交易序列,则从第一个交易序列和第
四个交易序列中随机选取一个交易序列,例如选取第一个,则得到的最具代表性的交易序
列为[Trans1,Trans2,…Trans10]。
[0087] 107、提取交易子序列的基础特征序列;
[0088] 需要说明的是,对交易子序列中的每个交易行为提取其基础特征,得到提取的基础特征序列。本申请的基础特征可以包括此交易行为的输入地址数量,输出地址数量,交易
的比特币数量,以及与下一次交易的时间间隔。根据得到的交易子序列,提取对应的基础特
征序列为[vTrans1,vTrans2,…vTrans10]。
[0089] 108、将基础特征序列输入到训练好的自编码器中得到待测地址的交易时序特征;
[0090] 需要说明的是,本申请可以将基础特征序列作为输入输出放到自编码器中,考虑到相邻交易特征间的关系,自编码器中的编码模块和解码模块可以是基于LSTM(长短期记
忆人工神经网络)的神经网络模型,将自编码器训练完成后,将Address输入后得到的隐藏
层数据即可作为Address的交易时序特征。
[0091] 其中LSTM为长短期记忆网络,是一种时间循环神经网络。由于它可以较好的提取序列中前后元素的关系,符合时序特征的目的,因此自编码器都是基于LSTM的。自编码器是
一种人工神经网络,由编码器和解码器两部分组成,是一个输入和学习目标相同的神经网
络。本申请中的自编码器包括输入层,LSTM层(编码器),全连接层和LSTM层(解码器),其中
全连接层(隐藏层)的值即作为时序特征。训练是将各种提取的基础特征序列作为输入,通
过最小化输入和学习结果(解码器的输出)之间的误差来进行自编码器的训练。训练完成
后,Address的基础特征序列作为输入时,提取全连接层(隐藏层)的值作为Address的交易
时序特征,记为vtem。
[0092] 109、将原始特征、一跳地址的第一特征、二跳地址的第一特征和交易时序特征进行拼接得到待测地址的总的特征集合;
[0093] 需要说明的是,本申请可以将原始特征、一跳地址的第一特征、二跳地址的第一特征和交易时序特征进行拼接得到待测地址的总的特征集合;即将v,v1‑hop,v2‑hop,vtem直接进
行拼接,得到vtotal,用来进行后续的二分类处理。
[0094] 110、将总的特征集合输入训练好的二分类模型中,得到待测地址的识别结果。
[0095] 需要说明的是,将总的特征集合输入训练好的二分类模型中,得到待测地址的识别结果。
[0096] 具体的,vtotal的二分类模型采用的是两个全连接层,第一个全连接层的激活函数采用的是ReLu,同时使用Dropout进行正则化,第二个全连接层的激活函数采用的是
Sigmoid,输出的结果即为二分类的结果,用于判断输入的地址是否为恶意地址。本申请中
采用的优化器是Adam,其采取的是梯度调整和学习速率调整的方案,本申请的一种比特币
恶意地址识别方法的一个具体的实施方式如图2所示。
[0097] 本申请通过遍历交易信息,得到待测地址的一跳地址和二跳地址,并分别计算一跳地址和二跳地址的第一特征,得到待测地址的拓扑结构特征;通过获取交易信息中的时
序行为序列,获取时序行为序列中出现频次最多的行为子序列,获取行为子序列对应的交
易子序列;提取交易子序列的基础特征序列;将基础特征序列输入到训练好的自编码器中
得到待测地址的交易时序特征;充分考虑区块链公开信息的时序特征和拓扑结构,使得识
别结果更加准确。
[0098] 本申请还提供了一种比特币恶意地址识别方法的另外一个实施例,实施例中除了上述的步骤,还包括:
[0099] 采用若干的基础特征序列作为数据集,通过最小化自编码器输入和输出之间的误差对自编码器进行训练,得到训练好的自编码器。
[0100] 需要说明的是,在对待测地址进行识别之前,需要对自编码器进行训练,以便得到待测地址的时序特征。具体的训练过程为,采用若干的基础特征序列作为数据集,通过最小
化自编码器输入和输出之间的误差对自编码器进行训练,得到训练好的自编码器。
[0101] 在一种具体的实施方式中,还包括:
[0102] 获取若干标记好的恶意地址样本以及正常地址样本作为训练集;
[0103] 从比特币区块链上公开的交易信息进行特征提取;
[0104] 将数据集划分为训练集和测试集用于训练二分类模型,直到模型收敛,得到训练好的二分类模型。
[0105] 需要说明的是,本申请在对待测地址进行识别之前,需要对二分类模型进行训练,可以采用若干标记好的恶意地址样本以及正常地址样本作为数据集;从比特币区块链上公
开的交易信息中提取特征;将数据集划分为训练集和测试集用于训练二分类模型,直到模
型收敛,得到训练好的二分类模型。
[0106] 以上是本申请的方法的实施例,本申请还包括一种比特币恶意地址识别装置的一个实施例,如图4所示,图4中包括:
[0107] 第一获取单元401,用于获取区块链上所有地址的交易信息;
[0108] 第一计算单元402,用于根据待测地址的交易信息计算所述待测地址的原始特征;
[0109] 遍历单元403,用于遍历所述待测地址的交易信息,得到所述待测地址的一跳地址,遍历所述一跳地址的交易信息,得到所述待测地址的二跳地址;
[0110] 第二计算单元404,用于根据所述一跳地址和所述二跳地址的交易信息分别计算所述一跳地址的第一特征和所述二跳地址的第一特征;
[0111] 第二获取单元405,用于根据所述待测地址的交易信息获取对应的时序行为序列,采用序列提取窗口获取所述时序行为序列中出现频次最多的行为子序列;
[0112] 第三获取单元406,用于根据所述待测地址的交易信息获取所述行为子序列对应的交易子序列;
[0113] 提取单元407,用于提取所述交易子序列的基础特征序列;
[0114] 时序特征提取单元408,将基础特征序列输入到训练好的自编码器中得到待测地址的交易时序特征;
[0115] 第一合并单元409,将原始特征、一跳地址的第一特征、二跳地址的第一特征和交易时序特征进行拼接得到待测地址的总的特征集合;
[0116] 识别单元410,将总的特征集合输入训练好的二分类模型中,得到待测地址的识别结果。
[0117] 在一种具体的实施方式中,第二计算单元404包括:
[0118] 第三计算单元,用于分别以所述待测地址的交易信息中待测地址与所述一跳地址的交易次数和交易量为权重,根据所述一跳地址的原始特征计算所述一跳地址的交易次数
特征以及交易量特征;
[0119] 第一聚合单元,用于对所述一跳地址的交易次数特征以及交易量特征进行聚合,得到所述一跳地址的第一特征;
[0120] 第四计算单元,用于分别以所述一跳地址的交易信息中所述一跳地址与所述二跳地址的交易次数和交易量为权重,根据所述二跳地址的原始特征计算所述二跳地址的交易
次数特征以及交易量特征;第二聚合单元,用于对所述二跳地址的交易次数特征以及交易
量特征进行聚合,得到所述二跳地址的第一特征。
[0121] 在一种具体的实施方式中,还包括第一训练单元,用于采用若干的基础特征序列作为训练集,通过最小化自编码器输入和输出之间的误差对自编码器进行训练,得到训练
好的自编码器。
[0122] 在一种具体的实施方式中,还包括:
[0123] 第四获取单元,用于获取若干标记好的恶意地址样本以及正常地址样本作为数据集;
[0124] 特征提取单元,用于从比特币区块链上公开的交易信息进行特征提取;
[0125] 第二训练单元,用于将数据集划分为训练集和测试集用于训练二分类模型,直到模型收敛,得到训练好的二分类模型。
[0126] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0127] 本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当
情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那
些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他
的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列
出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固
有的其它步骤或单元。
[0128] 应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”
可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字
符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指
这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项
(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可
以是多个。
[0129] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的
划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件
可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或
讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦
合或通信连接,可以是电性,机械或其它的形式。
[0130] 以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前
述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些
修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。