掌桥专利:专业的专利平台
掌桥专利
首页

一种端到端的以太坊钓鱼账户检测方法和系统

文献发布时间:2023-06-19 11:49:09


一种端到端的以太坊钓鱼账户检测方法和系统

技术领域

本发明涉及以太坊区块链平台,尤其涉及一种端到端的以太坊钓鱼账户检测方法和系统。

背景技术

区块链是一种实现去中心化、加密和防篡改功能的基础技术,受益于其的匿名性,近年来,基于区块链技术的加密货币的收到了广泛的关注。截至第一季度到2021年,将有8700多种加密货币,总市值达到17,210亿美元。人们只需要创建一个假名帐户就可以执行交易,而且账户的创建基本都是免费的。因此,在如此大量交易的背景下,区块链加密货币系统也已成为非法和犯罪行为的温床,包括各种骗局(庞氏骗局、采矿骗局、骗局钱包、欺诈交易等)、洗钱、滥用机器人帐户以及漏洞攻击等等。

以太坊作为当前市值第二高的加密货币也避免不了这些问题,其中钓鱼诈骗是一种常见的非法行为,诈骗者通过将网站设计成和一些知名钱包、交易所一致来钓取用户信息,甚至还会通过“空投”、“赠送数字资产”的方式诱骗毫无戒心、不明真相的散户自愿提供个人敏感信息,进而牟取不当利益。由于其与普通钓鱼诈骗的差异性,常见的基于电子邮件检测和网站检测的钓鱼诈骗检测方式并不适用于这一背景。因此得益于区块链交易数据完全公开且不可篡改的特性,我们考虑结合网络科学领域的方法,从交易网络中学习钓鱼账户和正常账户的行为模式的差异性,进而实现钓鱼诈骗的检测。

现有的一些基于网络的钓鱼诈骗分析手段主要是基于手工特征和图嵌入算法,手工特征通常需要充分的专业知识,分类性能取决于特征设计;图嵌入算法在如此大规模的数据上需要庞大的计算资源和存储资源,而且需要再额外训练一个分类器配合进行。

公开号为CN111447179A的一种针对以太网钓鱼诈骗的网络表示学习方法,通过提取钓鱼账户的一阶交易网络并利用tran2vec方法生成账户的嵌入向量,该方法提取的一阶交易网络需要全部组合成一个大的网络,因为tran2vec方法中需要在这个大网络中进行游走,所以这是十分消耗计算空间与时间的,其次该方法训练生成的账户嵌入向量仍然需要再训练一个分类器来进行钓鱼账户的检测,不能实现端到端的快捷性。

发明内容

本发明要克服上述现有技术所述的不足,提供一种端到端的以太坊钓鱼账户检测方法,不仅从交易子图的角度出发减小资源的损耗,同时实现了端到端的问题解决方案。

本发明提供一种端到端的以太坊钓鱼账户检测方法,包括如下步骤:

S1:从交易记录中采样目标账户的二阶交易网络,账户包括钓鱼账户和非钓鱼账户;

S2:从智能合约调用历史记录中筛选出经常被调用的合约,并为所有二阶网络的中的账户提取合约调用特征;

S3:通过图神经网络学习账户的交易行为模式,并实现端到端的账户分类,将钓鱼账户分类出来。

优选地,所述步骤S1具体包括:

S1-1:从目标账户开始采样其二阶交易网络,如果目标账户的交易对象账户数量少于20个,保留这些交易对象账户并分别计算它们和目标账户的总交易量作为边的权重;如果目标账户的交易对象账户多于20个,则以它们和目标账户之间的总交易量进行倒序采样前20个交易量最大的交易对象账户,并分别计算它们和目标账户的总交易量作为边的权重,该采样方法也适用于通过一阶交易对象账户采样二阶交易对象账户;

S1-2:某个目标账户的二阶交易网络可以用一个三元组表示为G=(V,F,y),其中V为该网络的节点集合且节点数量少于400,E为带权边集合,其中的边都以(v

优选地,所述步骤S2具体包括:

S2-1:统计以太坊部署的智能合约和被外部用户调用的次数,忽略合约之间的调用,并保留前10000个被调用次数最多的智能合约;

S2-2:从合约调用历史记录中统计所有S1中采样所得二阶交易网络中的节点对这10000个智能合约的调用情况,每个节点的合约调用特征可以表示为

优选地,所述步骤S3具体包括:

S3-1:将所有目标账户的二阶交易网络转化为带权值的邻接矩阵Adjs={A

其中e

S3-2:将所有邻接矩阵和对应的特征矩阵和标签进行一一对应组成n个数据样本,每个数据样本可以表示为一个三元组S

其中

Z=Softmax(MaxPooling(X′)W

上述所有可训练参数通过最小化如下目标损失函数函数并利用梯度下降法优化更新:

其中z

本发明还提供一种端到端的以太坊钓鱼账户检测系统,包括:网络提取模块、特征提取模块、数据整合模块,训练模块、钓鱼账户检测模块;

所述网络提取模块用于对输入的目标账户提取二阶交易网络;

所述特征提取模块用于从合约调用记录中提取所有二阶交易网络节点的合约调用特征;

所述整合模块用于整合网络结构数据和特征数据并统一放入数据池之中;

所述训练模块用于从数据池中抽取训练数据训练用来检测钓鱼账户的图神经网络;

所述钓鱼账户检测模块用于从数据池中抽取需要检测的目标账户,并通过训练好的图神经网络来预测它是否是一个钓鱼账户;

本发明的有益效果为:

1.通过提取账户的二阶交易网络有效避免了使用完整网络数据所需要的庞大存储损耗和运算损耗;

2.通过深度图神经网络有效避免了对专业知识的高要求,简便高效;

3.通过图神经网络实现了端到端的钓鱼账户检测方案,从整体上解决钓鱼账户检测问题,不需要拆分进行多次训练,提高资源的利用率。

4.本发明提出的钓鱼账户检测方法精度优于现有的手工特征和图嵌入的检测方法。

附图说明

图1为本发明方法的流程图和系统结构图;

图2为本发明方法的图神经网络结构示意图。

具体实施方式

下面将结合本实施例中的附图,对本发明实施例中的技术方法进行清楚完整地描述。对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参照图1所示,本发明提供一种端到端的以太坊钓鱼账户检测方法及系统,包括以下步骤:

S1:从交易记录中采样目标账户的二阶交易网络,账户包括1660个钓鱼账户和1700个非钓鱼账户,具体包括:

S1-1:从目标账户开始采样其二阶交易网络,如果目标账户的交易对象账户数量少于20个,保留这些交易对象账户并分别计算它们和目标账户的总交易量作为边的权重;如果目标账户的交易对象账户多于20个,则以它们和目标账户之间的总交易量进行倒序采样前20个交易量最大的交易对象账户,并分别计算它们和目标账户的总交易量作为边的权重,该采样方法也适用于通过一阶交易对象账户采样二阶交易对象账户;

S1-2:某个目标账户的二阶交易网络可以用一个三元组表示为G=(V,E,y),其中V为该网络的节点集合且节点数量少于400,E为带权边集合,其中的边都以(v

S2:从智能合约调用历史记录中筛选出经常被调用的合约,并为所有二阶网络的中的账户提取合约调用特征,具体包括:

S2-1:统计以太坊部署的智能合约和被外部用户调用的次数,忽略合约之间的调用,并保留前10000个被调用次数最多的智能合约;

S2-2:从合约调用历史记录中统计所有S1中采样所得二阶交易网络中的节点对这10000个智能合约的调用情况,每个节点的合约调用特征可以表示为

S3:通过图神经网络学习账户的交易行为模式,并实现端到端的账户分类,将钓鱼账户分类出来,具体包括:

S3-1:将所有目标账户的二阶交易网络转化为带权值的邻接矩阵Adjs={A

其中e

S3-2:将所有邻接矩阵和对应的特征矩阵和标签进行一一对应组成3360个数据样本,每个数据样本可以表示为一个三元组S

其中

Z=Softmax(MaxPooling(X′)W

上述所有可训练参数通过最小化如下目标损失函数函数并利用梯度下降法优化更新:

其中z

经过训练后的图神经网络在测试数据中检测钓鱼账户的精度能够达到85.9%;

本发明还提供一种端到端的以太坊钓鱼账户检测系统,包括:网络提取模块、特征提取模块、数据整合模块,训练模块、钓鱼账户检测模块;

所述网络提取模块用于对输入的目标账户提取二阶交易网络;

所述特征提取模块用于从合约调用记录中提取所有二阶交易网络节点的合约调用特征;

所述整合模块用于整合网络结构数据和特征数据并统一放入数据池之中;

所述训练模块用于从数据池中抽取训练数据训练用来检测钓鱼账户的图神经网络;

所述钓鱼账户检测模块用于从数据池中抽取需要检测的目标账户,并通过训练好的图神经网络来预测它是否是一个钓鱼账户;

本发明不仅从交易子图的角度出发减小资源的损耗,同时实现了钓鱼账户检测的端到端解决方案。

相关技术
  • 一种端到端的以太坊钓鱼账户检测方法和系统
  • 一种钓鱼网页的检测方法及系统、客户端、服务器
技术分类

06120113065975