与其他
DEX一样,Uniswap今年引起了很多关注,因为它是一个非托管和可公开验证的交易所,允许用户在没有受信任的第三方的情况下交易数字资产。然而,它的简单性和缺乏监管也使得通过列出非有价值的代币来执行初始硬币发行诈骗变得容易。这种执行诈骗的方法被称为地毯式拉动,这种现象在传统金融中已经存在,但在 DeFi 中变得更加重要。各种项目有助于检测EVM兼容链中的地毯拉力。然而,在 Uniswap 上检测和表征诈骗代币的第一步是纵向和学术性的。作者收集了与Uniswap V2交易所相关的所有交易,并提出了一种机器学习算法,将代币标记为骗局。但是,该算法仅在执行诈骗后准确检测骗局才有价值。本文将他们的数据集增加了 20K 个代币,并提出了一种将代币标记为骗局的新方法。在手动分析数据后,我们设计了Uniswap协议中不同恶意操作的理论分类。我们提出了各种基于机器学习的算法,这些算法具有与代币传播和智能合约启发式相关的新功能,以在潜在的拉动发生之前检测它们。总的来说,所提出的模型取得了类似的结果。在恶意操作之前,最佳模型在区分非恶意令牌和诈骗方面获得了 0.9936、0.9540 召回和 0.9838 的准确率。
MSC:
 91-08;91G50
 

 

1. 简介

区块链技术已被证明在计算应用程序的公共和私营部门都具有巨大的破坏性和授权。区块链是无需许可且不可变的数字分类账,可以在没有受信任的第三方或中央机构的情况下实施和审计。在基本层面上,它们使参与者能够在共享的公共分类账中记录交易,这样,在区块链网络的常规操作下,一旦提交,任何交易都无法更改。2008年[1],区块链的想法与其他几种技术相结合,创建了比特币:一个通过加密机制保护的点对点电子现金系统,不需要中央存储库或权威。然而,用户和开发人员认为,由于比特币虚拟机缺乏完整的可编程性,比特币的用例有限。出于这个原因,许多开发人员致力于推出其他链,例如以太坊,这是一个图灵完备的区块链,已经发展到包括广泛的去中心化应用程序。通常,去中心化应用程序(DApp)将使用部署在区块链之上的一个或多个“智能合约”。
智能合约是在区块链上运行的可执行代码,用于促进、执行和执行不受信任方之间的协议条款。智能合约至关重要的最受欢迎和最令人兴奋的领域是去中心化金融(DeFi),它使金融产品在公共去中心化的区块链网络上可用。DeFi可能会提供一种新的伪匿名,非托管和无许可的金融架构,允许开放审计[2]。然而,图灵完备的区块链技术并不是灵丹妙药;区块链的伪匿名和无需许可的性质允许攻击者、诈骗者和洗钱者逍遥法外。在 [3] 中开展的工作的同时,在本文中,我们将重点关注 DeFi 最流行的工具去中心化交易所 (DEX),即市场交易所的 DeFi 版本中的盗窃和诈骗。诈骗者和恶意代理执行盗窃的最常见方式是通过地毯式拉动。项目的地毯式拉动是加密货币行业中的恶意操作或一组操作,开发人员放弃项目并将投资者的资金作为利润。如[3]所述,地毯拉动是一种流行的策略,通常发生在DEX中,特别是在Uniswap中,恶意代理开发ERC-20令牌(以太坊征求意见20)并将其列在DEX上,并将其与领先的加密货币(如美元或以太币)配对。一旦一些不知情的投资者将他们的主要硬币换成代币,开发人员就会从流动性池中删除所有货币,使代币无法交易并且经济价值为零。为了使攻击更有利可图,创建者通常使用不同的营销工具,例如虚假网站、电报组和 Discord 聊天室来培养潜在投资者的信心。
我们的贡献:在本文中,我们将论文 [3] 的地毯拉动数据集扩展到 27,588 个代币。为此,我们通过直接与以太坊区块链交互收集了 2021 年 9 月 3 日之前的所有 Uniswap 数据。然后,我们使用智能合约的各种相关功能和流动性池状态将不同的代币标记为诈骗、恶意和非恶意代币(参见第 3.4 节和第 6 节)。我们手动观察了执行地毯拉动的不同方式,提出了地毯拉动分类,并观察了新的、复杂的盗窃形式。此外,我们观察到 Uniswap 协议的进一步使用来发送 ETH(ETH 是以太坊网络的原生加密货币),而大多数常见的跟踪协议都没有注意到。最后,正如我们在第7节中详细介绍的那样,我们提出了代币,流动性池和交易图的新功能,以及一个新的框架来预测流动性池在未来成为地毯式拉动或骗局的可能性。
总之,在这项工作中,我们做出了以下贡献:
  • 我们提供迄今为止最广泛的 Uniswap 地毯拉动标记数据集,包括源代码、流动性、价格、铸币/燃烧和转移事件。数据集包括 2020 年 5 月 4 日至 2021 年 9 月 3 日期间的所有代币。我们总共将 26,957 个代币标记为诈骗/地毯拉动,将 631 个代币标记为非恶意。
  • 我们提供了三种不同类型的地毯拉力的理论分类,简单、销售和活板门地毯拉手,并提供识别它们的工具。
  • 据我们所知,我们是第一个设计准确的自动地毯拉动检测的公司,以使用池状态的相关功能和用户之间的令牌分配的相关功能来预测未来的地毯拉动和诈骗。更具体地说,我们使用Herfindahl-Hirschman指数和聚类交易系数作为启发式方法来衡量代币在投资者中的分布。
  • 我们证明,其他诈骗检测器使用Unicrypt等锁合约[45]提供了有关令牌经济安全性的误导性数据。更准确地说,我们表明,90%使用锁定合约的代币最终往往会成为地毯式拉动或恶意代币。
  • 我们定义了两种方法,它们使用机器学习模型在不同场景中区分恶意和非恶意令牌。在第一种情况下,可以在恶意操作之前在任何块上评估令牌。在第二种情况下,所有代币在创建各自的池后的特定时间进行评估。具体来说,我们使用一种新的机器学习算法,该算法基于表格数据的注意力机制,称为FT-Transformer [6]。我们的最佳模型在第一种情况下区分非恶意令牌和诈骗的准确率为 0.9936、召回率为 0.9540 和 0.9838,在第二种情况下的准确度为 0.992、召回率为 0.784,精度为 0.869。
所有这些结果都可以使用 [7] 中的代码和管道进行复制。要使用它,我们强烈建议访问完整或存档的以太坊节点。
论文组织:在第2节中,我们描述了基于智能合约的区块链中诈骗检测的最新技术。第 3 节概述了 DeFi 和 DEX 以及我们分析所需的主要功能。第 4 节介绍了恶意 Uniswap 操作的分类,强调了不同地毯拉动背后的理论方法。在第 5 节中,我们解释了用于获取训练模型和获得结果所需的所有数据的方法。在第 6 节中,我们解释了用于将 Uniswap 协议中列出的令牌标记为恶意和非恶意的方法,并概述了通过应用此方法获得的结果。最后,第 7 节解释了用于在早期阶段检测未来地毯拉力的模型。我们解释了使用的两种不同方法,并描述了所用模型的准确性、灵敏度和 F1 分数。

2. 相关工作

由于智能合约在区块链技术中的作用,一些研究分析了此类合约的安全性和自动漏洞检测。有些人专注于在交易图中查找异常[89,10,11]和集群恶意地址[12,1314]。例如,Paper [8] 使用交易图来预测相关的市场价格变化,[14] 使用交易图和 gas 价格(https://ethereum.org/en/developers/docs/gas/,2022 年 2 月 15 日访问)中的指纹来检测同一用户的地址。
其他研究集中在智能合约的漏洞上[15161718];例如,[16]是检测潜在漏洞的智能合约静态分析框架。在类似的方向上,其他研究[1920212223]检查了DeFi协议在与理性代理交互时的脆弱性。
关于区块链诈骗,许多研究调查了网络钓鱼诈骗[24,25,26,27],庞氏骗局[2829,30]和自动诈骗检测[31,3233]。
与我们的工作更相关的是,各种研究或项目[345]已经解决了在DEX协议之上工作的地毯拉扯或欺诈的检测。两个项目 [45] 使用持有者、流动性和自动智能合约分析的简单启发式方法,给出代币的风险评分。这两个项目都有两个主要问题:缺乏纵向研究来检查其结果,以及未能准确检测非恶意令牌。另一方面,参考文献[3]提供了迄今为止唯一的纵向和横断面研究。该研究提供了对不同地毯拉动的良好介绍和概述,以及 Uniswap 中列出的超过 10K 个诈骗代币的数据集。然而,该论文的主要缺陷是,该算法被训练为对代币进行分类,并仅在发生后检测地毯拉动;也就是说,机器学习算法经过训练以对令牌进行分类,但无法检测到未来的地毯拉动。

3. 预赛

3.1. 以太坊和智能合约

以太坊是一个区块链,具有准图灵完备的编程虚拟机,可以编译不同的编程语言,例如Solidity [34]。以太坊的一个相关目标是让任何一方开发通过交易在区块链中执行的任意应用程序和脚本,使用区块链以任何系统参与者完全可验证的方式同步其状态。这些脚本通常被称为智能合约。以太坊网络中的参与者和智能合约使用称为以太币的基础货币进行交易。以太币是用于交易并向矿工支付费用以转移以太币或与智能合约交互的硬币。以太坊网络上的帐户可以链接到称为以太坊虚拟机(EVM)的基于虚拟机的语言的程序。更具体地说,智能合约是部署在区块链公共账本上的程序,并在交易中执行,类似于ACID风格的数据库交易[19],以原子方式改变账本的状态(即,要么执行交易的所有操作,要么还原所有操作)。在部署智能合约的那一刻,在交易中将字节码发送到账本,该合约被分配一个由 42 个十六进制字符组成的唯一地址,其代码被上传到账本。成功创建后,智能合约由 42 个十六进制字符的合约地址、余额、合约创建中定义的代码和状态组成。然后,不同的用户和各方可以通过向已知合约地址发送调用特定函数的交易来更改特定合约的状态。如果交易持有智能合约中硬编码的约束,则该交易将因此触发在智能合约代码中建立的一组操作,例如读取和修改合约状态,交互和执行其他合约,或将以太币或代币转移到其他地址。这些动作可以被编码以产生事件,由这些动作触发的相关信息的事务日志。这些事件对于开发人员和用户跟踪智能合约的状态非常有用。
以太坊最受欢迎和最重要的智能合约被称为ERC-20代币,并于2015年出现,是以太坊区块链上所有智能合约用于可替代代币实现的技术标准。如果任何代币与任何其他代币完全相等,则代币是可替代的;没有令牌具有与之相关的特殊权限或行为。这使得 ERC-20 代币可用于货币兑换、投票权、质押等。ERC-20定义了一组通用函数,其中仅指定了签名,而不指定了实现。表 1 列出了 ERC-20 的通用规则,包括全局变量和函数。
表 1.ERC-20 标准签名。
除了基本的ERC-20功能外,许多代币还提供其他功能[17]。例如,找到可以冻结账户、转让所有权、暂停合约或与其他 DeFi 协议进行复杂交互的合约是很常见的。在这项研究中,我们专注于涉及代币操纵的三个功能:铸造、可暂停和复杂的买入/卖出操作,其中代币可以从以太币获得或交换为以太币。代币铸造对应于代币的创建,增加代币的总供应量,并将新铸造的代币与特定地址相关联。代币销毁是相反的操作:代币可以从帐户中删除,并且其总供应量减少。代币销售的工作原理是允许账户使用以太币购买代币,或通过出售代币获得以太币。
为了获得这些功能,可以使用诸如Slither [16]之类的编译器,这是一个静态分析框架,旨在为用Solidity编程语言编写的智能合约提供人类可读的信息和见解。Slither 允许应用常用的程序分析技术,例如数据流和污点跟踪。此外,Slither 还可以检测各种重要功能和漏洞,例如铸造、重入漏洞和可暂停的智能合约。

3.2. 去中心化交易所

去中心化交易所 (DEX) [2] 是一类去中心化金融 (DeFi) 协议,允许数字资产的非托管交换。所有交易都在链上执行,因此是可公开验证的。匹配买家和卖家(或交易者和流动性提供者)的政策在智能合约中硬编码。DEX具有不同的价格发现机制:订单簿DEX和自动做市商(AMM)。虽然订单簿交换已被广泛研究[3536]并用于传统金融(TradFi),但由于其计算效率和简单性,AMM已被证明在区块链环境中更有用[2]。一般来说,在自动做市商中,每个资产对都包含一个不同的池或市场。流动性提供者通过按现有池大小的比例添加这两种资产来提供流动性。交易者通过将一种资产添加到池中并删除另一种资产来交换资产。两种交易资产的比率是支付的平均价格,它是根据向下倾斜的凸关系计算的,称为常数函数(CF)。凸性意味着AMM对流动性敏感;也就是说,较大的订单对价格的影响更大。DEXs,尤其是AMM,在DeFi中变得非常流行,原因如下:
  • 它们允许为次要资产轻松提供流动性,即任何资产都可以在DEX中上市;
  • 它们允许任何一方成为做市商;
  • 它们在高度动荡的时期具有审查弹性;
  • 任何人都可以审核它们。
但是,这些属性也有其缺点:
  • 区块链交易在内存池中是公开可见的,这意味着矿工或用户可以在DEX中抢先交易[2123],这始终导致用户的价格更差;
  • 每个代币都可以列出以AMM协议进行交易,使不知情的用户陷入不同的骗局或执行不佳的项目[3]。
使用AMM,资产的价格由状态(储备数量)和用户愿意交易的资产数量决定。最受欢迎的 AMM,例如 Uniswap (https://uniswap.org/whitepaper.pdf)、寿司交换 (https://sushi.com/)、曲线 (https://curve.fi/whitepaper) 和平衡器 (https://balancer.fi/whitepaper.pdf),均于 2022 年 2 月 15 日访问,使用恒定产品公式的不同变体;请参阅第 3.3 节

3.3. 联合交换

Uniswap 是最相关的去中心化交易所,于 2018 年 11 月推出,迄今为止,超过 40,000 个 ERC-20 代币在 Uniswap 协议中被锁定和交易,总价值为 70 亿美元。在本节中,我们将概述 Uniswap V2 协议;详见 [3738] 。
提供流动性:每个货币对池由一对代币组成。最常见的是,正如我们将在第 5 节中展示的那样,其中一种货币被包装为 Eth(Weth),即以太币的 ERC-20 等效版本。我们通常使用 Eth 或 Weth 作为数字,并用E,我们将其他 ERC-20 代币称为代币,表示为C.希望为特定资金池提供流动性的一方同时存款EC进入游泳池。如果配对池尚未存入代币,则流动性提供者可以任意选择存款比例。否则,以太坊与代币的存款比率由池中的现有比率决定,这隐式定义了代币的无穷小价格C关于以太坊E.进行此类存款的流动性提供者将获得一定比例的流动性提供者代币(LP代币)。这第三个代币特定于 Uniswap 中列出的每个池,代表代理提供的流动性在总流动性池中的份额。当用户在池中交换代币时,流动性池的价值可能会上升或下降。流动性提供者可以随时赎回他们的流动性代币,并以 ETH 和代币的同等价值支付他们在流动性池中的份额。提供流动性是潜在的有利可图的,因为每笔交易都会产生0.3%,重新存入池中。然而,提供流动性也有其自身的风险,在某些情况下会导致暂时的损失[39]。
价格公式:Uniswap 上列出的代币的定价协议由一个恒定的产品公式给出 [38]。假设交易者想要购买一定数量的未知节点类型:字体代币,以太坊和代币对池的当前储备分别为 x 和 y。然后,金额未知节点类型:字体他们必须存入的 ETH 是以下等式的唯一解决方案:
未知节点类型:字体
 
其中 f 是协议的费用,目前设置为未知节点类型:字体%.交易后,货币对池的储备按以下方式更新:未知节点类型:字体,未知节点类型:字体.类似地,交易者可能想出售以太币的代币。恒定产品市场这个名字来自这样一个事实,即当费用设置为零时,任何交易都必须以这样的方式改变,即储备位于曲线中未知节点类型:字体对于一些正实数 k
Uniswap 架构:Uniswap V2 合约分为两种类型的合约,核心合约和外围合约。这种划分使持有资产并因此必须安全的核心合同更容易得到审计。交易者所需的所有额外功能都可以通过外围合约提供。最相关的外围合约是 UniswapV2Router(https://etherscan.io/address/0x7a250d5630b4cf539739df2c5dacb4c659f2488d,2022 年 2 月 15 日访问)。该合约允许用户轻松地与其他核心合约进行交互,以便报价、创建配对池、交换代币以及添加/删除流动性。两个最基本的核心合约是UniswapV2Factory(https://etherscan.io/address/0x5c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f,2022年2月15日访问)和UniswapV2Pair(https://github.com/Uniswap/v2-core/blob/master/contracts/UniswapV2Pair.sol,2022年2月15日访问)。UniswapV2Factory 负责创建新的池对并记录创建的所有池对。UniswapV2Pair合约负责记录池的当前状态,即以太坊的余额E(或任何其他令牌未知节点类型:字体) 和令牌C,计算交易价格和增加流动性所需的代币数量。此外,UniswapV2Pair合约具有ERC-20结构,并记录了提供给池的流动性的所有权。
Uniswap 事件:正如我们在第 3.1 节中提到的,事件跟踪智能合约不同变量的状态。Uniswap 协议包含五个重要事件。
  • PairCreated:这是 UniswapV2 Factory 合约中的一个事件。每次创建新池时,此事件都会发出,并输出所创建的新池的元组(token0、token1、pair、block_creation)。
  • 同步:这是 UniswapV2 PairPool 合约中的一个事件。每次池的保留更改时,都会发出此事件。每次池的余额更新时,智能合约都会输出元组(reserves0,reserves1),这是更新后的token0token1的储备。
  • Mint,Burn和Transfer:这些是UniswapV2 PairPool合约中的事件,用于跟踪ERC-20 LP令牌的状态。
锁定合约:锁定合约是在 Uniswap 协议之上运行的协议,为地毯拉动提供部分解决方案。这些协议不是主要 Uniswap 协议的一部分。一般来说,在开发代币或项目的第一阶段,提供给 Uniswap 的流动性主要由项目的开发者或创建者添加。正是出于这个原因,最初,LP代币的分配由少数地址管理,这使得潜在投资者对项目的信心降低。为了给新投资者提供一些信任,开发人员将流动性锁定在智能合约中(Unicrypt是最受欢迎的DEX LP锁)或销毁LP代币,这使得开发人员在一段时间内或无限期地移除流动性是不可行的。

3.4. 代币传播

我们将代币传播称为一组指标和工具,用于研究代币在其活动期间的代币分配和流通。正如我们之前提到的,代币是可转让的。要将令牌从地址 A 发送到地址 B,发送方 A 可以调用该函数transfer代币的智能合约或调用继承函数的其他智能合约approvetransferFrom.无论哪种方式,ERC-20 令牌都会发出事件transfer包含元组(未知节点类型:字体).转移代币的第一种方法通常更便宜,用于将代币从一个外部可拥有账户(EOA)直接转移到另一个账户。最常见的方法是从中心化交易所存入或提取代币。第二种方法倾向于被不同的DeFi协议使用,例如DEX,借贷协议或投票系统,以允许智能合约代表EOA地址交换代币。

3.4.1. 代币分配

转账和交易集允许我们计算任何快照的每个地址的余额。为了研究代币的分布,我们建议使用Herfindahl-Hirschman指数(HHI)。
简而言之,HHI是衡量市场集中度的常用指标,用于计算市场竞争力。市场越接近垄断,市场的集中度就越高(竞争越低)。正如我们稍后将解释的那样,此措施对于检测 Uniswap 中的一些潜在地毯拉动非常有用。下面,我们提供了HHI的数学定义(图1)。
图1.理想的赫芬达尔-赫希曼曲线。
定义 1. 
让 T 成为令牌,A是一组地址,并且未知节点类型:字体是某个时间范围 t 中的余额映射。时间 t 中令牌 T 的赫芬达尔-赫希曼指数定义为
未知节点类型:字体
 
未知节点类型:字体曲线定义为未知节点类型:字体.
在加密货币生态系统中,去中心化和资源的适当分配是重要特征。更顺畅的权力分配意味着一些参与者行为不端造成的故障或故障风险更小。在交易所中,也会出现类似的模式。一般来说,资本或资金越集中,市场操纵或流动性流失的风险就越高,这意味着散户投资者的资金损失。
从博弈论的角度来看,代币和流动性的分布越均匀,代理人在短时间内操纵市场或转移资金的可能性就越小。因此,HHI越低,对投资者越有利。显然,HHI的问题之一是它易于操纵并且对Sibyl攻击敏感,因为任何对手都可以创建任意数量的地址,并在他控制的地址之间传输任意数量的令牌。但是,这些操作会给恶意代理带来一些成本,从而减少攻击的净利润。
为了缓解提到的一些问题,我们建议使用更深入的网络分析工具。最近的研究使用代币交易作为预测价格[40],检测价格异常[8]和检测可能的恶意活动[91124]的工具。每个周期将被视为一组块,它们之间的间隔大约一天。

3.4.2. 交易图分析

交易和转账集提供了有见地的信息;但是,通过赋予其自然图结构,将每个地址解释为节点,将每个事务解释为加权边,可以更好地研究该集合。
定义2 
(交易图). 未知节点类型:字体)是一个有向和加权图,其中 V 是唯一地址的集合,未知节点类型:字体从一个地址到另一个地址的转移,以及未知节点类型:字体)转账交易的金额tx.然后未知节点类型:字体),未知节点类型:字体是其时间序列未知节点类型:字体表示期间生成的交易图未知节点类型:字体.
此时间序列捕获每个时间段的用户之间的关系。这使我们能够研究令牌在不同地址之间的流通。
现在,对于每个未知节点类型:字体我们定义交易数量未知节点类型:字体、唯一地址的数量未知节点类型:字体,并且交易量为未知节点类型:字体.最后,平均聚类系数定义为未知节点类型:字体哪里未知节点类型:字体是子图边权重 [10] 的几何平均值,计算如下:
未知节点类型:字体
 
未知节点类型:字体按网络中的最大权重进行归一化,即未知节点类型:字体(未知节点类型:字体)).
平均聚类系数是网络隔离的度量,用于捕获各个节点及其邻居的连接。在我们的场景中,这种计算允许我们量化每个地址在给定时间段内与其相邻地址的交互。
通常,令牌的用例越低,平均聚类系数就越低。这种启发式方法背后的主要原因是,低直径和用例通常意味着事务图接近星形图(图 2),而 Pool 是中心节点。因此,平均聚类系数接近于零。但是,用户在大量协议中使用非恶意令牌,导致这些协议的节点具有非平凡的聚类系数。此外,由于不断需要在Sybil节点之间进行交易,并且无法使用批处理转移操作(一种允许在一次事务中将资产转移到不同地址的操作),因此日平均聚类系数更容易出现偏差。
图2.中心化代币的交易图,平均聚类系数为0。

4. 恶意的 Uniswap 操作

正如我们之前提到的,地毯式拉动是去中心化交易所中最受欢迎的诈骗手段之一,结合网络钓鱼攻击。不同的技术被用来诱骗新投资者购买恶意代币。为了了解在 UniswapV2 中交易的恶意代币,我们通过手动对恶意和非恶意代币进行分类来引入全面的分类。虽然这种分类将提供 Uniswap 中代币的清晰概述,但它取决于不可观察的变量,例如意向性和利润。因此,我们将对机器学习模型使用较弱的分类。在本节中,我们将提出一个理想的分类,该分类将提供对不同地毯拉力的见解。图 3 提供了分类的概述。
图3.恶意 Uniswap 操作分类。
所有研究人员都使用诈骗和恶意令牌这两个术语。例如,[3]等论文无法区分地使用术语诈骗和表现不佳的代币,导致结果和分类不准确。在当前的论文中,我们将恶意令牌定义为由开发人员或一组开发人员发布的令牌,没有内在价值或用例。这个定义与论文中使用的定义相似[30]。显然,除非正确定义价值和用例,否则此定义是模棱两可的。一般来说,这是一个需要解决的复杂问题。例如,目前尚不清楚 Doge(https://dogecoin.com/,2022 年 2 月 15 日访问)或 Shiba(https://www.shibatoken.com/,2022 年 2 月 15 日访问)等加密货币是否有任何用例或内在价值,但它们是最受欢迎的模因币之一。在我们的框架中,我们说如果开发人员知道相对于美元的交易价格最终将为零,则代币没有内在价值或用例。换句话说,Uniswap 中的可交易恶意代币会在用户和开发者之间引发零和博弈,即对投资者的激励与代币创建者的激励不一致。因此,恶意和非恶意令牌之间的主要区别在于开发人员对令牌的意向性。这些定义的主要问题之一是,在没有准确的链下数据的情况下,区分诈骗代币和表现不佳或放弃的项目是不可行的。但是,一般来说,这两个术语确实重合。出于这些原因,在下一节中,我们将提供一种分类和预测性能不佳和不活跃的代币的方法,而不是尝试识别令牌是否是恶意的。
简单的地毯拉力是最常见且易于识别的地毯拉力。从本质上讲,简单的地毯拉力包括三个步骤。开发人员创建一个 ERC-20 代币C并与 UniswapV2 工厂交互,使用 wETH 或任何其他相关代币创建新的交易对,将储备固定为(未知节点类型:字体).然后,投资者在交易对上执行掉期交易,将ETH交换为”C,并且储备更新为(未知节点类型:字体).之后,开发者激活功能删除流动性,获得未知节点类型:字体以太和未知节点类型:字体C.由于硬币C没有内在价值,攻击者的净利润是未知节点类型:字体.
卖地毯拉力也很普遍。但是,它们不容易识别和计算攻击的总收益。攻击的简化如下。开发人员创建一个 ERC-20 代币C,总供应量 S,以及带有相关代币的新交易对E.开发人员增加了一小部分未知节点类型:字体的总供应量C到池中,完全控制剩余的硬币未知节点类型:字体.然后,他们等待足够数量的投资者在交易对上执行掉期交易。之后,开发人员交换f硬币CE.虽然这种地毯式拉动理论上对攻击者的利润较低,但如果与更多功能相结合,它可以比第一个更有利可图。例如,为了建立对投资者的信心,攻击者将流动性锁定在智能合约中或将其销毁。这使得投资者认为简单的地毯式拉动不可能发生,因此这是一项潜在的有利可图的投资。换句话说,流动性被锁定的事实使市场交易量增加。此外,如果代币是可铸造的,攻击者可以收回所有资金,根据需要铸造任意数量的硬币来恢复几乎所有代币。E在交易池中。
智能合约活板门地毯拉力是最难识别和预防的。这有几个原因。首先是EVM是图灵完备的,因此识别所有向量攻击非常复杂;第二,智能合约不是孤立存在的,即智能合约可以在其他智能合约之上工作。这意味着一些智能合约的经济安全性取决于其他智能合约[19]。在下一节中,我们将解释这些活板门的一些最流行的示例。
  • 可铸造代币是许多代币共享的属性,包括非恶意代币,例如 USDT(https://tether.to/,2022 年 2 月 15 日访问)。一般来说,如果代币具有允许它在某些预定义条件下增加代币供应的功能,我们说代币是可铸造的。通常,可铸造代币赋予开发人员将新代币铸造到一组固定地址的权利。虽然此功能在某些情况下可能是一个有用的功能,但恶意用户也可以使用它来通过根据需要铸造尽可能多的代币来减去拉动的所有流动性。
  • 转移自/批准不良设计是某些恶意令牌共享的属性。
    TransferFrom 是允许智能合约代表外部拥有的账户转移资产的功能。在 Uniswap 的上下文中,此功能的正确设计允许出售代币。换句话说,任意更改 TransferFrom 函数会使 Uniswap 池表现得像蜜罐 [18]。有不同的方法可以制作这个智能合约;但是,这种骗局最流行的示例是使用包含行代码的令牌要求(从 == 所有者未知节点类型:字体到 == 所有者未知节点类型:字体从 == UNI)“传输自”函数中。
  • 可组合性漏洞是最不常见的漏洞,也是最难发现的漏洞。一般来说,这种类型的地毯拉动不是由开发人员进行的,而是由项目外部的恶意代理进行的,他们利用与 Uniswap 或其他 DEX 交互的智能合约令牌的糟糕设计。我们能够识别的那些是具有价格预言机漏洞的代币。通常,我们观察到这些代币将Uniswap集成到智能合约的源代码中,以奖励持有者。但是,这些奖励取决于价格。价格越高,奖励越高。这种机制的根本问题是价格是通过预言机定义的,如[22]所示,通过足够的资金或使用闪电贷款很容易操纵。
一般来说,这些地毯拉动不是排他性的,实际上,为了执行地毯拉动,应用了不同的技术。此外,这些技术通常与网络钓鱼攻击和拉高转储计划相结合。
洗钱:在传统金融中,洗钱是对从非法活动中获得的资金进行处理,使其看起来来自合法来源。在以太坊环境或一般的加密空间中,我们将洗钱定义为从某个地址发送从抢劫、蜜罐或黑客中获得的一些硬币的过程未知节点类型:字体到另一个地址未知节点类型:字体私自。也就是说,观察者无法通过事务图链接这两个地址(图 4)。在以太坊中,获得隐私的最常见技术是通过混合器[14]。最受欢迎的混合器是 TornadoCash(https://tornado.cash/,2022 年 2 月 15 日访问),它实现了一个接受以太币交易的智能合约,以便以后可以在不参考原始交易的情况下提取金额通过使用零知识证明。通过分析 Uniswap 协议中的地毯拉动,我们发现一些用户使用 Uniswap 协议将以太币发送到其他地址,而没有被最常见的地址聚类算法注意到。该操作包括三个主要步骤。一、地址未知节点类型:字体创建不可售代币C并以任意数量的流动性将其列在 Uniswap 中。然后,地址未知节点类型:字体更改以太币C在 Uniswap 池中。最后,地址未知节点类型:字体从池中删除所有流动性。
图4.深度 = 10 的交易图,骗子地址 = 0x775744...(https://etherscan.io/address/0x775744a529f73a754164e4fE740e44C7c5aa5942,2022 年 2 月 15 日访问),其中黑色节点是直接连接的地址,绿色节点是地毯拉/洗钱类型的交易,红色节点是中心化交易所,例如币安、Coinbase 和火币。
控制地址0x775744的用户给出了一个很好的例子......(https://etherscan.io/address/0x775744a529f73a754164e4fE740e44C7c5aa5942,2022 年 2 月 15 日访问),负责创建 500 多个代币,以便洗钱、提高价格并通过执行活板门地毯拉动获得利润。
拉高抛售计划:在传统金融中,拉高抛售计划是一种操纵股票市场价格的恶意操作,其中执行人首先以一定价格购买金融资产。然后,他们说服其他投机性的不知情投资者在短时间内购买,从而导致价格人为上涨(泵),执行者出售他们的资产获利。这通常会导致价格快速下跌(抛售),使受害者蒙受损失。在传统市场中,拉高和倾销计划在全球范围内通常是非法的。然而,在加密货币中,缺乏监管和加密空间的性质使这些操作很容易发生并避免制裁。虽然这些操作与地毯式拉动策略有一些交点,但根本区别在于,在拉高和转储方案中,目标资产不一定是恶意的,而在地毯式拉动中,它是恶意的。
别人:虽然恶意操作通常是前面提到的策略的组合,但它们都有一个共同的特征:受害者是不知情的用户。但是,在与EVM兼容的区块链中还有其他策略,试图攻击最大可提取价值(MEV)机器人的弱点。一个很好的例子是沙门氏菌(https://github.com/Defi-Cartel/salmonella,2022 年 2 月 15 日访问),一个试图欺骗三明治交易者的机器人 [23]。沙门氏菌创建一个带有批准/转移的令牌来自糟糕的设计。之后,它创建一个交换交易,诱使 MEV 机器人将其与买卖操作夹在中间。在执行交易的那一刻,根据沙门氏菌智能合约的设计,买入被接受,但卖出交易被恢复,为沙门氏菌开发商留下大量现金。

5. 数据收集

为了下载执行标记和分析所需的所有数据,我们使用了Infura存档节点(https://infura.io/,2022年2月15日访问)和Etherscan API(https://etherscan.io/apis,2022年2月15日访问)。为了获得 Uniswap 交易所和代币的状态,我们使用了它们各自智能合约生成的事件。任何连接到以太坊 JSON-RPC API 的节点都可以观察这些事件并采取相应的行动。还可以为事件编制索引,以便以后可以搜索事件历史记录。
  • 列出的代币:我们获得了 Uniswap V2 中列出的所有代币从创建到 2021 年 9 月 3 日的历史记录,询问 UniswapV2Factory 合约中 PairCreated 类型的所有事件。
  • 智能合约和功能:在 Uniswap 中获得所有列出的代币后,在 Etherscan 的帮助下,我们下载了创建它们的交易、智能合约、小数和符号。为了加快这些调用速度,我们使用多调用合约(https://etherscan.io/address/0xb1f8e55c7f64d203c1400b9d8555d050f94adf39,2022 年 2 月 15 日访问)在一次调用中将这些调用批量到区块链。之后,我们使用Slither [16]来获取智能合约的不同功能,例如可暂停可铸造
  • 事件:从列出的代币中获得的所有 Uniswap 池中,我们收集了每个获得的 PairPool 类型的同步、铸造、销毁转移类型的所有事件。最后,我们从每个令牌下载了所有传输事件。
有几个属性我们无法通过API下载,例如合约的交易创建和代币的完整市值;但是,它们在某些区块浏览器(如Etherscan)上可用。在这些情况下,我们使用报废技术来获取此信息。例如,我们无法通过Etherscan API和Infura找到的一些数据包括创建令牌的交易的哈希值以及经过某种类型的外部审计的令牌。

6. 令牌标签

在本节中,我们提供了一组工具和方法,用于将 Uniswap 协议中列出的令牌标记为恶意和非恶意,并提供使用此方法获得的结果。首先,我们定义代币价格和流动性时间序列的最大跌幅和恢复。然后,我们解释最终变得不活跃或成为地毯式拉动的代币的分布。最后,我们解释了我们使用哪种方法来准确地将令牌标记为非恶意。

6.1. 真实标记

本研究的最终目标之一是创建一种能够检测恶意令牌的 ML 算法。为此,我们构建了一个标记为恶意和非恶意的令牌列表。在这种情况下,恶意令牌的标签是从下面定义的一系列计算中推断出来的:
定义 3. 
未知节点类型:字体},是表示截至最后一个同步事件 S 之前所有代币活动中的价格或流动性的时间序列。最大跌落定义为
未知节点类型:字体
 
哪里未知节点类型:字体,未知节点类型:字体}未知节点类型:字体.
最大跌幅在文献中通常被称为最大回撤,通常用作投资组合的风险衡量标准(图5)。非正式地说,最大跌幅是从峰值到低谷的最大跌幅。在我们的背景下,最大跌幅衡量的是 Uniswap 上市池的价格或流动性的下跌。在第 4 节中,我们已经看到简单地毯式拉动的最后一步是从池中移除所有流动性。因此,根据定义,在简单的地毯拉动中,地毯拉动的流动性或时间序列的MD趋于近似1。然而,相反的含义通常不是真的。虽然价格最大回撤接近 1 意味着代币是恶意的,但流动性的 MD 为 1 并不一定意味着某些恶意行为。例如,开发人员可以将资金转移到另一个池或另一个DEX项目。此外,做市商可能只是想退休他们的资金,而对提供流动性没有任何兴趣。一般来说,如果代币有用例和市场价值,其他代理将有动力接管做市商。出于这个原因,我们引入了恢复。
图5.ETH价格的最大回撤和恢复。
定义 4. 
未知节点类型:字体]是前面定义的元素。然后,从未知节点类型:字体未知节点类型:字体计算为
未知节点类型:字体
 
非正式地说,复苏是自下而上的最大泵。该措施可以检查代币的流动性头寸和价格在下跌后是否恢复。接下来,我们将展示数据如何拆分,同时考虑到最大回撤和恢复。
图6a显示了两个不同的地毯拉动的例子,分别没有恢复和流动性和价格的最大跌幅。此外,可以推断出地毯拉力(a)是简单的地毯拉力,而地毯拉力(b)是卖出地毯拉力。
图6.该图显示了两种不同类型的地毯拉动的价格和流动性时间序列。前两张图片与带有令牌0x896a07e3788983ec52eaf0F9C 6F6E031464Ee2CC 的简单地毯拉动相关联,而第二对图片与带有令牌0x0A7e4D70e10b63FeF9F8dD19FbA3818d15154d2Fa的卖出地毯拉动相关联。(a) 流动性快速拉动;(b) 价格快速地毯拉动;(c) 没有燃烧事件的流动性地毯式拉动;(d) 价格地毯拉力,无燃烧事件。

6.1.1. 恶意令牌标签

计算了各种特征,同时考虑了两个属性:价格或流动性的波动以及活动。如上所述,最大跌幅计算代币活动期间流动性或价格的最大跌幅。
大多数恶意代币在某些时候会失去所有的流动性或价格跌至零。但是,这并不一定表示恶意行为,因为它可能是由于简单的波动造成的。因此,我们还计算了回收率。如果代币失去了所有的流动性,或者它的价格跌至零,并且这些水平永远无法恢复,那么下跌是由于恶意意图而增加的可能性就会增加。
此外,为了确保这些波动不是由于简单的市场变动,我们计算了自上次池或代币转移到2021年9月13日所经过的时间。如果到目前为止,在代币的最后一次移动或交易之间已经过去了一个月以上,我们认为代币处于非活动状态。最后,我们获得一个不活跃的代币列表,这些代币的价格或流动性几乎下跌了百分之百,并且无法恢复。我们最初的列表包含 46,499 个代币。我们丢弃了那些在合同中没有定义小数的(169)。然后,我们选择了那些将池连接到 wETH (44,685) 的,并下载了它们的同步、铸造、刻录传输事件。最终列表包含 37,891 个代币,这些代币至少有一个池与 wETH 连接,并且在其所有活动中有超过 5 个同步事件。最后一个属性是能够计算用于标记令牌的启发式方法所必需的(图 7)。
图7.37,891 个代币的最终列表的特征活动 (a) 和最大下降 (b) 的饼图。
如上所述,我们首先检查令牌是否处于非活动状态,即它们是否超过 30 天(占总数的 86.4%)未注册传输同步事件。我们还计算了最大流动性下降,发现78.2%的非活动池的流动性在某个时候已经完全撤出。最后,我们注意到,在某个时候失去所有流动性的矿池中,只有0.4%的矿池在所有后续活动中恢复了。这使得总共有24,870个代币可以被标记为恶意,因为它们是非活动代币,在某些时候失去了所有的流动性并且没有再次恢复。
另一方面,如图 8 所示,8.6% 的非活动代币在其所有活动期间没有任何 Burn LP 事件。然而,在这8.6%中,有79.2%的价格在某个时候下跌了90%以上,只有1.9%的人在下跌后恢复了价值。这增加了 2087 个可以识别为恶意的代币,因为它们处于非活动状态,价格 MD 至少为 90%,并且无法恢复。
图8.价格和流动性恢复。

6.1.2. 非恶意令牌标签

与恶意代币不同,非恶意代币不能从流动性、价格和活动分析中选择。给定一个令牌,如果在其活动中的某个时刻至少有一个地毯拉动,则可能被视为恶意。但是,没有任何地毯拉动的令牌不能被视为非恶意的,因为它以后可能会经历地毯拉动。因此,我们利用外部公司(Certik,Quantstamp,Hacken等)进行的审计。重要的是要强调,非恶意代币的价格和流动性也可能下降。然而,它们都没有同时满足定义恶意代币的所有三个属性,即不活动、价格急剧下跌或流动性急剧下降以及无法恢复。因此,从不同来源挖掘了标记为非恶意的 674 个代币列表 (https://coinmarketcap.com/view/defi/;https://www.coingecko.com/en/categories/decentralized-finance-defi;https://etherscan.io/tokens,全部于 2022 年 2 月 15 日访问)。我们还丢弃了那些如此之大以至于计算其特征变得计算成本高昂的那些,例如 USDT 或 USDC。最终列表包含 631 个标记为非恶意的令牌。

7. 诈骗检测

我们从标记为恶意或非恶意的令牌列表开始,根据它们的功能;因此,它可以被认为是一个二元分类问题。在此分类中,我们在恶意活动发生前的时刻区分了两种类型的令牌。这意味着模型能够在地毯拉动之前检测活动中的恶意令牌。在本节中,我们介绍两种方法:一种考虑代币的所有活动,另一种只考虑前 24 小时。此外,我们详细介绍了两种方法中使用的不同分类器及其超参数优化。最后,我们介绍了每种方法的结果。

7.1. 基于活动的方法

我们的目标是在早期阶段检测恶意代币,即在用户失去资金之前。到目前为止,我们已经描述了两种主要类型的地毯式拉动:在某个时候失去所有流动性的地毯式拉动和价格跌至几乎为零的地毯式拉动。这样,对于每个标记为恶意的令牌,我们在最大下降之前随机选择了几个评估点。非恶意令牌已在其整个活动中进行评估。然后,对于每个评估点,我们计算了该块之前的令牌特征,并使用它们来训练两个 ML 算法,以找到与恶意活动相关的模式。
在这种方法中,我们随机选择n个评估块。例如,图 9 显示了一个标记为恶意的代币的价格和流动性。在这种代币中,流动性突然降至零并且不会再次恢复。因此,我们认为这是一种快速的地毯拉动。导致崩溃的三条垂直线表示该特定令牌的三个评估点。这意味着我们已经计算了该代币的变量,直到这些块。通过这种方式,我们继续处理每个标记的令牌。如第 7.4 节所述,最终指标的计算方法是对非恶意令牌进行五个评估点,对恶意令牌进行一次评估。所有评估都是在恶意行为发生之前进行的;这意味着此方法以后可以用作随时检测恶意令牌的工具。但是,有些微妙之处可能会扭曲所使用的 ML 算法。例如,与恶意代币相比,标记为非恶意的代币往往具有更大的资本化;因此,该算法最终可能会区分“小”令牌和“大”令牌,而不是恶意和非恶意令牌。虽然这种区分对于这项任务来说并不是一个坏方法,但我们认为可能还有其他情况需要不同的方法。在下一个方法中,我们评估相同时间评估点的所有令牌,以识别这些可能的偏差。
图9.为标记为恶意的代币0x896a07e3788983ec选择流动性 (a) 和价格 (b) 的评估点 52eaf0F9C6F6E031464Ee2CC。

7.2. 提前 24 小时方法

地毯拉动如果在被发现之前完成恶意行为,则有利可图。因此,大多数地毯拉动(93%)发生在创建游泳池后的前24小时内。这鼓励我们构建一个工具,在启动时检测恶意令牌。对于每个标记的令牌,我们在其池创建后的 24 小时内计算了它的特征。然后,我们为评估令牌的每个小时创建一个不同的数据集。
请注意,在本例中,我们每小时训练一次模型;因此,每个数据集只有一个评估点。这也意味着与其他方法相比,我们将拥有更小的数据集。在附录C中,我们介绍了每个小时获得的不同指标。此外,我们可以衡量算法在代币生命周期的最初几个小时内预测能力的演变。这种方法需要一定的历史才能给出预测,这意味着我们获得的历史越多,预测就越好。这种直觉在第 7.4 节中得到了证实。

7.3. 机器学习和超参数优化

梯度提升决策树 (GBDT) [41] 模型在具有表格数据的分类任务中提供了高性能,因为它们允许定义不同的成本函数,不需要对分类特征进行预处理,并且可以处理缺失的数据。因此,将GBDT模型应用于我们的问题似乎很清楚。特别是,我们使用了XGBoost [42]算法。
另一方面,具有Transformer架构[43]的算法在自然语言处理[44,45],计算机视觉[46]等领域获得了很高的结果。在这项工作中,我们使用了一个名为FT-Transformer [6]的基于注意力机制的模型,以便在我们的问题中测试具有Transformer架构的表格算法。
在训练过程中无法学习超参数。此外,它们对正在训练的模型的性能有重大影响。因此,优化它们对于提高效率、加快收敛速度和整体更好的结果至关重要。在这项工作中,我们使用了Optuna [47],这是一个主要用于ML算法中超参数优化的软件框架。
最后,为了评估每个变量的影响,我们使用了SHAP(SHapley加性外表)值[48]。SHAP 使用博弈论来解释在 ML 算法中获得的结果。特别是,它使用了博弈论的经典夏普利值及其相关扩展。

7.4. 结果

最终列表包含 27,588 个标记令牌、631 个标记为非恶意令牌和 26,957 个标记为恶意令牌。在恶意事件中,24,870 个是快速地毯拉动,2087 个不包含 LP 烧伤事件。我们看到非恶意令牌比恶意令牌少得多。有许多技术(https://imbalanced-learn.org/stable/references/index.html,2022 年 2 月 15 日访问)来处理这个问题;但是,为了使结果更易于理解,它们都没有被应用。相反,我们的数据增强技术包括为非恶意令牌选择比恶意令牌更多的评估点。现在,鉴于此数据集,我们希望提高预测非恶意令牌的性能,因为将所有令牌标记为恶意令牌就足以实现 97.7% 的准确率。因此,我们将非恶意令牌标记为 1,将恶意令牌标记为 0。
我们使用交叉验证方法来验证这两种 ML 算法。交叉验证是一种重采样方法,它使用数据的不同部分在不同的迭代中测试和训练模型。特别是,我们使用了分层版本,其中选择了分区,以便所有分区中的平均响应值大致相同。在二元分类的情况下,这意味着每个分区包含两种类型的类标签的比例大致相同。在第一种方法中,我们对非恶意令牌有五个评估点,在恶意令牌上有一个评估点。因此,在每次迭代中,训练集和验证集的标记以分层方式与其所有相应的评估分开。这意味着同一令牌永远不会同时在训练和验证集中进行评估,并且所有折叠将具有大致相同数量的恶意令牌。最后,我们使用了五重交叉验证;因此,所有结果都将表示为所有折叠的平均值和标准差。
我们使用 xgboosthttps://xgboost.readthedocs.io/en/stable/,2022 年 2 月 15 日访问)Python 库将 XGBoost 模型应用于每个方法。具体来说,在五个折叠中的每一个中,我们使用训练分区执行超参数优化(见附录 B),以便稍后预测相应折叠的测试。在FT-Transformer的情况下,我们使用了rtdlhttps://yandex-research.github.io/rtdl/stable,2022年2月15日访问)Python库的默认参数,因为训练这个模型太昂贵而无法执行超参数优化。

7.4.1. 基于活动的方法结果

XGBoost 和 FT-Transformer 都获得了准确性、召回率、精度和 F1 分数的高指标。然而,XGBoost在所有指标上都优于FT-Transformer。如前所述,与XGBoost不同,由于训练模型所需的高计算复杂性,FT-Transformer 超参数尚未优化(表2)。
表 2.在第一种方法的 5 倍交叉验证中获得的准确性、召回率、精度和 F1 分数。
为了了解两个模型中每个特征的影响,我们计算了 SHAP 值。在这项工作中,我们只关注XGBoost;但是,对于FT-Transformer,该过程将是相同的。SHAP 值为每个预测分配每个特征的重要性。通常,特征对预测的影响越大,绝对值中的 SHAP 值就越大。
在图 10 中,我们在左侧显示了第一种方法中应用的 SHAP 值的特征重要性,在右侧显示了对最终输出的影响。如前所述,大多数恶意令牌在创建池后的前 24 小时内死亡;相比之下,非恶意令牌的寿命更长。这就解释了为什么交易数量或唯一地址数量等特征在模型中具有如此大的权重。另一个重要特征是创建令牌和池之间的块差异。我们注意到,令牌和池创建之间的较小块差异意味着负 SHAP 值,负 SHAP 值应对应于恶意令牌。这个结论与[3]相吻合,因为一些恶意代币通过复制官方代币的名称来利用社会趋势,并从变得困惑的投资者那里拿钱。这种技术意味着创建令牌和池的速度,否则趋势可能会丢失。
图 10.应用于第一种方法的 XGBoost 模型中变量的影响。左侧是 SHAP 值的平均值,右侧是要素的全局影响。从 Python SHAP 库生成的图像。

7.4.2. 24 小时提前方法结果

必须从另一个角度理解第二种方法的结果,因为提出的问题并不相同。正如我们所说,与第一种方法的区别在于,我们在创建各自的池后的某个时间评估所有代币。
图 11 显示了所使用的每种 ML 算法的指标演变。XGBoost 可以获得更好的指标,但在某些情况下精度除外。我们还注意到,第一个小时的指标低于最后一个小时的指标。这证实了我们的直觉,即我们的方法需要一定的代币历史才能正常工作,并且模型随着历史的增长而改进。即使在最初的几个小时内,我们的算法也能获得非常高的准确性(见附录C)。但是,精度、召回率和 F1 分数低于基于活动的方法。在最好的情况下,即创建池后 20 小时,我们的最佳算法获得 0.789 的召回率分数。这可能表明,虽然恶意令牌在最初的几个小时内很容易检测到,但非恶意令牌需要更多时间。另一方面,与召回相比,精度仍然很高。这意味着,尽管算法没有很强的检测非恶意令牌的能力,但一旦它们预测其中一个是非恶意的,情况很可能是这样。
图 11.XBGoost 和 FT-Transformer 模型在创建令牌后的前 24 小时内的召回率、精度和 F1 分数的演变。(a) XGBoost;(b) 傅立叶变换器。

7.4.3. 单密码结果

第 3.3 节所述,Unicrypt 是一种运行在 Uniswap 协议之上的协议,目的是作为地毯拉动的部分解决方案。在这项工作中,我们已经凭经验证明大多数使用Unicrypt的令牌都是恶意的。首先,在我们的标记令牌列表中,745 个使用 Unicrypt,725 个标记为恶意,20 个标记为非恶意。然后,从未标记的令牌中,我们计算它们到现在的特征,并使用基于活动的方法和XGBoost算法来评估它们。根据这些预测,在使用Unicrypt的2544个未标记令牌中,预计有2211个是恶意的,333个是非恶意的。

8. 结论

总之,首先,我们将 [3] 中提供的数据集增加了 18K 个诈骗令牌,找到了积极执行地毯拉动的新方法。然后,我们提供了一个理论分类来了解执行骗局的不同方式,通过识别地毯式拉动的过程,我们发现了新的代币智能合约漏洞(可组合性攻击)和新的洗钱方式。基于这一理论基础,我们提供了一种方法来查找已经执行的地毯拉动。毫不奇怪,我们发现不仅仅是97.7%标记的令牌是地毯拉动。最后,我们定义了两种使用 ML 模型来区分非恶意令牌和恶意令牌的方法。我们还验证了这些模型在这两种情况下的高效性。这意味着可以在恶意行为之前检测到新的恶意令牌,另一方面,也可以在早期阶段检测到强大项目支持的令牌。复制所获得数值结果的软件在(https://github.com/T2Project/RugPullDetection,2022 年 2 月 15 日访问)中提供。

9. 未来工作

虽然我们的研究在检测 Uniswap 中列出的诈骗方面具有很高的精度和准确性,但它存在一些局限性。首先,我们认为转移学习技术不会在其他链的DEX中获得相同质量的结果,例如PancakeSwap(https://pancakeswap.finance,2022年2月15日访问)和QuickSwap(https://quickswap.exchange,2022年2月15日访问)。由于gas价格要低得多,因此模拟数量和转移的经济成本几乎可以忽略不计。因此,为了在其他链中获得类似的结果,我们应该重复相同的纵向工作并计算新的特征。此外,随着市场趋势的变化,这些算法将不得不重新训练,以便不断添加新信息。
其次,尽管我们使用Slither [16]研究代币源代码的方法对于我们的目的来说是高效和可靠的,但它并不完全准确,因为它是代码的静态分析工具,没有考虑其他协议中的复杂可组合性问题。因此,为了对特定令牌有更多的见解,我们建议使用更强大的测试工具和形式验证工具,例如 [19] 中提供的工具和工具。
第三,尽管聚类系数被证明是有用的,但计算这一特征非常耗时。因此,我们建议使用其他图分析方法,例如拓扑数据分析,以获得更有效的诈骗检测算法,并获得更可靠的交易图洞察。