什么是尘埃攻击及其工作原理

上周,我的钱包收到了一笔奇怪的交易:有人给我转了仅仅0.00001 USDC。光是 gas 费就比转账金额贵得多。
0.00001 USDC
我自然很纳闷,为什么会有人费力不讨好地发这么一点点钱?
在区块链浏览器上查看交易详情后,我发现**“from”地址的资金来源是一个被标记为“钓鱼诈骗”**的钱包。
from address
随后我在网上搜索了类似案例,得出结论:这很可能是一次尘埃攻击
那么,尘埃攻击到底是什么?

1. 什么是尘埃攻击

尘埃攻击(也称 dusting attack)是指攻击者向目标钱包发送极少量的加密货币——称为尘埃(dust)——以达到去匿名化钱包拥有者的目的。收集到的信息随后可用于定向钓鱼攻击
来源:区块链安全报告中的常见定义(如 Chainalysis、CipherTrace)。
你可能和我一样,仍然对实际风险感到困惑。毕竟区块链上所有交易都是公开的——几笔聪或 wei 能有什么区别?
答案在于链上关系图的规模和复杂性。一个地址可能与其他成千上万个地址发生交互,形成巨大的网络。手动识别归属集群既耗时又不现实。尘埃为攻击者提供了一个低成本的钩子,能大幅简化他们的分析工作。

2. 攻击原理

比特币(UTXO 模型)

这种技术最早出现在比特币链上,最初用于合法的反洗钱目的。比特币鼓励每次交易使用新地址。当你花费币时,剩余的找零会被发送到你控制的新的找零地址
如果攻击者在你的某个地址上发送尘埃,而你之后在交易中动用了包含该尘埃 UTXO 的输入,尘埃就会与其他资金合并并发送到一个新地址。这就暴露了新地址与原地址属于同一实体——极大减少了攻击者进行穷尽式图分析的必要性。

以太坊及 L2(账户模型)

账户模型链(如以太坊和 Arbitrum)上,尘埃攻击的原理有所不同。攻击者无法依赖 UTXO 合并,但仍会利用尘埃来:
  1. 诱导用户与恶意合约交互
  2. 制造地址投毒机会(见下文)。
由于 L2 的 gas 费极低,攻击者可以廉价地向数百万个地址发送尘埃,从而衍生出多种攻击变种。

地址投毒(Address Poisoning)
一旦攻击者确认两个地址属于同一用户,他们就会生成一个外观相似的地址,共享相同的前缀和后缀。 例如:
  • 真实地址:0x1234...6789
  • 伪造地址:0x1234...678A
钱包通常只显示首尾各 4 个字符(0x1234…6789)。用户从历史记录复制时,可能粘贴伪造地址,从而无意中把资金转给攻击者。
虚假空投(Fake Airdrop)
攻击者冒充热门 DeFi/NFT 项目,在社交媒体上宣布虚假空投,并引导受害者访问钓鱼网站。用户会被要求签署无限额度的批准交易(即允许攻击者随意操作你的代币)。他们可能先收到一些毫无价值的“空投”代币,以降低警惕。一旦收集到足够多的批准,攻击者就会盗取真实资产。

3. 如何预防

  • 在钱包设置中开启“隐藏小额余额”(或类似功能)。
  • 永远不要移动尘埃——让它留在原地不动。
  • 仔细核对网站域名,避免点击可疑链接。
  • 绝不签署无限额度的批准交易,即使项目看似合法。
  • 为高价值操作使用专用地址,并将含有尘埃的地址隔离。

PASS IT ON