主页 > 苹果怎么下载imtoken钱包 > 基于启发式的比特币地址聚类方法

基于启发式的比特币地址聚类方法

苹果怎么下载imtoken钱包 2023-01-16 23:00:36

比特币起源于化名中本聪的一篇文章——比特币:一种点对点的电子现金系统,由计算机生成的全球共享分布式、去中心化、去信任的账本系统由一串复杂的代码组成,它是迄今为止区块链技术最成功的应用。任何人都可以将比特币发送给任何其他人,无论他们是否在同一个城市或国家。比特币账户是匿名的,不能被审查。近年来,比特币等新型数字货币发展迅速。目前,比特币市值已超过1000亿美元。 2016年,中国比特币交易量达到4万亿元,占全球交易总量的90%。多于。此外,各国央行都在积极研究数字货币,甚至计划发行法定数字货币。但与传统的资金交易系统相比,比特币交易匿名性强,难以有效管理,因此被广泛使用。对于一些非法活动和黑市交易,例如枪支销售和毒品交易等。在基于区块链技术的数字货币中,通常使用基于公钥的钱包地址作为用户在区块链网络上的化名。交易就是通过这个化名实现的。该假名通常由用户自由生成,与用户的身份特征无关,因此很难通过分析交易数据推断出用户的身份信息。此外,区块链数字货币系统允许用户自由生成多个钱包地址,用户可以使用不同的钱包地址进行交易,从而减少单个钱包地址所承载的用户交易特征。因此,通过分析交易记录,我们可以从大量的假名中找出属于同一用户的假名,并分析出具体用户的假名。交易规则有助于推测用户的身份信息,在遏制各种基于比特币的犯罪方面发挥着重要作用。

作者的主要工作和创新点包括:

1) 使用提出的启发式方法,对比特币地址进行聚类,找到同一用户组控制的地址组。启发式方法[-]的启发式条件在全面性方面有一定的局限性。因此,作者提出了一种具有三个条件的启发式方法,具有较好的综合性。

2) 通过大量的实验分析验证了该方法的准确性和全面性。同时分析 分析了迭代次数对聚类效果的影响。结果表明,聚类过程的迭代次数越多,得到的数据越全面,反之,耗时也会增加,研究结果表明它呈线性增长趋势。

1 比特币交易

比特币可以抽象为交易用户之间的交易链,其加密方案是通过非对称加密系统识别的。其中,用于加密的公钥可以生成比特币地址,缩写地址。

1.1 交易分类及流程

比特币交易是一个包含输入和输出的数据结构,就是将一定数量的比特币从输入地址转移到输出地址的一串代码信息。

交易类型分为输出交易、合成地址交易、通用地址交易。

1)收益交易

每个区块对应一个输出交易。此类交易无输入交易,新挖出的币是所有币的来源。

2)合成地址交易

这类交易的接收地址并不是通常意义上的地址,而是合成地址,以3开头。生成合成地址需要几对公私钥对。在生成过程中,您可以指定多对公钥和私钥。几次签名后,就可以花掉这个地址的比特币了。

3)一般地址交易

该类是最常见的交易类型,由N个输入地址组成,M个输出地址组成。

在比特币中,每笔交易都是可追溯的。交易的输入地址来自于上一笔交易的输出,交易的输出地址将在其他交易中作为输入,形成交易链。根据交易之间的链式关系,分析师可以获得任意资金的使用情况以及任意区块链地址的相关交易。

示例 交易的简单流程如图所示。假设 3 笔交易 A、B、C 分别由 3 个用户 Alice、Bob 和 Mike 发起。

图一

图一

图1比特币交易流程

在交易 A 中,Alice 发送 2.5BTC 给 Mike,剩余的 0.5BTC 存放在找零地址中,属于 Alice。在交易 B 中,Bob 向 Mike 发送 2.0BTC。在交易 C 中,Mike 从 Alice 和 Bob 收到 2.0BTC。 @4.5BTC中的<@4.0BTC被发送给另一个用户,剩余的0.5 BTC存入找零地址。本次交易中的2个输入地址和找零地址属于Mike。

比特币的运行机制分析

1.2 地址归属定义

比特币地址类似于银行帐号,任何人都可以生成无限数量的比特币地址。因此,用户通常可以控制多个地址。比特币交易由一组输入地址、一组输出地址和一个找零地址组成。输入地址属于付款人,输出地址属于收款人,找零地址用于存放付款人支付后的余额。属于付款人。

定义 1 用户集 $U = \{ {u_1}, {\rm{ }}{u_2}, {\rm{ }} \ldots , {\rm{ }}{ u_n}\} $, 集合比特币地址 $ A = \{ {a_1}, {\rm{ }}{a_2}, {\ rm{ }} \ldots , {\rm{ }}{a_n}\} $, 交易集 $ T = \ { {t_1}, {\rm{ }}{t_2}, {\rm{ }} \ldots , {\rm{ }}{t_n}\} $。比特币交易的输入表示为 Inputs(t),交易的输出表示为 Outputs(t)。

1.3 找零地址

在比特币交易中,有时作为输出的金额会超过用户想要支付的金额。在这种情况下,比特币客户端创建一个新的比特币地址,并把差额发回这个地址,这就是比特币的变现机制。

找零地址和输入地址属于同一用户。找零地址是比特币系统自动生成的一个特殊地址,用于接收交易中的找零资金,由比特币程序自动选择作为后续交易的输入地址。因此,如果能够识别出找零地址,就可以找到不同交易之间的相关性,进而对比特币地址进行多笔交易聚类。

2 启发式地址聚类

Man et al[-] 研究了同一笔交易中的所有输入地址都属于同一用户 一种针对集合(同一个人或机构)的启发式地址聚类方法,该方法认为多输入交易中的每个输入需要单独签名,所以大多数多输入交易都是由同一个用户发起的。

Meiklejohn 等人。 [-] 研究了找零地址,找零地址和输入地址属于同一个用户。找零地址是比特币系统自动生成的特殊地址,用于接收交易中的找零资金,并存储在后续交易中,比特币程序自动选择它作为输入地址。因此,如果能识别出找零地址,就能找出不同地址之间的关系。

基于三个启发式条件提出比特币地址聚类方法,通过结合多种启发式条件,有效提高聚类的综合性,为推断交易背后的关系提供更好的基础条件。需要注意的是,聚类算法的选择需要考虑两个方面。原则方面:一是准确度比特币的运行机制分析,即分析得到的地址确实受同一用户群控制;第二,结果的全面性,即尽可能找到同一用户组控制的多个地址。

2.1 启发式条件

启发式1:多输入交易地址聚类

当用户进行支付时,支付金额超过用户u的钱包为避免多次交易完成支付,导致交易费用持续损失,比特币用户u会选择多个比特币地址钱包并汇总其价值。进行匹配支付,实现多输入交易。由于每个地址中的资金都用于比特币交易,因此需要单独签名,一般认为多输入交易中的所有输入地址均来自同一个用户。即如果有2个或多个地址是同一笔交易的输入,那么就认为它们是由同一用户控制的,即对于任何一笔交易t,所有a∈inputs(t)都由同一用户控制.

在不考虑用户故意使用“混币”服务避免聚类分析的情况下,多输入地址的聚类准确率可以达到100%。

启发式 2:收益交易地址的聚类

1.第 1 节中描述的收益交易是指比特币系统 Token 交易中比特的创建。区块链上的每个区块对应一个输出交易。这种类型的交易没有输入地址,只有输出地址。在输出交易中创建的代币是所有比特币交易的来源,新创建的代币将作为奖励发送给交易中的输出地址“矿工”。由于挖矿的本质是在服务器上运行比特币挖矿程序。因此,可以认为生产交易中的输出地址是由同一个用户配置产生的。

如果一个或多个地址是同一收益交易的输出,则认为它们由同一用户控制,即对于任何收益交易,所有 a ∈ inputs(t) 均由同一用户控制。

对于用户的自挖模式,输出交易地址聚类的准确率可以达到100%。对于“矿池”模式,大部分情况下,区块奖励会在输出交易中转入“矿工”的私有收益地址,然后根据挖矿的算力贡献分配二次收益池用户。因此,可以认为输出交易的输出地址属于同一用户。

启发式 3:基于更改地址的聚类

找零地址是比特币交易中用于接收找零的地址(输入金额大于输出金额的部分)。该地址由输入用户指定或系统自动生成,因此找零地址与输入地址属于同一用户。找零地址将作为未来交易的输入地址。因此,结合启发式1的条件,以找零地址为连接环节,可以将两个交易t的输入地址聚类成同一用户控制的地址组。

比特币的运行机制分析

如果事务t产生一个一次性找零地址,那么找零地址和交易输入地址是由同一个用户控制的,也就是说,对于任何一个交易t比特币的运行机制分析,inputs(t)的控制器,同时也控制着一个-时间变化地址a∈inputs(t)。

由于比特币协议的变化,基于变化地址的聚类在准确率上更准确,不能保证100%(准确率的具体指标将在后续工作中量化分析,本文由实验结果定性验证),但在全面性方面可作为有效补充。

2.2 找零地址识别算法

找零地址识别算法的核心工作是识别输出地址中的找零地址。更改地址的特点包括: 作为输出地址的情况通常只发生一次;找零地址不会同时出现在输入地址和输出地址中;输出地址不能只有零钱地址。

找零地址识别算法[]:如果地址a满足以下条件,则地址a是交易t的一次性找零地址:

1) a 只作为一个交易 t 的输出。

2) 交易 t 不是收益交易。

3) a′∈inputs(t) 不存在 a′∈inputs(t),即事务 t 不是“自变”“事务”。

4) 对于a'∈inputs(t),没有a'≠a,但a'仅用作交易的输出。

2.3 聚类过程

比特币地址聚类方案的整体框架如图所示。首先,输入要查询的比特币地址;然后分别用启发式 1、2 和 3 来判断。将找到的同一用户的比特币地址存入地址集中,用同样的方法再次用启发式方法搜索新找到的地址,找到其关联地址,存入地址集中。迭代次数越多,地址越多,结果就越全面。但是,迭代次数的增加会显着降低聚类效率。

图2

图2

图2 聚类方案流程

方案流程如下:

1)获取数据集

第一步,输入要查询的比特币地址。

第二步,从整个比特币区块链的交易数据中获取与地址相关的交易数据。

2)获取同一用户控制的比特币地址

比特币的运行机制分析

Step 1:输出交易地址的聚类,即判断输入地址是否为生产交易,如果是生产交易,则将该交易中的所有输出交易地址归类为同一用户。

如果不是第2步的输出交易,则进行多输入交易地址聚类,即同一交易的多个输入地址属于同一用户。

步骤3 在步骤2的基础上执行找零地址识别算法,判断找零地址与输入地址属于同一用户。这一步找到的找零地址会存入同一个用户地址数据表中,作为输入地址用于下一轮聚类。如前所述,通过使用零钱地址作为连接纽带,可以将多个不同交易中的输入地址聚集在一起。

重复执行1)和2),直到满足用户设置的迭代次数。重复执行的次数越多,搜索到的关联地址就越多,也就越耗时。

3 实验结果

方案采用Python语言实现,比特币区块数据存储的数据库为SQL Server,实验系统环境为Windows 7,CPU为i5-6200U,内存为8GB。

同时,为了验证所提出的启发式聚类方法的全面性,作者采用了两种方案进行验证。

场景一使用作者掌握的比特币客户端发送交易,并与本文方法得到的实验数据进行对比,验证结果的准确性和全面性。

方案2 将已经被类似网站如walletexplorer.com聚类的数据集与作者采用的方法得到的实验数据进行对比,验证结果的准确性和全面性。

在实现1的过程中,使用作者的2个地址进行多次交易进行测试;在实现2的过程中,使用由500个地址组成的地址集进行测试。

3.1 不同启发式的结果比较

以比特币地址“11g***YZo”为例,使用启发式1、heuristic 1+ Heuristic 2、Heuristic 1+Heuristic 2+Heuristic 3进行地址聚类,个数聚集到同一个用户的比特币地址是6、10、15,如图。

图 3

图 3

图 3 使用不同启发式条件的结果

3.2 性能分析

通过方案一,作者控制的两个比特币地址各进行了 10 次交易。其他交易地址数量分别为22个和40个。聚类后的实验结果与实际情况完全一致,如结果所示。

表 1

表 1

比特币的运行机制分析

表1测试地址实验结果1

测试地址示例

本文的方法(10次迭代)

准确率/%

1Pu***地图

22

100

1Dc***C5y

40

100

表1测试地址实验结果1

显示了聚类地址数和迭代次数之间的关系。纵坐标表示与上述比特币地址相同的用户找到并控制的比特币地址的数量。可以看出,聚类地址数和迭代次数基本呈线性增长。

图 4

图 4

图4 改变迭代次数的结果对比

从可以看出,聚类时间和迭代次数呈线性增加。

图 5

图 5

比特币的运行机制分析

图5不同迭代的耗时趋势

3.3 对比分析

通过方案2对随机选择的三个比特币地址进行测试,所示方案迭代10次得到的结果比walletexplorer.com网站聚类的结果更全面,结果如图所示。

表 2

表 2

表2测试地址实验结果2

测试地址示例

WalletExplorer 网站数据/件

本文方法/篇

1BZ***vao

5

6

12t***2jd

17

20

167***MML

219

264

表2测试地址实验结果2

4 结论

针对利用比特币匿名特性进行非法交易的问题,深入分析了比特币的交易规则,实现了启发式比特币地址聚类。该方法可以获得属于同一用户的比特币地址组。本文提出了具体的聚类过程,并通过大量实验验证了该方法的全面性和准确性,并分析了迭代次数对聚类效率的影响。该方法对区块链具有一定的理论意义和应用价值。数字货币交易监管。