跳转到正文
buybitcoinsmart

术语表 /隐私与安全

粉尘攻击

又称 Dusting attack。

粉尘攻击是什么?
粉尘攻击是向数千个地址发送极小额付款,以便发送者观察其中哪些地址日后被一起花费,从而将彼此独立的地址关联到同一所有者。

攻击者放置的是追踪信标,并非窃取任何资产。2019年8月的一次粉尘攻击行动,在一次批量发送中向294,582个莱特币地址各发送了0.00000546 LTC,同样的手法也适用于比特币,每个目标只需几百聪。粉尘只有在您花费它时才会奏效,因此不去动它就是完整的防御。

运作方式

这种攻击依赖于链上分析人员对每笔交易都会作出的一个假设:如果两个输出被用作同一笔交易的输入,则这两个密钥由同一个人控制。

这一假设通常是正确的,也正是它把一堆互不相关的地址变成了一个钱包集群。粉尘攻击正是利用了这一点。发送者不必等您自己暴露关联,而是在自己选定的地址上放置一个输出,等待您的钱包把它与原本无法与您关联的资金一并花费。

过程很简短:

  1. 发送者选定目标:从交易所提币时出现的提币地址、公开发布的地址,或从区块浏览器抓取的整段地址范围。
  2. 发送者向每个地址支付几百聪,略高于网络愿意转发的最低金额。
  3. 在数周或数月内没有任何动静。
  4. 您的钱包构建一笔付款,其选币算法会选中这个小额输出(因为小额输出纳入成本低),于是该笔交易中的所有其他输入就可以被证明与这个被撒粉尘的地址相关联。

成本低使这种做法切实可行。每增加一个输出,攻击者的交易就增加约31虚拟字节,因此按5 sat/vB 计算,一千个目标的手续费约为155,000聪,外加粉尘本身。把数千个输出批量放入少数几笔交易中,监视整批地址的成本就降到一顿饭的价钱。

并非每一笔来历不明的小额付款都是监视。如今到达钱包的许多小额付款其实是广告(在交易标签或附带信息中塞入网址),或是用于相似地址诈骗的诱饵。三种情况的应对方式相同。

购买比特币时为何重要

在交易所购买比特币时,您的身份和一个链上地址会被记录在同一个地方。

本站评测的每一家大型交易平台,从 Kraken 和 Coinbase 到 Bitpanda 和 Luno,都会在允许您提币之前验证身份。这是本站所涵盖的231个国家中大多数国家的法律要求,并非某一家公司的特例。这意味着去匿名化中最困难的一步,即把法定姓名与地址联系起来,已经完成并存放在合规数据库中。剩下的就是这个初始地址与您之后所有操作之间的对应关系,而这正是粉尘攻击试图建立的。

实际的防御是钱包功能,而不是一种心态。请使用选币功能(coin control),它让您能够查看并选择单个输出,而不是由软件替您挑选。Sparrow、Electrum 和 BlueWallet 更进一步,允许您冻结某个输出,使自动选币永远无法动用它;Trezor Suite 则允许您在每次发送时手动选择输入。在粉尘到达当天就为其添加标签并冻结,它就会成为您余额中永久的零。

有两个习惯比任何工具都重要。除非您愿意让不同来源的输出被公开关联,否则不要把它们合并到同一笔交易中;每次都使用全新的收款地址,而不要重复使用,因为被重复使用的地址是一个永不过期的目标。

2019年8月的莱特币批量攻击

大规模粉尘攻击最清晰的公开案例并不发生在比特币上,其中的算术值得一读。

2019年8月,Binance 的安全团队报告称,294,582个莱特币地址在一次协同批量发送中各收到了0.00000546 LTC。乘起来看:整个行动共转移了约1.6 LTC,而当月莱特币的价格约为80美元,因此发送者的粉尘成本在扣除手续费前不到150美元。换来的是对近300,000个地址同时布下的绊线,每个地址都在静静等待其所有者做出一次疏忽的花费。

546这个数字并非巧合,它也解释了比特币粉尘攻击为何是这个样子。它是 Bitcoin Core 对传统输出设定的转发门槛,被沿用到了莱特币上,而攻击者按最低限额计价,因为高于它的每一聪都是浪费。

粉尘攻击 vs 粉尘限额

粉尘攻击是一种行为;粉尘限额是该行为所参照的规则。限额规定了网络愿意转发的最小输出,而粉尘攻击发送的正是这个金额,一分不多。不过,把一笔546聪的入账视为遭受攻击的证据是错误的:找零输出、失败的测试付款和闪电网络通道关闭,都会正常地产生小额款项。

粉尘攻击 vs 地址投毒

两者都表现为一笔来历不明的小额付款,但它们对您的要求截然相反。粉尘攻击希望您花掉这笔币,从而把您的其他资金牵连进同一笔交易。地址投毒希望您查看发送者,把其相似地址误认为是您自己的某个地址,并在日后的付款中复制它。粉尘攻击是监视,损失的是隐私;投毒是盗窃,损失的是余额。

请勿混淆

常见问题

有人能通过向我发送粉尘来盗取我的比特币吗?

不能。收到任何金额都是无害的,因为一笔转入的付款不会让发送方获得对您密钥的任何控制权。风险完全在于您之后的操作:将粉尘与您的其他币一起花费,才会暴露两者属于同一个人。

我应该花掉粉尘,把它从钱包中清除吗?

不应该,这正是发送方花钱想要达到的结果。请在支持选币功能(coin control)的钱包中冻结该输出,加上标签以便记住原因,并将其永久搁置。置之不理不会给您带来任何成本。

如何区分粉尘攻击和真实的小额付款?

通常无法区分,也无需区分。无论意图如何,请将任何低于几千聪的意外入账视为不可动用,因为冻结一笔如此小额的真实付款,成本可以忽略不计。

接着阅读

相关术语

隐私与安全中的更多术语

阅读本页英文版