原创 | 图神经网络在区块链交易数据分析研究中的应用

news2024/9/20 17:22:16

7142e1dd7d18debe6e4c76e5a5614c68.png

作者:王佳鑫

本文约3000字,建议阅读6分钟区块链技术带来的重大变革,也对金融服务、生态安全、隐私保护提出了诸多挑战。

加密数字货币是数字货币的一种,它不依靠法定货币机构发行,不受央行管控。借助于区块链等新兴技术,加密数字货币主要表现出去中心化、低交易费用和成本、国际流通、共识机制、高度匿名性和分布式存储等特征和优势,而这会更易成为犯罪分子进行违法活动的工具,从而对全球的加密数字货币交易监管提出了严峻的挑战。加密数字货币监管技术侧重监管和制止以加密数字货币方式的高科技犯罪活动,是保护资金安全和国家安全的重要手段,也是区块链技术能够得到广泛应用的前提条件[1]。

比特币、以太坊等现有的加密数字货币由于无法提供可行的监管方法,被广泛应用于网络犯罪、洗钱、勒索、盗窃、诈骗和恐怖主义[2]等犯罪活动,导致很多政府对整个加密数字货币技术持消极的态度,甚至遏制了区块链技术在其他应用的发展。因此,如何从海量的区块链交易数据中提取有用的信息,成为了当前的研究热点,不仅有助于打击基于加密数字货币的犯罪活动,而且有助于为区块链技术在其他领域的扩展提供可行的监管方案[3]。

由于区块链技术的去中心化和不可篡改特点,加密数字货币的所有交易记录都是不可逆的,其交易记录和所有权记录都以图形结构的方式被安全地存储和验证在区块中。这些交易记录包含了丰富和完整的信息,其中每一个区块链地址可以被视为一个节点,而每一次的交易则可以被视为一个边。因此,区块链交易数据实质上是一种图结构数据,通过将加密货币系统中的对象(如地址、交易、智能合约等)概念化为节点,并将它们的交互建模为连接,图建模可用于从不同角度构建交互活动的表示。这样可以自动分析图特征,揭示异常交易图结构,方便识别异常交易行为的节点。图深度学习为加密货币交易中的大规模异构数据建模提供了一个视角。

图神经网络(Graph Neural Network, GNN)是一种专门用于处理图形数据的深度学习算法,具有强大的图表示学习能力。它可以直接在图上进行学习和预测,从而有效地捕捉图中节点之间的复杂关系。图神经网络在许多领域已经展示出了其强大的性能,例如社交网络分析、生物信息学、物联网、推荐系统等。图神经网络以其独特的优势,为区块链交易数据分析提供了新的视角和工具。通过图神经网络,我们可以更好地理解和分析区块链交易数据中的复杂模式,例如交易追溯、账户分类、异常检测等。

1.数据来源与获取

区块链交易数据面向公众,在这一部分我们阐述如何收集区块链相关数据,包括地址交易记录和加密数字货币生态标签数据。

1.1地址和交易数据

通过安装一个客户端(如比特币的BitcoinCore和以太坊的Geth)访问网络和同步块数据,我们可以从区块链获取原始数据。然而,对于许多加密数字货币来说,它们的原始区块链数据是以二进制格式存储的,需要解析为可读的格式以便进一步分析。因此,我们可以利用解析工具(如比特币的Bitcoin-ETL和以太坊的Ethereum-ETL)获得的原始数据中提取交易记录。

1、https://bitcoin.org/en/bitcoin-core/

2、https://geth.ethereum.org/

3、https://github.com/blockchain-etl/bitcoin-etl

4、https://github.com/blockchain-etl/ethereum-etl

1.2标签数据

标签信息对于一些特殊的交易网络挖掘训练任务如异常检测和交易模式分析是非常必要的。然而,区块链系统的用户以匿名方式进行交易,这使得获取身份或标签信息变得困难。这里我们总结了一些为加密货币生态系统提供标签信息的著名网站,其详细信息如下表所示。

a0d7e10ee369d6e125ea4b1cdede5ff2.png

2.图建模

数据采集完成后,在进行交易网络分析之前,我们需要做的第一步是将交易数据表示成网络结构的数据形式,即网络建模。

对于采用以交易为中心模型的的区块链系统(如比特币,见图1),由于交易的输入是来自以前的交易,因此交易网络(Transaction-Transaction Graph)的构建是最直接的,其中交易作为节点,有向边(包括金额和时间戳信息)表示资金流动。考虑到一个用户可能拥有多个匿名地址,因此部分研究将地址聚类为实体(即实体识别,将拥有相同所有权的地址聚类在一起),构建以用户为节点、用户之间的资金流动为边的用户网络(User-User Graph)。然而在区块链系统中,地址的真实所有权是未知的,因此不可能获得准确的用户网络。比特币的另一种网络模型是地址网络(Address-Address Graph),其中每个节点代表一个地址,如果一对地址之间至少有一个交易,则一对地址之间存在一条边。最后一种网络模型是加权有向超图(Address-Transaction HyperGraph),节点是两个交易和地址的类型,可以表示地址与交易之间的输入输出关系。

98a7230154daab45342788a68ffea93d.png 

575f202df1b7f85137fa0cb0561beaba.png

图1  比特币交易模型

对于采用以账户为中心模型的区块链系统(如以太坊、波场等,见图2),每笔交易只有一个输入地址和一个输出地址,输入或输出关系是明确的,因此外部账户(EOAs)和合约帐户(CAs)都可以节点的形式表示,但边的语义不同,边可以表示资金流动的方向,也可以表示合约的创建和调用关系。目前网络建模的一个重要问题是如何使所构建的网络更好地保留交易信息,因此也可以将以太坊交易记录建模为一个时间加权的多有向图。

732815a5837f12e811148c6ed3a20cb8.png 

761a0343b93472e95898086f01114d1d.png

图2  以太坊交易模型

3.图任务

现有基于图神经网络的区块链交易数据分析研究主要分为异常检测、账户分类、交易追溯三大下游任务。其中异常检测指的是二分类的加密地址欺诈身份识别,即检测区块链生态系统中的异常行为,如庞氏骗局、欺诈和网络钓鱼骗局等),账户分类指的是多分类的加密地址身份识别,交易追溯指的是对目标地址和交易进行追踪、溯源和监控。下表展示了这三个任务的论文列表。

表1基于图神经网络的区块链交易数据分析研究

ec9d505335bdfe7f61911277ba895eb7.png

结论

区块链本质上是一个分布式的数据库技术,具有去中心化、不可篡改、全程留痕、匿名性等特点。区块链技术带来的重大变革,也对金融服务、生态安全、隐私保护提出了诸多挑战。GNN天然适合于区块链数据的分析,从结构上看,区块链数据本质上由一个图表示,其中节点表示地址,边表示交易等行为,构建交易图后模型可以提取图结构关系中高维度的特征,这些特征在做下游学习任务时往往表现很好。

参考文献:

[1] 王佳鑫,颜嘉麒,毛谦昂.加密数字货币监管技术研究综述[J/OL].计算机应用:1-14[2023-07-26].

[2] 颜嘉麒,王佳鑫,毛谦昂等.加密数字货币恐怖融资监管:交易模式分析与异常实体识别[J].图书情报知识,2022,39(06):55-66.

[3] Wang, J., Yan, J., Mao, Q., (2022). Detecting and Characterizing Abnormal Addresses in the Bitcoin Transaction System: A Social Network Approach, 15th China Summer Workshop on Information Management(CSWIM 2022), Ningbo, China, 145-150.

[4] Zhang R, Zhang G, Liu L, et al. Anomaly detection in bitcoin information networks with multi-constrained meta path[J]. Journal of Systems Architecture, 2020, 110: 101829.

[5] Lo W W, Kulatilleke G K, Sarhan M, et al. Inspection-L: self-supervised GNN node embeddings for money laundering detection in bitcoin[J]. Applied Intelligence, 2023: 1-12.

[6] Wang L, Xu M, Cheng H. Phishing scams detection via temporal graph attention network in Ethereum[J]. Information Processing & Management, 2023, 60(4): 103412.

[7] Wen H, Fang J, Wu J, et al. Hide and Seek: An Adversarial Hiding Approach Against Phishing Detection on Ethereum[J]. IEEE Transactions on Computational Social Systems, 2022.

[8] Jin H, Li C, Xiao J, et al. Detecting arbitrage on ethereum through feature fusion and positive-unlabeled learning[J]. IEEE Journal on Selected Areas in Communications, 2022, 40(12): 3660-3671.

[9] Jin C, Jin J, Zhou J, et al. Heterogeneous feature augmentation for ponzi detection in ethereum[J]. IEEE Transactions on Circuits and Systems II: Express Briefs, 2022, 69(9): 3919-3923.

[10] Yu T, Chen X, Xu Z, et al. MP-GCN: A Phishing Nodes Detection Approach via Graph Convolution Network for Ethereum[J]. Applied Sciences, 2022, 12(14): 7294.

[11] Wang, J., Mao, Q., Yan, J.,et al (2023). Identifying Crypto Addresses with Gambling Behaviors: A Graph Neural Network Approach, Pacific Asia Conference on Information Systems(PACIS 2023), Nanchang, China.

[12] Shao W, Li H, Chen M, et al. Identifying bitcoin users using deep neural network[C]//Algorithms and Architectures for Parallel Processing: 18th International Conference, ICA3PP 2018, Guangzhou, China, November 15-17, 2018, Proceedings, Part IV 18. Springer International Publishing, 2018: 178-192.

[13] Huang Z, Huang Y, Qian P, et al. Demystifying Bitcoin Address Behavior via Graph Neural Networks[J]. arXiv preprint arXiv:2211.14582, 2022.

[14] Zhou J, Hu C, Chi J, et al. Behavior-aware account de-anonymization on ethereum interaction graph[J]. IEEE Transactions on Information Forensics and Security, 2022, 17: 3433-3448.

[15] Liu J, Zheng J, Wu J, et al. FA-GNN: Filter and augment graph neural networks for account classification in ethereum[J]. IEEE Transactions on Network Science and Engineering, 2022, 9(4): 2579-2588.

[16] Huang T, Lin D, Wu J. Ethereum account classification based on graph convolutional network[J]. IEEE Transactions on Circuits and Systems II: Express Briefs, 2022, 69(5): 2528-2532.

[17] Li Z, He E. Graph Neural Network-Based Bitcoin Transaction Tracking Model[J]. IEEE Access, 2023.

[18] Lin D, Wu J, Xuan Q, et al. Ethereum transaction tracking: Inferring evolution of transaction networks via link prediction[J]. Physica A: Statistical Mechanics and its Applications, 2022, 600: 127504.

[19] Xie Y, Jin J, Zhang J, et al. Temporal-amount snapshot multigraph for ethereum transaction tracking[C]//Blockchain and Trustworthy Systems: Third International Conference, BlockSys 2021, Guangzhou, China, August 5–6, 2021, Revised Selected Papers 3. Springer Singapore, 2021: 133-146.

编辑:于腾凯

校对:林亦霖

数据派研究部介绍

数据派研究部成立于2017年初,以兴趣为核心划分多个组别,各组既遵循研究部整体的知识分享实践项目规划,又各具特色:

算法模型组:积极组队参加kaggle等比赛,原创手把手教系列文章;

调研分析组:通过专访等方式调研大数据的应用,探索数据产品之美;

系统平台组:追踪大数据&人工智能系统平台技术前沿,对话专家;

自然语言处理组:重于实践,积极参加比赛及策划各类文本分析项目;

制造业大数据组:秉工业强国之梦,产学研政结合,挖掘数据价值;

数据可视化组:将信息与艺术融合,探索数据之美,学用可视化讲故事;

网络爬虫组:爬取网络信息,配合其他各组开发创意项目。

点击文末“阅读原文”,报名数据派研究部志愿者,总有一组适合你~

转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派THUID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

未经许可的转载以及改编者,我们将依法追究其法律责任。

5c2bf6d670b082d3964fee7fc911de0b.png点击“阅读原文”加入组织~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/840541.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习中的人生启示:“没有免费的午餐”定理(NFL)的个人发展之道→探讨感觉和身边其他人有差距怎么办?

文章目录 1 引言2 探究NFL定理的含义3 将NFL定理应用于个人发展4 探索个人兴趣和天赋5 结论 1 引言 机器学习中的“没有免费的午餐”定理(NFL)是一条深具启示意义的原则。该定理表明,没有一种算法可以在所有问题上都表现最好。在机器学习领域…

MyBatis核心 - SqlSession如何通过Mapper接口生成Mapper对象

书接上文 MyBatis – 执行流程 我们通过SqlSession获取到了UserMapper对象,代码如下: // 获取SqlSession对象 SqlSession sqlSession sqlSessionFactory.openSession();// 执行查询操作 try {// 获取映射器接口UserMapper userMapper sqlSession.get…

C语言----字节对齐

一:字节对齐的概念 针对字节对齐,百度百科的解释如下: 字节对齐是字节按照一定规则在空间上排列,字节(Byte)是计算机信息技术用于计量存储容量和传输容量的一种计量单位,一个字节等于8位二进制数,在UTF-8编…

PS设计技巧01

大部分切图工作都是在PS中完成的 1、如何得知宽度和高度,先截个图: 2、找个文件夹,把截取的图片放进去,然后ctrl o 把图片文件放进去 3、存入图片,我们用的是网页图片,用的是ctrl r键,调出标尺…

记录电赛色块追踪部分

代码其实也很简单,我只不过加入了按键控制暂停、蜂鸣器、led和如何控制追踪的效果(调PID)。B站的那些大神早早地完成了要求,我犯了一个不好地错误,企图三连让他们分享思路,这是不对的,电赛本身的…

python之prettytable库的使用

文章目录 一 什么是prettytable二 prettytable的简单使用1. 添加表头2. 添加行3. 添加列4. 设置对齐方式4. 设置输出表格样式5. 自定义边框样式6. 其它功能 三 prettytable在实际中的使用 一 什么是prettytable prettytable是Python的一个第三方工具库,用于创建漂亮…

谷粒商城第九天-解决商品品牌问题以及前后端使用检验框架检验参数

目录 一、总述 二、商品分类问题 三、前端检验 四、后端检验 五、总结 一、总述 在完成完商品分类的时候,后来测试的时候还是发现了一些问题,现在将其进行解决,问题如下: 1. 取消显示的时候,如果取消了显示&…

Unity学习参考文档和开发工具

☺ unity的官网文档:脚本 - Unity 手册 ■ 学习方式: 首先了解unity相关概述,快速认识unity编辑器,然后抓住重点的学:游戏对象、组件|C#脚本、预制体、UI ☺ 学习过程你会发现,其实Unity中主要是用c#进行开…

Javaweb学习(2)

Javaweb学习 一、Maven1.1 Maven概述1.2 Maven简介1.3、Maven基本使用1.4、IDEA配置Maven1.6、依赖管理&依赖范围 二、MyBatis2.1 MyBatis简介2.2 Mybatis快速入门2.3、解决SQL映射文件的警告提示2.4、Mapper代理开发 三、MyBaits核心配置文件四、 配置文件的增删改查4.1 M…

【c++】VSCode配置 c++ 环境(重新制作)

上一篇帖子【c】VSCode配置 c 环境(小白教程)_vscode配置c/c环境_StudyWinter的博客-CSDN博客 大火,但是依旧有很多小伙伴反应没有配好环境,今天打算重新写一个教程,希望对大家有帮助。 1 MinGW下载安装 在CSDN上传了…

高温环境下光模块光功率降低的原因与解决方案

光模块是光纤通信系统中的关键组件,其稳定的光功率输出对于确保通信质量至关重要。然而,高温环境下光模块的光功率往往会出现下降,本期文章我们将探讨高温环境下光模块光功率降低的原因和解决方案。 一、高温环境下光功率降低的原因 &#…

深入理解@ConfigurationProperties注解的作用和用法

文章目录 前言一、配置文件application.properties二、添加依赖三、创建配置类四、测试总结 前言 ConfigurationProperties是一个用于定义属性的注解,通常用于Spring应用程序的配置类中。 通过使用ConfigurationProperties注解,可以将外部配置文件中的属…

YOLOv5引入FasterNet主干网络,目标检测速度提升明显

目录 一、背景介绍1.1 目标检测算法简介1.2 YOLOv5简介及发展历程 二、主干网络选择的重要性2.1 主干网络在目标检测中的作用2.2 YOLOv5使用的默认主干网络 三、FasterNet简介与原理解析3.1 FasterNet概述3.2 FasterNet的网络结构3.2.1 基础网络模块3.2.2 快速特征融合模块3.2.…

ENSP-PPP Chap双向认证

日期6-26 📎PPP chap 双向认证.zip 📎PPP chap 双向认证.docx

Linux常用命令——domainname命令

在线Linux命令查询工具 domainname 显示和设置系统的NIS域名 补充说明 domainname命令用于显示和设置系统的NIS域名。 语法 domainname(选项)(参数)选项 -v:详细信息模式; -F:指定读取域名信息的文件。参数 NIS域名:指定要…

ClickHouse(十一):Clickhouse MergeTree系列表引擎 - MergeTree(1)

进入正文前,感谢宝子们订阅专题、点赞、评论、收藏!关注IT贫道,获取高质量博客内容! 🏡个人主页:含各种IT体系技术,IT贫道_Apache Doris,Kerberos安全认证,大数据OLAP体系技术栈-CSDN博客 &…

通义千问7B本地部署的实战方案

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

Flink开发环境准备: centos-jdk8

linux-jdk8 - Flink开发环境准备 一、基本介绍二、环境准备1.1 JDK环境1.2 开发工具1.3 Maven环境 三、flink下载安装配置3.1 Flink下载3.2 flink本地模式安装 - linux3.3 常用配置3.4 日志的查看和配置 四、单机 Standalone 的方式运行 Flink 一、基本介绍 Flink底层源码是基于…

架构,性能和游戏 《游戏编程模式》学习笔记

开新坑,准备把《游戏编程模式》这本书啃完。这是一本讲设计模式的书,针对游戏开发而作,写得很好。 以下是读书笔记,文末有原文链接 每个程序都有一定的软件架构,哪怕是全塞到main里也是一种架构好的架构可以把代码写成…

【LeetCode 75】第二十题(2215)找出两数组的不同

目录 题目: 示例: 分析: 代码运行结果: 题目: 示例: 分析: 找出两个数组中不一样的数,将nums1中有的数而nums2没有的数放在res[0]中,将nums2中有的数二nums1没有的数放在res[1]中. 那我们…