网络安全/欺诈检测

使用网络图可视化以太坊区块链上的潜在欺诈

除了猴子图片难以想象的价格之外, NFT 的底层技术为公司提供了一条直接将其在线业务盈利的新途径。主要品牌,如: 阿迪达斯 , 美国篮球职业联盟TIME 我们已经开始使用非金融交易系统对这些收入流进行实验——我们还处于这一趋势的早期。

作为数据从业者,鉴于所有交易在区块链上都是公开的,我们将为这些收入流提供有价值的见解。这篇文章提供了一个引导项目,使用 Python 访问、分析和识别使用区块链数据的潜在欺诈。

在这篇文章中 随附 Jupyter 笔记本 为此,我将讨论以下内容:

  • 区块链、 NFT 和网络图的基础知识。
  • 如何使用来自 a16z 的开源软件包 NFT Analyst Starter Pack 提取 NFT 数据。
  • 如何解释以太坊区块链数据。
  • 非金融交易的欺诈行为。
  • 构建网络图,以可视化 NFT 项目 Bored Ape 游艇俱乐部的潜在清洗交易。

Jupyter 笔记本有一个更详细、分步的指南,用于编写 Python 代码来实现这个示例演练,本文提供了额外的上下文。此外,本文假设您对以下内容有基本了解: pandas 、数据准备和数据可视化。

什么是区块链数据?

在以狗命名的硬币和像素化图片以数十万美元的价格出售的媒体热潮中,我们发现了一种迷人的技术:区块链。

以下摘录最能描述这种分散的数据源:

“在非常高的层次上,区块链是利用加密技术的交易分类账,只能添加信息,因此无法更改(即不变)。将区块链与银行账本区分开来的是一个称为“去中心化”的概念,即连接到各个区块链的每台计算机必须“同意”区块链的相同状态以及添加到其中的后续数据。”

有关以太坊区块链数据的更多信息,请参阅 利用以太坊数据进行分析 .

这项技术的核心是所有数据(例如,日志、元数据等)都必须是公共的和可访问的。我强烈推荐斯坦福大学教授 丹·博内的阅读 .

什么是 NFT ?

NFT 代表不可替代代币,区块链(如以太坊)上的加密资产,其中它代表可以数字拥有的唯一令牌。例如,金条是可替代的,因为多个金条可以存在并代表同一件事,而蒙娜丽莎原作是不可替换的,因为只有一个金条存在。

与普遍的看法相反, NFT 不仅仅是艺术和 JPEG ,而是区块链账本上唯一项目所有权的数字表示,如艺术、音乐,或 NFT 创建者想要放在元数据上的任何东西。然而,在这篇文章中,我们使用了 NFT 项目 Bored Ape Yacht Club ( BAYC ),这是一个艺术品 NFT 。

P 、 如果你是一名视觉学习者,我最喜欢的关于 NFT 主题的介绍资源是 什么是非金融交易?如何将其用于分散金融?迪菲解释道 Finematics 的视频。

什么是网络图,为什么它们代表区块链数据?

网络是一种组织关系数据的方法,使用节点边缘.节点表示实体,如电子邮件地址或社交媒体帐户,而边缘表示节点之间的连接。

此外,可以存储节点和边的元数据,以表示关系的不同方面。元数据的范围可以从权重到标签。图 1 显示了获取整个网络并使用元数据中的有用标签放大到用例的步骤。

Six separate network graphs of the same data in various stages of detail, graph 1: all data as a blob of blue, graph 2: single network with no labels, graph 3: single network with wallet addresses as labels, graph 4: single network with wallet addresses replaced with sequential letters, graph 5: single network with sequential letters for labels and added directional arrows, graph 6: single graph with sequential letter labels, directional arrows, and labels of money spent for each transaction..
Source: Graphs from notebook tutorial.
图 1.本文中创建的各种网络图

使网络图成为表示区块链交易的理想工具的是,始终存在一个从…起区块链地址,以及每个交易的重要元数据(例如,时间戳、硬币金额等)。此外,由于区块链数据通过分散设计是公开的,因此您可以使用网络图来可视化各个区块链上的经济行为。

在本例中,我想演示如何识别洗牌交易也就是说,个人故意通过多个账户向自己出售资产,以人为抬高资产价格。

ChainAnalysis 写了一份出色的报告 关于这一现象,他们发现了 260 多个以太坊加密钱包可能参与洗牌交易,仅 2021 一年的总利润就超过 840 万美元。

从以太坊区块链中提取数据

尽管所有区块链数据对任何人都是公开的,但访问和准备分析仍然很困难。以下是访问区块链数据的一些选项:

  • 创建您自己的区块链节点(例如,成为矿工)以读取可用的最原始数据。
  • 使用第三方工具创建您自己的区块链节点。
  • 使用第三方 API 从自己的区块链节点读取原始数据。
  • 使用第三方 API 从其服务读取清理和聚合的区块链数据。
  • 使用开源软件包 NFT 分析师入门包 从 a16z 开始。

尽管所有这些都是可行的选择,但每种选择都在可靠性、信任和便利性之间进行权衡。

例如,我参与了一个 NFT 分析项目,我们希望创建一个可靠的 NFT 市场仪表盘。不幸的是,拥有我们自己的区块链节点成本高昂,许多第三方数据源存在我们无法控制的各种数据质量问题,因此跨多个区块链跟踪交易变得非常困难。该项目最终需要汇集来自众多第三方 API 的高质量数据。

谢天谢地,对于这个项目,您希望尽可能方便地专注于学习,因此我推荐您 来自 a16z 的 NFT 分析师入门包 .将此软件包视为第三方区块链 API 的方便包装 Alchemy ,它可以为您所需的 NFT 合同创建易于使用的 CSV 。

准备数据和创建网络图

NFT Analyst Starter Pack 为 BAYC NFT 项目生成了三个单独的 CSV 文件:

  • 贝叶斯元数据:关于特定 NFT 的信息,其中asset_id是该 NFT 令牌内的唯一标识符。
  • BAYC 销售:与特定交易相关的日志和元数据,由其交易哈希表示,其中卖方和买方通知您所涉及的钱包。
  • BAYC 传输:与 BAYC 销售数据相同,但没有资金从一个钱包转移到另一个钱包。

对于本项目,大部分数据准备工作围绕着:

  • 重新组织 BAYC 销售和 BAYC 传输,以实现两个数据集的干净合并。
  • 删除已在销售中表示的转账交易的重复日志。

鉴于目标是学习,不必担心区块链数据是否准确,但您始终可以通过搜索上的transaction_hash值来检查自己 Ethercan .

准备好数据后,使用 NetworkX 软件包 生成 NFT 事务的网络图数据结构。构造图有多种方法,但在我看来,最直接的方法是使用函数from_pandas_edgelist,其中,您只需提供 pandas 数据帧、tofrom值来表示节点,以及用于边缘和标签的任何元数据。

[('0x2fdcca65899346af3a93a8daa6128bdbcb1ce3b3',
  '0xcedf17dfafa947cd0e205fe2a3a183cf2fb3a0bc',
  {'transaction_hash': '0xb235f0321b0b50198399ec7f2bb759ef625f85673b4d90d68f711229750181e4',
   'block_number': '14675897',
   'date': '2022-04-28',
   'asset_id': '7438',
   'sale_price_eth': 153.2,
   'sale_price_usd': 442685.5285671361,
   'transaction_type': 'sell',
   'asset_contract': '0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d'}),
('0x2fdcca65899346af3a93a8daa6128bdbcb1ce3b3',
  '0xd8fdd6031fa27194f93e1a877f8bf5bfc9b47e1e',     {'transaction_hash':'0x7b4797061eb16d73a28a869e51745e471e2849a55c80459b2aff7f0205925d74',
   'block_number': '14654313',
   'date': '2022-04-25',
   'asset_id': '5954',
   'sale_price_eth': 0.0,
   'sale_price_usd': 0.0,
   'transaction_type': 'transfer',
   'asset_contract': '0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d'})]

根据这些准备好的数据, NetworkX 软件包使可视化网络图与nx.draw一样简单,但在数据帧中有超过 4 万个事务,可视化整个图只会返回一个无用的 blob 。因此,您必须明确在您的事务中可视化什么,以创建一个引人入胜的数据故事。

可视化潜在的清洗交易

您可以验证市场上其他人的陈述,而不是浏览 10000 笔非金融交易。值得注意的是 NFT Wash Trading – Is it possible to protect against it? 《华盛顿邮报》称, BAYC token 8099 可能受到洗牌交易欺诈行为的影响。

如果您按照随附笔记本中的说明进行操作,则执行以下步骤:

  • 仅将准备好的 NFT 数据筛选到包含asset_id 8099 日志的行。
  • tofrom钱包地址重命名为大写字母,按钱包地址首次出现在非金融资产交易中后的顺序排列。
  • 使用 NetworkX 包使用准备好的资产 8099 数据生成网络图数据。
  • 使用所需的标签、边箭头和节点定位绘制网络图。

BAYC 8099 NFT 是否经历过清洗交易?

图 2 中绘制的数据使您能够可视化与资产 8099 相对应的数据H,您可以看到,这款钱包首先将价格从 9.5 万美元提高到了 16.6 万美元H < – > I也就是说,然后通过之间的传输添加更多事务H < – > J最后H向节点出售可能人为增加的 NFTK.

Graph generated from Jupyter Notebook tutorial, following the first sell, second sell, third sell that might indicate potential wash trading, and fourth sell that is potentially inflated.
图 2.在 NFT BAYC 8099 的交易之后

尽管该图不能确定该节点的状态H从事洗牌交易,因为你不知道是否H,J同一个人拥有的钱包在某个节点上出现循环,价格上涨应表明需要进行更多的尽职调查。例如,您可以查看 etherscan.com 要查看以下钱包之间的交易:

  • 0xe4bc96b24e0bdf87b4b92ed39c1aef8839b090dd(节点H).
  • 0x7e99611cf208cb097497a59b3fb7cb4dfd115ea9(节点).
  • 0xcbc9f463f83699d20dd5b54be5262be69a0aea9f(节点J).

也许是节点H有卖家的悔恨,希望他们的非金融交易能回来,因为投资者对他们钟爱的非金融工具产生依恋并不少见。但是与节点相关联的钱包之间存在大量交易H,J可能指示 NFT 资产的进一步危险信号。

下一步

通过跟随本帖子和随附的 笔记本 ,您已经了解了如何通过网络图访问以太坊区块链数据和分析 NFT 。如果您喜欢这个分析,并且对做更多类似的项目感兴趣,请在 CharlieDAO Discord 平台与我交流,这也是我常去的地方。我们是探索 web3 的软件工程师、数据科学家和加密本地人的集合!

免责声明

本内容仅用于教育目的,不是财务建议。在发布笔记本的那一刻,我与分析过的 NFT 没有任何财务联系,这是我的 Etherscan 上的加密钱包地址 以供参考。该分析仅强调了潜在的欺诈行为,以进行进一步调查,但不能证明欺诈行为已经发生。最后如果你拥有加密软件,切勿与任何人共享您的“秘密恢复短语”或“私钥”。

 

Tags