一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

以太坊区块链中账户的风险识别方法、装置及设备

2022-05-06 07:55:40 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,特别涉及一种以太坊区块链中账户的风险识别方法、装置及电子设备。


背景技术:

2.自以太坊主网于2015年上线以来,其就受到广泛的关注。相比于其他区块链,开发者可以在以太坊上轻松编写去中心化的应用程序,这为许多应用场景提供了新的解决思路,使得以太坊在主网上线后迅速聚集起大量用户。截止到2021年2月,以太坊上已有超过约36万种token合约,反映出其很高的流行程度。
3.然而任何新技术都有可能被用于非法活动,以太坊也不例外。近年来越来越多的公司开始支持使用虚拟货币支付,这使得包括以太坊在内的区块链技术进入到大众视野中,也进一步吸引了更多的非法牟利者,产生了很多基于以太坊的骗局。以太坊上存在的骗局活动有庞氏骗局、捐赠骗局、网络钓鱼、敲诈勒索等,这些非法活动使得大量受害者蒙受损失,让以太坊的声誉受到负面影响,成为了以太坊推广和发展的阻力之一。
4.现有技术中,主要是针对发生在以太坊上的庞氏骗局的识别与对反洗钱的识别上,缺少在多种骗局存在的情况下对于正常使用的账户与被用来进行骗局的账户的识别区分。这样可能会对正常账户的使用造成一定的影响,同时影响后续对于风险账户的追责问题。
5.因此,如何对以太坊区块链上的账户进行风险识别,提升以太坊区块链中账户的安全性成为目前亟需解决的技术问题。


技术实现要素:

6.针对现有技术的上述问题,本文的目的在于,提供一种以太坊区块链中账户的风险识别方法、装置及电子设备,能够对以太坊区块链中的账户进行分类和风险识别,提升以太坊区块链账户的安全性。
7.为了解决上述技术问题,本文的具体技术方案如下:
8.一方面,本文提供一种以太坊区块链中账户的风险识别方法,所述方法包括:
9.根据以太坊区块链中待识别账户的目标账户地址,获取所述待识别账户的目标交易信息;
10.将所述目标交易信息输入到预先建立的账户风险识别模型,利用所述账户风险识别模型基于所述目标交易信息提取所述待识别账户的账户特征,并根据提取到的账户特征对所述待识别账户进行风险识别;其中,所述账户风险识别模型基于历史风险账户的交易信息以及历史正常账户的交易信息进行模型训练获得;
11.根据所述账户风险识别模型输出的风险识别结果,确定所述待识别账户是否属于风险账户。
12.进一步地、所述账户风险识别模型的构建方法包括:
13.采集历史风险账户的账户地址和历史正常账户的账户地址;
14.基于所述历史风险账户的账户地址获取历史风险账户的交易信息,基于所述历史正常账户的账户地址获取历史正常账户的交易信息;
15.对所述历史风险账户的交易信息进行特征提取,获得风险账户特征集合,对所述历史正常账户的交易信息进行特征提取,获得正常账户特征集合;
16.利用所述风险账户特征集合和所述正常账户特征集合对所述账户风险识别模型进行模型训练,获得所述账户风险识别模型。
17.进一步地、所述方法还包括:
18.所述利用所述风险账户特征集合和所述正常账户特征集合对所述账户风险识别模型进行模型训练,获得所述账户风险识别模型,包括:
19.将所述风险账户特征集合和所述正常账户特征集合输入到账户风险识别模型中,进行模型训练,利用网格搜索确定出所述账户风险识别模型的目标模型参数组合;
20.基于所述目标模型参数组合获得账户风险识别模型。
21.进一步地、所述采集历史风险账户的账户地址包括:
22.从风险账户数据库中获取风险账户的初选账户地址,或在风险行为监督平台或以太坊区块链浏览器中通过查询风险关键词,获取风险账户的初选账户地址;
23.在获取到风险账户的初选账户地址后,对初选账户地址进行查重,将重复的初选账户地址删除,获得风险账户的账户地址。
24.进一步地、所述历史正常账户的账户地址的采集方法包括:
25.从以太坊区块中采集交易发送者的以太坊地址作为备用账户地址;
26.将备用账户地址去重后与采集到的历史风险账户的账户地址进行比对,将与所述历史风险账户的账户地址相同的备用账户地址删除,剩余的备用账户地址作为所述历史正常账户的账户地址。
27.进一步地、所述方法还包括:
28.利用所述账户风险识别模型计算各个账户特征的平均增益率;
29.根据各个账户特征的平均增益率从高到低对各个账户特征进行排序,将排序在前指定名次的账户特征作为风险识别账户特征;
30.所述利用所述账户风险识别模型基于所述目标交易信息提取所述待识别账户的账户特征,并根据提取到的账户特征对所述待识别账户进行风险识别,包括:
31.利用所述账户风险识别模型基于所述目标交易信息提取所述待识别账户的账户特征后,筛选出所述风险识别账户特征中与所述风险识别账户特征相同的账户特征,所述账户风险识别模型利用筛选后的账户特征对所述待识别账户进行风险识别。
32.进一步地、所述账户特征包括:统计特征和交易类型特征,所述统计特征包括:交易金额特征、交易次数特征、交易时间特征。
33.另一方面,本文提供一种以太坊区块链中账户的风险识别装置,包括:
34.信息获取模块,用于根据以太坊区块链中待识别账户的目标账户地址,获取所述待识别账户的目标交易信息;
35.机器学习模型识别模块,用于将所述目标交易信息输入到预先建立的账户风险识别模型,利用所述账户风险识别模型基于所述目标交易信息提取所述待识别账户的账户特
征,并根据提取到的账户特征对所述待识别账户进行风险识别;其中,所述账户风险识别模型基于历史风险账户的交易信息以及历史正常账户的交易信息进行模型训练获得;
36.账户风险识别模块,用于根据所述账户风险识别模型输出的风险识别结果,确定所述待识别账户是否属于风险账户。
37.进一步地、所述装置还包括模型构建模块,用于采用下述方法构建所述账户风险识别模型:
38.采集历史风险账户的账户地址和历史正常账户的账户地址;
39.基于所述历史风险账户的账户地址获取历史风险账户的交易信息,基于所述历史正常账户的账户地址获取历史正常账户的交易信息;
40.对所述历史风险账户的交易信息进行特征提取,获得风险账户特征集合,对所述历史正常账户的交易信息进行特征提取,获得正常账户特征集合;
41.利用所述风险账户特征集合和所述正常账户特征集合对所述账户风险识别模型进行模型训练,获得所述账户风险识别模型。
42.另一方面,本文还提供一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述所述的使用轻量化网络中间件实现上述以太坊区块链中账户的风险识别方法。
43.本文所述的一种以太坊区块链中账户的风险识别方法、装置及电子设备,利用历史风险账户和历史安全账户的交易信息进行模型训练,构建出账户风险识别模型,再利用构建出的账户风险识别模型对待识别账户的账户特征进行提取和风险预测,实现对以太坊区块链中风险账户的识别,提升了以太坊区块链中账户使用的安全性。利用本说明书实施例提供的方法可以实现对以太坊区块链中的账户进行识别分类,有助于进一步对行骗者的追责和对受害者的补救。本说明书实施例提供的方法能够在检测风险账户时具有较高的有效性,并且可以对各个特征的重要性进行排名,为进一步改进方法或对类似区块链做分析提供参考和启发。
44.为让本文的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,做详细说明如下。
附图说明
45.为了更清楚地说明本文实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本文的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
46.图1是本说明书一个实施例中以太坊区块链中账户的风险识别方法的流程示意图;
47.图2是本说明书一个实施例中账户风险识别模型进行账户风险识别的流程示意图;
48.图3是本说明书一个实施例中特征选取策略的示意图;
49.图4是本说明书一个实施例中以太坊区块链中账户的交易类型特征示意图;
50.图5是本说明书一个实施例中以太坊区块链中账户的风险识别装置的结构示意图;
51.图6示出了本文实施例提供的一种以太坊区块链中账户的风险识别的电子设备的结构示意图。
具体实施方式
52.下面将结合本文实施例中的附图,对本文实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本文一部分实施例,而不是全部的实施例。基于本文中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文保护的范围。
53.需要说明的是,本文的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本文的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
54.随着科技的进步,区块链技术逐渐应用到各个领域中,但对于区块链技术中账户的安全性仍是需要重点研究的问题。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。以太坊(英文ethereum)是一个开源的有智能合约功能的公共区块链平台,通过其专用加密货币以太币(ether)提供去中心化的以太虚拟机(ethereum virtual machine)来处理点对点合约。
55.本说明书实施例针对基于数据分析检测区分以太坊区块链中的风险账户与合法账户,利用机器学习模型对以太坊区块链中的账户进行风险识别,识别出其中的风险账户,以确保以太坊区块链中交易的安全性。
56.图1是本说明书一个实施例中以太坊区块链中账户的风险识别方法的流程示意图,如图1所示,本说明书提供的以太坊区块链中账户的风险识别方法可以应用于服务器、客户端如:计算机、智能手机、智能穿戴设备、平板电脑等终端设备中,所述方法包括:
57.步骤102、根据以太坊区块链中待识别账户的目标账户地址,获取所述待识别账户的目标交易信息。
58.在具体的实施过程中,在以太坊区块链中每个账户对应有一个账户地址,可以通过账户地址获取到该账户的所有交易信息。在对待识别账户进行风险识别时,可以先从以太坊区块链中获取该待识别账户的目标账户地址,再基于目标账户地址获取到待识别账户的目标交易信息。待识别账户可以理解为需要进行风险识别或检测的账户,目标交易信息可以是待识别账户在指定时间范围内的交易数据,可以根据实际应用需求设置获取目标交易信息的时间范围,在实际使用时,还可以设置以太坊区块链的账户风险识别频率,每隔指
定时间对以太坊区块链中的账户依次进行风险识别,或者,针对特定的账户进行风险识别,本说明书实施例不做具体限定。
59.步骤104、将所述目标交易信息输入到预先建立的账户风险识别模型,利用所述账户风险识别模型基于所述目标交易信息提取所述待识别账户的账户特征,并根据提取到的账户特征对所述待识别账户进行风险识别;其中,所述账户风险识别模型基于历史风险账户的交易信息以及历史正常账户的交易信息进行模型训练获得。
60.在具体的实施过程中,本说明书实施例可以预先利用历史风险账户的交易信息以及历史正常账户的交易信息进行机器学习模型的训练,构建出能够对以太坊区块链中的账户进行风险识别的账户风险识别模型。在需要对待识别账户进行风险识别时,再使用训练好的账户风险识别模型对待识别账户进行风险识别。其中,账户风险识别模型使用的机器学习算法可以根据实际需要进行选择,如:可以使用神经网络算法、随机森林算法等,本说明书实施例不做具体限定。
61.本说明书实施例主要是识别以太坊区块链中账户是安全账户还是风险账户,基于此,本说明书实施例中的账户风险识别模型可以选择分类器模型如:xgboost(extreme gradient boosting,极端梯度提升)分类器,是梯度提升树算法的一种高效实现。在构建xgboost分类器时,可以首先构造目标函数,然后使用泰勒级数对目标函数进行展开,把目标函数转换为与预测残差相关的多项式函数进行计算。其核心思想是通过不断向模型中添加基分类器,以此不断拟合前一次预测结果的残差,最后将所有基分类器的结果进行加权整合得到最终结果。当然,根据实际使用需求,还可以采用其他的机器学习算法构建账户风险识别模型,本说明书实施例不做具体限定。
62.本说明书一些实施例中,所述账户风险识别模型的构建方法可以包括:
63.采集历史风险账户的账户地址和历史正常账户的账户地址;
64.基于所述历史风险账户的账户地址获取历史风险账户的交易信息,基于所述历史正常账户的账户地址获取历史正常账户的交易信息;
65.对所述历史风险账户的交易信息进行特征提取,获得风险账户特征集合,对所述历史正常账户的交易信息进行特征提取,获得正常账户特征集合;
66.利用所述风险账户特征集合和所述正常账户特征集合对所述账户风险识别模型进行模型训练,获得所述账户风险识别模型。
67.在具体的实施过程中,可以分别选择一部分历史风险账户和一部分历史正常账户作为样本,采集历史风险账户的账户地址和历史正常账户的账户地址,再基于账户地址获取对应的历史风险账户的交易信息和历史正常账户的交易信息。对获取到的交易信息进行特征提取,提取出风险账户特征集合和正常账户特征集合,分别作为正样本集合和负样本集合。利用提取到的风险账户特征集合和正常账户特征集合对账户风险识别模型进行模型训练,可以预先构建出账户风险识别模型的目标函数、约束条件等,再将风险账户特征集合和正常账户特征集合中的数据输入到模型中,对模型的目标函数或约束条件中的参数进行调整,直至模型的识别精度满足预设要求或训练次数满足预设要求,完成模型训练的过程,最后获得的模型记为账户风险识别模型。
68.利用历史已知存在风险的账户和已经确认属于安全账户的数据作为样本进行机器学习模型的训练,再利用训练好的模型对待识别账户进行风险识别即可以实现对以太坊
区块链中风险账户的识别,确保以太坊区块链中账户交易的安全性。
69.本说明书一些实施例中,所述利用所述风险账户特征集合和所述正常账户特征集合对所述账户风险识别模型进行模型训练,获得所述账户风险识别模型,包括:
70.将所述风险账户特征集合和所述正常账户特征集合输入到账户风险识别模型中,进行模型训练,利用网格搜索确定出所述账户风险识别模型的目标模型参数组合;
71.基于所述目标模型参数组合获得账户风险识别模型。
72.在具体的实施过程中,在进行模型训练时,将风险账户特征集合和正常账户特征集合中的数据输入到模型中后,可以以auc(area under the curve of roc)为模型性能评分标准,利用网格搜索对模型参数进行寻优,确定出最佳的模型参数组合,将最佳的模型参数组合带入到模型中即可以获得训练好的模型。网格搜索法可以指定参数值的一种穷举搜索方法,通过将估计函数的参数通过交叉验证的方法进行优化来得到最优的学习算法。即,将各个参数可能的取值进行排列组合,列出所有可能的组合结果生成“网格”,然后将各组合用于训练,并使用交叉验证对表现进行评估。在拟合函数尝试了所有的参数组合后,返回一个合适的分类器,自动调整至最佳参数组合。本说明书实施例中最佳的模型参数组合记为目标模型参数组合,模型参数可以理解为机器学习模型中的影响模型性能的参数。例如:对于xgboost分类器的模型参数可以包括:学习率learning_rate、最大深度max_depth以及弱分类器数量n_estimators等重要参数。
73.利用网格搜索确定最佳的模型参数组合从而获得识别结果最准确的账户风险识别模型,为后续以太坊区块链中账户的风险识别奠定了数据基础。
74.本说明书一些实施例中,所述方法还包括:
75.利用所述账户风险识别模型计算各个账户特征的平均增益率;
76.根据各个账户特征的平均增益率从高到低对各个账户特征进行排序,将排序在前指定名次的账户特征作为风险识别账户特征;
77.所述利用所述账户风险识别模型基于所述目标交易信息提取所述待识别账户的账户特征,并根据提取到的账户特征对所述待识别账户进行风险识别,包括:
78.利用所述账户风险识别模型基于所述目标交易信息提取所述待识别账户的账户特征后,筛选出所述风险识别账户特征中与所述风险识别账户特征相同的账户特征,所述账户风险识别模型利用筛选后的账户特征对所述待识别账户进行风险识别。
79.在具体的实施过程中,在模型训练结束时,可以根据平均增益率对输入模型的各个账户特征做重要性排序,平均增益率可以理解为该特征历次分裂树模型时的增益率之和的平均值。对于xgboost分类器,可以通过xgboost的python包中的get_score来得到各个特征的重要性,通过设定importance_type=’gain’即可得到各个特征的平均增益率排序。
80.所得特征排序可以被用于改进特征的选取,如:可以将平均增益率从高到低对各个账户特征进行排序,将排序在前指定名次的账户特征作为风险识别账户特征。在运行性能较为有限的情况下,对账户进行判断时,可以选取排序较为靠前的账户特征即选择待识别账户的账户特征中的风险识别账户特征进行运算,去掉排名靠后的特征,以减少模型的计算时间。此外,排名靠前的特征是更多异常账户的共性特征,该特征排序可以用于对风险行为特征的分析。
81.通过平均增益率对账户特征进行筛选,减少了模型的计算量,提升了模型的计算
速度,进而提升了以太坊区块链中账户风险识别的速度。
82.本说明书一些实施例中,所述采集历史风险账户的账户地址可以包括:
83.从风险账户数据库中获取风险账户的初选账户地址,或在风险行为监督平台或以太坊区块链浏览器中通过查询风险关键词,获取风险账户的初选账户地址;
84.在获取到风险账户的初选账户地址后,对初选账户地址进行查重,将重复的初选账户地址删除,获得风险账户的账户地址。
85.在具体的实施过程中,可以通过风险账户数据库来采集风险账户的账户地址,风险数据库可以理解为存储有存在非法行为账户信息的数据库,还可以通过专门对风险行为进行监控的风险行为监督平台上通过输入对应的风险关键词或者直接在以太坊区块链的浏览器中输入风险关键词进行风险账户的账户地址的查询。
86.例如:可以利用cryptoscamdb来采集风险账户的账户地址,cryptoscamdb(cryptoscamdb.org)是一个专门收集与加密货币相关的非法活动如:骗局活动报告的开源数据库,其会记录与加密货币骗局活动相关的url等信息及相关联的加密货币地址,以太坊的相关骗局也被包含在其数据库中,如表1所示,表1是cryptoscamdb提供的骗局数据库中的一条骗局数据。通过该网站的接口可以收集到多个用于骗局活动的以太坊地址。或者,通过alienvault平台来采集风险账户的账户地址,alienvault是一个开放的网络威胁情报平台,其提供了大量关于骗局和攻击行为的报告,通过调用该平台api或直接在该平台上搜索ethereum等关键字,可以获得关于以太坊的报告,从而得到骗局的以太坊地址即风险账户的账户地址。此外,可以在以太坊浏览器etherscan上,搜索phish、heist、scam、hack等关键字来获得已经被标记了相关标签的恶意账户地址。
87.表1
[0088][0089]
通常,不同的骗局活动可能会使用同一个加密货币地址,在收集得到风险账户的相关地址后,可以对账户地址进行查重,对于重复的账户地址可以只保留一个,以得到不同的地址,将所有收集到的这些地址标记为风险账户地址,并加入到账户地址数据集中。
[0090]
通过风险账户数据库或相关的平台,可以快速得到已知风险的账户地址,为后续机器学习模型的训练提供了数据基础。
[0091]
本说明书一些实施例中,所述历史正常账户的账户地址的采集方法包括:
[0092]
从以太坊区块中采集交易发送者的以太坊地址作为备用账户地址;
[0093]
将备用账户地址去重后与采集到的历史风险账户的账户地址进行比对,将与所述
历史风险账户的账户地址相同的备用账户地址删除,剩余的备用账户地址作为所述历史正常账户的账户地址。
[0094]
在具体的实施过程中,对于正常账户的账户地址的采集可以直接在以太坊区块中收集,直接采集以太坊区块中交易发送者的以太坊地址作为备用账户地址,将备用账户地址去重后,与历史风险账户的账户地址进行比对,删除其中的风险账户的账户地址,剩余的备用账户地址记为历史正常账户的账户地址。此外,本说明书实施例中可能会涉及到erc20交易的账户识别,而以太坊erc20标准在2017年9月才被正式纳入以太坊规范中,在其被纳入规范后人们可能还需要一段时间去了解后才会使用,所以在收集正常使用的合法地址时应当尽量选择在这一时间节点之后仍然保持活跃的账户。可以利用web3.py工具读取以太坊节点存储的信息,通过随机选择在2017年9月以后生成的以太坊区块,并将区块中记录的所有交易的发送者的以太坊地址收集起来作为备选的正常使用的合法账户地址,并去除其中重复的地址,以保证备选地址中每一个地址都是不同的。将这些备选地址与已经收集的被用作骗局的风险账户的账户地址进行比较,去除备选地址中出现的骗局地址,余下的所有地址即被认为是作为负样本使用的暂定合法账户即正常账户的账户地址。正常账户的账户地址的收集数量可以与风险账户的账户地址的数量相近,并且,可以将所收集的所有合法账户地址标记后,加入到账户地址数据集中,表2可以理解为账户地址集合,如表2所示,每个账户地址可以对应有一个标签,其中标记为0的是合法地址即正常账户的账户地址,标记为1的是骗局地址即风险账户的账户地址。
[0095]
表2
[0096][0097]
通过直接在区块链中采集账户地址,将采集到的账户地址与风险账户地址进行比较,删除其中的骗局地址,即获取到正常账户的账户地址,不需要专门对正常账户进行识别和获取,提升了数据采集的效率,为后续模型的训练提供了数据基础。
[0098]
获取到账户地址后,可以基于账户地址获取对应账户的交易信息,以太坊浏览器etherscan提供了大量api以查询浏览以太坊主网上的各类信息,其中包括对于以太坊账户历史数据的查询api,通过这些api可以收集对应各个以太坊账户地址的普通交易、内部交易、erc20交易的相关信息。需要注意的是,相关api只返回目标地址最近的10000次特定类型的交易,不过10000次交易提供的信息足够本方法使用,该限制对于本方法的结果没有实质影响。
[0099]
构建出账户风险识别模型后,在使用账户风险识别模型对待识别账户进行风险识别时,可以将获取到的待识别账户的目标交易信息输入到账户风险识别模型中,利用账户风险识别模型对目标交易信息进行特征提取,提取出待识别账户的账户特征,再利用风险识别模型基于提取出的账户特征对待识别账户进行风险识别。
[0100]
步骤106、根据所述账户风险识别模型输出的风险识别结果,确定所述待识别账户是否属于风险账户。
[0101]
在具体的实施过程中,图2是本说明书一个实施例中账户风险识别模型进行账户风险识别的流程示意图,如图2所示,账户风险识别模型主要有两个功能,一个是账户特征的提取,一个基于提取到的账户特征进行账户的分类识别。在获得待识别账户的目标账户地址后,可以将目标账户地址直接输入到账户风险识别模型中,或者也可以先基于账户地址获取到对应的交易信息,再利用账户风险识别模型进行特征提取和是否属于异常地址的判断,基于模型的输出结果,可以确定出待识别账户是否属于风险账户。模型可以直接输出待识别账户的风险标签,如:若输出为0则说明是正常账户,若输出1则说明是风险账户。账户风险识别模型还可以输出待识别账户的风险程度的分值,分值越高则说明属于风险账户的可能性越大,具体可以根据实际使用需求对模型进行配置,本说明书实施例不做具体限定。
[0102]
本说明书实施例提供的以太坊区块链中账户的风险识别方法,利用历史风险账户和历史安全账户的交易信息进行模型训练,构建出账户风险识别模型,再利用构建出的账户风险识别模型对待识别账户的账户特征进行提取和风险预测,实现对以太坊区块链中风险账户的识别,提升了以太坊区块链中账户使用的安全性。利用本说明书实施例提供的方法可以实现对以太坊区块链中的账户进行识别分类,有助于进一步对行骗者的追责和对受害者的补救。本说明书实施例提供的方法能够在检测风险账户时具有较高的有效性,并且可以对各个特征的重要性进行排名,为进一步改进方法或对类似区块链做分析提供参考和启发。
[0103]
此外,本说明书实施例中账户特征的提取中,提取到的账户特征主要可以包括统计特征和交易类型特征,所述统计特征包括:交易金额特征、交易次数特征、交易时间特征。
[0104]
在具体的实施过程中,本说明书实施例可以从两个维度分别提取出账户的特征,第一个维度为针对账户地址交易历史的统计特征,称为宽度-广度-时间特征选取策略(width-breadth-time strategy)即wbts,表3是本说明书一些实施例中的部分账户特征,图3是本说明书一个实施例中特征选取策略的示意图,如图3以及表3所示,对于统计特征的提取主要可以从以下方面考虑:
[0105]
(1)账户发生的历史交易的宽度特征即交易金额特征。视账户为节点,交易为账户之间的连接通道,账户在交易时的转账金额的大小为交易宽度,则可以统计获得该账户的交易宽度类特征。
[0106]
如:账户的余额,账户收到的总转账额,账户发送的总转账额,账户收到的最小转账额,账户发送的最小转账额,账户收到的最大转账额,账户发送的最大转账额,账户收到的平均转账额,账户发送的平均转账额,等等。
[0107]
(2)账户发生的历史交易的广度特征即交易次数特征。视账户为节点,交易连接账户,则对于同一账户连接了多少不同账户进行统计可以得到该账户的交易广度类特征。
[0108]
如:账户收到的转账数,账户发送的转账数,账户共收到来自多少个不同地址的转账,账户共给多少个不同地址发送过转账,等等。
[0109]
(3)账户地址交易的时间特征即交易时间特征。对于不同账户,其发生交易的频率是不同的,账户的活跃时间范围也是不同的,由此统计账户发生交易的时间相关特征。
[0110]
如:账户收到转账的平均时间,账户发出转账的平均时间,第一次收到转账到最后一次收到转账的时间跨度,第一次发送转账到最后一次发送转账的时间跨度,第一次发生转账到最后一次发生转账的时间跨度,等等。
[0111]
此外,还可以考虑其他类型特征,此部分特征主要用于补充前三类特征中不包括、但又有一定意义的特征。如:账户交易成功的次数,账户交易失败的次数,等等。
[0112]
表3
[0113][0114]
一般的,被用于骗局的账户在骗局形成初期会在短时间内收到大量受害者的转账,而骗局地址在转出时通常会希望以较少的转账来转移赃款,以少支付gas费用。本说明书实施例,提取账户的交易金额特征、交易次数特征以及交易时间特征,可以分析出风险账户在使用时间、转账额大小、转账的出入度等方面与正常使用的账户存在差异,从而能够准确识别出风险账户。
[0115]
第二个维度为针对以太坊的交易类型特征,图4是本说明书一个实施例中以太坊区块链中账户的交易类型特征示意图,如图4所示,根据以太坊自身的特性,可以把账户地址之间的交易类型划分为普通交易、内部交易、erc20交易。表4是本说明书一些实施例中提取到的账户特征,如表4所示,结合第一个维度提取到的特征,对应三种不同的交易类型特征,还可以分别提取交易金额特征、交易次数广度特征、交易时间特征以及其他特征,从而形成十二类特征。
[0116]
其中,erc20其实就是一种货币协议,它能够发行很多的可代替性通行证,然后用这些东西就能够代表很多东西,比如说证件、积分或者是代币等等。erc(etherum request for comments)表示以太坊开发者提交的协议提案,而20表示的是议案的编号。
[0117]
表4
[0118] 普通交易内部交易erc20交易交易宽度类普通交易宽度特征内部交易宽度特征erc20交易宽度特征交易广度类普通交易广度特征内部交易广度特征erc20交易广度特征交易时间类普通交易时间特征内部交易时间特征erc20交易时间特征其他类普通交易其他特征内部交易其他特征erc20交易其他特征
[0119]
本说明书实施例从不同的维度对账户特征进行提取,全面覆盖风险账户的账户特征,进而能够准确学习风险账户的特性,为准确识别以太坊区块链中的风险账户奠定了数据基础。
[0120]
为验证本说明书实施中提供的以太坊区块链中账户的风险识别方法的可用性,本说明书实施例还提供了具体应用的实验过程:实验在cpu为8核inter core i5-9300h2.40ghz,内存为8g,运行win10的aspire a715-74g计算机上进行。
[0121]
数据采集部分采用cryptoscamdb提供的数据提取风险账户的账户地址,用web3.py工具从infura提供的以太坊远程节点获取备选合法地址。通过etherscan对每个地址的查询交易记录得到历史数据,再根据本方法中的特征提取算法对每个账户提取账户特征,形成训练数据集。
[0122]
利用网格搜索,可以确定在本次实验数据集下学习率为0.2、最大深度为5、弱分类器个数为280时,10折交叉验证的平均auc值最大,此时auc值的评分如表1。平均训练时间为10.3756秒,平均auc评分为0.992034,auc评分标准差为0.00230191。表5是本说明书一个实施例中网格搜索的结果,如表5所示,可知本方法具有较高的准确性和可行性,能够较为准确地区分骗局地址与合法地址。
[0123]
表5
[0124]
nameaucsplit0_test_score0.991337split1_test_score0.995122split2_test_score0.993343split3_test_score0.987229split4_test_score0.995007split5_test_score0.989108split6_test_score0.992601split7_test_score0.992016split8_test_score0.992684split9_test_score0.991895mean_test_score0.992034
[0125]
通过对比特征的平均增益率,可以得出各个特征对模型的重要性排序,每次运行的结果不同可能会导致各个特征的排名不完全相同,但各个特征的排名波动的大致区间基本一致。对特征重要性的排序可以用于分析风险账户的账户地址的行为特征,进一步改善特征的选取和改进方法。表6列举了实验排名前20的账户特征,可以看出,关于时间跨度的特征对于区分某账户是否为被用作骗局的账户时有很重要的意义。
[0126]
表6
[0127][0128][0129]
基于上述所述的以太坊区块链中账户的风险识别方法,本说明书一个或多个实施例还提供一种以太坊区块链中账户的风险识别装置。所述装置可以包括使用了本说明书实施例所述方法的装置(包括分布式系统)、软件(应用)、模块、插件、服务器、客户端等并结合必要的实施硬件的装置。基于同一创新构思,本说明书实施例提供的一个或多个实施例中的装置如下面的实施例所述。由于装置解决问题的实现方案与方法相似,因此本说明书实施例具体的装置的实施可以参考前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0130]
图5是本说明书一个实施例中以太坊区块链中账户的风险识别装置的结构示意图,如图5所示,所述装置包括:
[0131]
信息获取模块501,用于根据以太坊区块链中待识别账户的目标账户地址,获取所述待识别账户的目标交易信息;
[0132]
机器学习模型识别模块502,用于将所述目标交易信息输入到预先建立的账户风险识别模型,利用所述账户风险识别模型基于所述目标交易信息提取所述待识别账户的账
户特征,并根据提取到的账户特征对所述待识别账户进行风险识别;其中,所述账户风险识别模型基于历史风险账户的交易信息以及历史正常账户的交易信息进行模型训练获得;
[0133]
账户风险识别模块503,用于根据所述账户风险识别模型输出的风险识别结果,确定所述待识别账户是否属于风险账户。
[0134]
此外,本说明书一些实施例中,所述装置还包括模型构建模块,用于采用下述方法构建所述账户风险识别模型:
[0135]
采集历史风险账户的账户地址和历史正常账户的账户地址;
[0136]
基于所述历史风险账户的账户地址获取历史风险账户的交易信息,基于所述历史正常账户的账户地址获取历史正常账户的交易信息;
[0137]
对所述历史风险账户的交易信息进行特征提取,获得风险账户特征集合,对所述历史正常账户的交易信息进行特征提取,获得正常账户特征集合;
[0138]
利用所述风险账户特征集合和所述正常账户特征集合对所述账户风险识别模型进行模型训练,获得所述账户风险识别模型。
[0139]
上述装置部分的实施例参考方法部分的实施例还可以有其他的实施例,此处不做过多赘述。
[0140]
另一方面,本说明书实施例一种计算机可读存储介质,所述存储介质中存储有至少一条指令或者至少一段程序,所述至少一条指令或者至少一段程序由处理器加载并执行以实现如上述所述的以太坊区块链中账户的风险识别方法。
[0141]
再一方面,本说明书实施例提供一种以太坊区块链中账户的风险识别的电子设备,图6示出了本文实施例提供的一种以太坊区块链中账户的风险识别的电子设备的结构示意图,如图6所示,所述设备包括处理器、存储器、通信接口以及总线,所述存储器中存储有至少一条指令或者至少一段程序,所述至少一条指令或者至少一段程序由所述处理器加载并执行以实现如上述任一所述的以太坊区块链中账户的风险识别方法。
[0142]
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。本发明实施例所提供测试方法,其实现原理及产生的技术效果和前述系统实施例相同,为简要描述,方法实施例部分未提及之处,可参考前述系统实施例中相应内容。
[0143]
应理解,在本文的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本文实施例的实施过程构成任何限定。
[0144]
还应理解,在本文实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0145]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本文的范围。
[0146]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0147]
在本文所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
[0148]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本文实施例方案的目的。
[0149]
另外,在本文各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0150]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本文的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本文各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0151]
本文中应用了具体实施例对本文的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本文的方法及其核心思想;同时,对于本领域的一般技术人员,依据本文的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本文的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献