UTXO模型下的比特币粉尘攻击:地址追踪原理

小编:芯水 更新时间:2026-04-11 10:16

比特币的粉尘攻击,听名字好像很小,但其实是目前最常见的隐私追踪手段之一,粉尘攻击就是有人故意往你的钱包地址里塞极小额的比特币(比如几百个聪,价值可能只有几分钱),这些小额比特币就叫“粉尘”。

UTXO模型下的比特币粉尘攻击:地址追踪原理

攻击者并不是想偷你的钱,而是把这些粉尘当成“隐形标签”,一旦你在后续正常交易时把粉尘和其他比特币一起花掉,攻击者就能通过区块链公开记录,把你原本看起来毫不相关的地址慢慢关联起来,最终画出你的地址网络图。

比特币采用的是UTXO模型

每次花钱时,钱包需要把一个或多个“未花费输出”(UTXO)全部当作输入一起消耗掉,攻击者正是利用这个特性,通过粉尘把分散的地址“粘”在一起,粉尘攻击不偷钱、不黑你的私钥,只是在暗中收集你的地址关联信息,为后面的精准钓鱼或定向攻击做准备。

粉尘攻击的具体原理(UTXO模型是怎么被利用的)

比特币的UTXO模型是粉尘攻击最核心的“帮凶”,在比特币里,用户的余额不是一个简单的数字,而是由很多个独立的“未花费交易输出”(UTXO)组成的,每次你转账钱包必须选中一个或多个UTXO作为输入(Input),把它们全部花光,然后再生成新的输出给对方和找零。

粉尘攻击的原理

1、攻击者先用脚本向大量地址发送极小的粉尘,每个粉尘就是一个独立的UTXO。

2、当你正常转账时,钱包往往会自动把这个小粉尘UTXO和你的正常大额UTXO一起选中,作为输入。

3、一旦这笔交易上链,攻击者就能看到,“这个粉尘UTXO和某个正常UTXO被同时花费了”,从而推断它们属于同一个实体。

这就是比特币里著名的共同输入所有权启发式(Common-input-ownership heuristic),只要两个UTXO在同一笔交易中同时作为输入被花费,攻击者就认为它们大概率属于同一个人,粉尘本身不值钱,但它一旦被你“带上车”,就成了连接不同地址的桥梁。

真实例子,地址A和地址B是如何被关联起来的

假设你有两个比特币地址

1、地址A:1Axxx...(你平时收币用的地址)

2、地址B:1Bxxx...(你另一个存币用的地址)

攻击者第一步:撒粉尘

攻击者分别给地址A和地址B各转了一笔极小的粉尘

1、给地址A发送粉尘UTXO1(0.000005 BTC)

2、给地址B发送粉尘UTXO2(0.000004 BTC)

用户可能根本没注意到钱包里多了这两笔几毛钱的转账。

用户正常转账

1、你从地址A转0.5 BTC给朋友C时,钱包自动把正常大额UTXO +粉尘UTXO1一起用了。

2、过几天,你从地址B转0.3 BTC给朋友C时,钱包又把正常UTXO +粉尘UTXO2一起用了。

攻击者看到区块链记录

两次交易的输入里都包含了攻击者自己发的粉尘,而且两次都转给了同一个地址C,攻击者基本可以确定,地址A和地址B属于同一个人。

免责声明:本文所有内容及观点仅供参考,不构成投资建议,不代表本站观点和立场。投资者应自行决策与交易,对投资者交易形成的直接或间接损失,作者及本站将不承担任何责任!