利索能及
我要发布
收藏
专利号: 2021103599537
申请人: 浙江工业大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-08-19
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种端到端的以太坊钓鱼账户检测方法,其特征在于:包括:S1:从交易记录中采样目标账户的二阶交易网络,账户包括钓鱼账户和非钓鱼账户;

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

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

2.如权利要求1所述的端到端的以太坊钓鱼账户检测方法,其特征在于,所述S1具体包括:

S1‑1:从目标账户开始采样其二阶交易网络,如果目标账户的交易对象账户数量少于

20个,保留这些交易对象账户并分别计算它们和目标账户的总交易量作为边的权重;如果目标账户的交易对象账户多于20个,则以它们和目标账户之间的总交易量进行倒序采样前

20个交易量最大的交易对象账户,并分别计算它们和目标账户的总交易量作为边的权重,该采样方法也适用于通过一阶交易对象账户采样二阶交易对象账户;

S1‑2:某个目标账户的二阶交易网络可以用一个三元组表示为G=(V,E,y),其中V为该网络的节点集合且节点数量少于400,E为带权边集合,其中的边都以(vi,vj,eij)形式保存,其中vi,vj∈V,eij为该边的权重对应于两个节点间的交易总量,y是该网络对应目标账户的实际标签,y=0表示这是一个非钓鱼账户的二阶交易网络,y=1表示这是一个钓鱼账户的二阶交易网络。

3.如权利要求1所述的端到端的以太坊钓鱼账户检测方法,其特征在于,所述S2具体包括:

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

S2‑2:从合约调用历史记录中统计所有S1中采样所得二阶交易网络中的节点对这

10000个智能合约的调用情况,每个节点的合约调用特征可以表示为 每一个二阶交易网络的合约调用特征矩阵可以表示为 其中|V|表示该节点集合的节点数量。

4.如权利要求1所述的端到端的以太坊钓鱼账户检测方法,其特征在于,所述S3具体包括:

S3‑1:将所有目标账户的二阶交易网络转化为带权值的邻接矩阵Adjs={A1,A2,...An},其中n为已知非钓鱼账户和钓鱼账户的数量,其中第i个邻接矩阵 的第j行第k列位置的值可以表示为:其中ejk为节点vj,vk∈Vi之间的边的权重;

S3‑2:将所有邻接矩阵和对应的特征矩阵和标签进行一一对应组成n个数据样本,每个数据样本可以表示为一个三元组Si=(Ai,Xi,yi),并将所有数据样本S={S1,S2,...,Sn}划分为训练集和测试集,训练集数据通过两个图卷积层聚合账户特征信息:其中 是归一化后的邻接矩阵,增加自环后的邻接矩阵 按列求和所得向量转化的max

对角矩阵,D 也是一个对角矩阵, 即对角位置为邻接矩阵A对应行的最大值, 和 为可训练的权重矩阵,p和q为中间层维度,ReLU为非线性的激活函数,最终通过一个最大池化层将节点特征池化为图特征,并进一步训练一个全连接层利用特征区分钓鱼账户和非钓鱼账户:(2)

Z=Softmax(MaxPooling(X′)W +b)          (6)其中MaxPooling(·)为矩阵按列取最大值, 和 分别为可训练权重矩阵和偏置矩阵,Z为最终预测结果的概率矩阵;

上述所有可训练参数通过最小化如下目标损失函数函数并利用梯度下降法优化更新:其中zi为第i个样本检测为钓鱼账户的概率。

5.实现权利要求1所述的一种端到端的以太坊钓鱼账户检测系统,包括:网络提取模块、特征提取模块、数据整合模块,训练模块、钓鱼账户检测模块;

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

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

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

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

所述钓鱼账户检测模块用于从数据池中抽取需要检测的目标账户,并预测它是否是一个钓鱼账户。