2016年我国比特币交易额达4万亿元技术最成功

资讯 9个月前 manoon
0

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

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

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

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

1 笔比特币交易

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

1.1 交易分类及流程

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

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

1)输出交易

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

2)合成地址交易

这类交易的接收地址不是通常意义上的地址,而是合成地址,以3开头,生成合成地址需要几对公私钥。在生成过程中,可以指定几对公私钥的几个签名。将来,你可以从这个地址消费比特币。

3)通用地址交易

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

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

一个简单的交易流程示例,如图所示。假设 3 个用户 Alice、Bob 和 Mike 发起了 3 个事务 A、B 和 C。

图一

图一

2016年我国比特币交易额达4万亿元技术最成功

图 1 比特币交易流程

在交易A中,Alice发送2.5BTC给Mike,剩下的0.5BTC存放在找零地址中,属于Alice。在交易 B 中,Bob 将2.0BTC 发送给 Mike 在交易 C 中,Mike 将 4.0BTC 从 Alice 和 Bob 收到的4.5BTC 发送给其他用户。剩余的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 启发式地址聚类

曼等人。 [-] 研究了启发式地址聚类方法,其中同一交易中的所有输入地址都属于同一组用户(同一个人,或一个组织),并考虑到多个输入交易输入中的每一个都需要单独的签名,所以大多数多输入交易是由同一个用户发起的。

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

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

2.1 启发式条件

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

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

无论用户是否故意使用“混币”服务来避免聚类分析,多输入地址聚类的准确率都可以达到100%。

启发式 2:生产交易地址聚类

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

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

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

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

找零地址是比特币交易中用于接收找零(输入金额大于输出金额)的地址。该地址由输入用户指定或由系统自动生成,因此找零地址和输入地址属于同一个用户。找零地址将作为以后交易的输入地址。因此,结合启发式1的条件,以更改地址为链接,可以将两个事务中的输入地址聚类到同一个用户控制的地址组中。

如果交易 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进行判断,并将找到的相同用户的比特币地址存储在地址集中,使用同样的方法再次使用启发式方法找到与新​​搜索到的地址相关联的地址,并将其存储在地址集中。迭代次数越多,找到的地址就越多,也就是结果的全面性。越好。但是,增加迭代次数会显着降低聚类效率。

图二

图二

2016年我国比特币交易额达4万亿元技术最成功

图2聚类方案流程

项目流程如下:

1) 获取数据集

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

Step 2 从整个比特币区块链的交易数据中获取与地址关联的交易数据。

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

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

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

Step 3 在Step 2的基础上进行改地址识别算法,确定改地址和输入地址属于同一个用户。这一步找到的变更地址将存储在同一个用户地址数据表中,并在下一轮的采集Class中作为输入地址。如前所述,通过以找零地址为链接,可以将多个不同交易中的输入地址进行聚类。

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

3 实验结果

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

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

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

方案2将walletexplorer.com等同类网站的聚类数据与作者方法得到的实验数据进行对比,验证结果的准确性和全面性。

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

3.1 不同启发式的结果对比

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

图 3

图 3

2016年我国比特币交易额达4万亿元技术最成功

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

3.2 性能分析

通过方案 1,作者控制的两个比特币地址中的每一个都进行了 10 次交易。这两个地址各自的交易涉及作者控制的22个和40个其他交易地址。聚类后​​的实验结果与实际情况完全一致,如图所示。

表一

表一

表1 测试地址实验结果1

示例测试地址

本文的方法(10次迭代)

准确率/%

1Pu***MaP

22

100

1Dc***C5y

40

100

表1 测试地址实验结果1

表示簇地址数与迭代次数的关系。纵坐标表示找到的与上述比特币地址属于同一用户控件的比特币地址数。可以看出,簇地址数和迭代次数基本呈线性增长。

图 4

图 4

2016年我国比特币交易额达4万亿元技术最成功

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

可以看出聚类时间随迭代次数线性增加。

图 5

图 5

2016年我国比特币交易额达4万亿元技术最成功

图5 不同迭代次数的耗时趋势

3.3 对比分析

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

表 2

表 2

表2 测试地址实验结果2

示例测试地址

WalletExplorer 网站数据/a

本文中的方法/a

1BZ***vao

5

6

12t***2jd

17

20

167***MML

219

264

表2 测试地址实验结果2

4 结束语

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

版权声明:manoon 发表于 2021-08-22 9:59:55。
转载请注明:2016年我国比特币交易额达4万亿元技术最成功 | 198区块链导航

暂无评论

暂无评论...