# Who Are the Phishers? Phishing Scam Detection on Ethereum via Network Embedding
## TLDR
> 区块链上的钓鱼骗局可以赚取可观的金钱,从而成为对区块链生态系统交易安全的严重威胁。为了营造良好的投资环境,区块链生态系统迫切需要一种有效的钓鱼诈骗检测方法。为此,本文提出了一种通过挖掘以太交易记录来检测以太网络钓鱼诈骗的方法。具体地说,我们首先从两个授权网站抓取标注好的钓鱼地址,并根据收集到的交易记录重构交易网络。然后,在综合考虑交易金额和时间戳的基础上,提出了一种新的网络嵌入算法trans2vec来提取地址特征,用于后续的网络钓鱼识别。最后,采用单类支持向量机(SVM)对节点进行分类,将其分为正常节点和钓鱼节点。实验结果表明,该钓鱼检测方法在以太上是有效的,并且表明了trans2vec算法在交易网络特征提取方面的有效性。这项工作是首次通过网络嵌入在Etherum上进行网络钓鱼检测的研究,并为如何嵌入大规模交易网络的功能提供了深入的见解。
## Research Team
Jiajing Wu , Senior Member, IEEE, Qi Yuan, Dan Lin , Wei You, Weili Chen , Chuan Chen , Member, IEEE, and Zibin Zheng , Senior Member, IEEE
## Keyword
Blockchain, Ethereum, phishing detection, network embedding.
## 1. 问题描述
设G=(V,E),其中V表示节点集,E表示边集。每个节点代表一个地址,每条边表示一对地址之间的以太交易。两个节点之间的每条边被分配有它们之间的最后一笔交易的总转移量和时间戳。G_L=(V,E,X,Y)是部分带标签的网络,具有边属性X∈R^(|E|×S),其中S是每条边的特征空间的大小,Y∈R^(|V|×|y|)其中y是标签集。在以太交易网络中,每条边都包含两个关键属性,即交易量和时间戳。对于钓鱼地址识别场景,y包含两个标签,即钓鱼节点+1,正常样本−1。
为了更好地捕捉以太交易网络中的信息,我们提出了一种有偏网络嵌入算法,该算法综合了每条边的交易量和时间戳。
网络嵌入算法的目标是学习所有节点X_E∈R^(|V|×d)的嵌入,其中d是特征表示的维数。获得的节点嵌入可以用作下游分类任务的特征输入。针对交易网络提出基于随机游走的网络嵌入方法trans2vec。
使用单类SVM的无监督异常检测方法,将这个问题转化为一个单一的分类任务。这样,钓鱼节点的行为就可以在合适的特征空间中与其他节点区分开来,而钓鱼节点的检测任务就是“离群点检测”或“一类分类”,其目的是找到目标周围的决策面。位于该决策面内部的节点被分类为目标(即,网络钓鱼节点),而位于外部的节点被分类为异常值(即,其他节点)。

## 2. 特征学习过程
网络嵌入的目的是学习从节点到节点嵌入 **(f:v -> R^(|V|×d))** 的映射函数,最大化d维特征空间中相邻节点共同出现(co-occurrence)的可能性。
嵌入过程主要由两部分组成:第一部分是随机游走生成器,用于捕获节点之间的结构关系;第二部分是Skip-gram结构,用于通过求解最大似然优化问题来学习节点嵌入。
* 随机游走
通过进行截断随机游走,将大规模网络转化为对它采样的一组节点序列。对于每个源节点u∈V,通过特定采样策略S从网络采样的每个节点序列被定义为N_S(U)∈V。
* Skip-gram
Skip-gram是一种被广泛采用的数据表示学习体系结构,最初是为自然语言处理而提出的。Skip-gram的目标是最大化窗口内出现的6个单词之间的共现概率。受Skip-gram体系结构的启发,网络研究人员建议将网络呈现为“document”。
* 本文采用skip-gram结构来优化下面的目标函数,该目标函数
以节点u的node embedding为条件,最大化节点u的邻域N_S(u)中节点出现的对数概率:

在这项工作中,我们采用随机梯度下降法通过求解(1)来优化f。
## 3. 随机游走
在给定源节点u的情况下,我们执行随机游走以获得固定长度l的节点序列。设ci表示从c0=u开始的序列中的第i个节点。选择特定节点x作为ci的概率为:

其中,π_ux是从节点u到x的非归一化转移概率,Z是归一化常数。
## 4. 搜索策略
对节点的邻域进行采样的过程可以看作是局部搜索。为了公平比较,我们将邻域集合的大小设置为k,然后为每个节点搜索多个集合。对于本文讨论的以太交易网络,我们考虑了两种有偏抽样方法。
### Amount-based biased sampling
基于数量的有偏抽样。直观地说,交易额越大,意味着所涉及的两个节点之间的关系越强或更密切。我们将Vu表示为直接连接到节点u的节点集合,并使用线性函数将量(amount)信息并入采样概率。在基于量的有偏抽样下,从节点u开始,给出从节点u到邻居节点x∈Vu的转移概率为:

其中A(u,x)表示节点u和x之间的交易的总金额。
### Time-based biased sampling
基于时间的偏向采样。每条边都有一个唯一的时间戳。这里我们假设事务越晚,对节点当前关系的影响就越大。首先,我们将edge的真实时间戳映射到离散时间步长。设T:E−>Z是按时间戳升序对交易edge进行排序的函数。类似地,在基于时间的偏置采样下,从节点u开始,从节点u到邻居节点x∈Vu的转移概率为:

其中T(u,x)表示节点u和x之间的最新事务的时间戳。

从节点u开始,当采用基于amount的采样时,最有可能选择节点x4作为下一个节点。而在基于时间的偏置采样下,节点x1被采样的概率最大。
### 搜索偏差参数α
为了兼顾时间和数量,我们使用参数α(0≤α≤1)来平衡它们的影响。从节点u到x的非归一化转移概率可以给出如下:

这里,参数α允许采样过程调整其时间和数量之间的偏差。如图4所示,与边(u,x4)相比,边(u,x1)具有较大的时间步长值,但具有较小的量值。当α非常小时,该策略将更有可能对节点x1进行采样,否则就更倾向于对节点x4进行采样。通过这种方式,可以在时间权重和数量权重之间平衡搜索偏差。
## 5. trans2vec算法
提出的基于随机游走的网络嵌入方法称为trans2vec,其主要任务是将事务信息嵌入到节点表示向量中。所提出的trans2vec算法的伪代码为算法1。我们对大规模交易网络进行了trans2vec随机游走过程的采样。

具体地说,我们执行来自每个源节点的具有游走长度l的r个随机行走。在游走的每一步,我们设计了一种有偏抽样策略,其中搜索偏向参数α允许我们基于交易量和时间在两种偏向之间平滑地转移。应该注意的是,由于转移概率π_vx可以预先计算,因此trans2vec的随机游走过程可以使用混叠采样(alias sampling)在O(1)时间内有效地执行。此外,类似于前人的工作[32],我们首先使用预处理程序计算转移概率,然后进行转移随机游动,最后利用随机梯度下降来优化节点嵌入(node embeddings)的映射函数f。

> [32] A. Grover and J. Leskovec, “node2vec: Scalable feature learning for networks,” in Proc. 22nd ACM SIGKDD Int. Conf. on Knowl. Disc. and Data Min. San Francisco, California, USA: ACM, 2016, pp. 855–864.
## 6. 数据收集
一个是EtherScamDB(https://etherscamdb.info/scams),它收集有关在线诈骗的信息,以引导以太投资者远离可能的欺诈。另一个是EtherScan(https://etherscan.io/),它充当以太块浏览器。只有两个网站举报的地址都标注为钓鱼地址。