什么是尘埃攻击及其工作原理
上周,我的钱包收到了一笔奇怪的交易:有人给我转了仅仅0.00001 USDC。光是 gas 费就比转账金额贵得多。

我自然很纳闷,为什么会有人费力不讨好地发这么一点点钱?
在区块链浏览器上查看交易详情后,我发现**“from”地址的资金来源是一个被标记为“钓鱼诈骗”**的钱包。

随后我在网上搜索了类似案例,得出结论:这很可能是一次尘埃攻击。
那么,尘埃攻击到底是什么?
1. 什么是尘埃攻击
尘埃攻击(也称 dusting attack)是指攻击者向目标钱包发送极少量的加密货币——称为尘埃(dust)——以达到去匿名化钱包拥有者的目的。收集到的信息随后可用于定向钓鱼攻击。
来源:区块链安全报告中的常见定义(如 Chainalysis、CipherTrace)。
你可能和我一样,仍然对实际风险感到困惑。毕竟区块链上所有交易都是公开的——几笔聪或 wei 能有什么区别?
答案在于链上关系图的规模和复杂性。一个地址可能与其他成千上万个地址发生交互,形成巨大的网络。手动识别归属集群既耗时又不现实。尘埃为攻击者提供了一个低成本的钩子,能大幅简化他们的分析工作。
2. 攻击原理
比特币(UTXO 模型)
这种技术最早出现在比特币链上,最初用于合法的反洗钱目的。比特币鼓励每次交易使用新地址。当你花费币时,剩余的找零会被发送到你控制的新的找零地址。
如果攻击者在你的某个地址上发送尘埃,而你之后在交易中动用了包含该尘埃 UTXO 的输入,尘埃就会与其他资金合并并发送到一个新地址。这就暴露了新地址与原地址属于同一实体——极大减少了攻击者进行穷尽式图分析的必要性。
以太坊及 L2(账户模型)
在账户模型链(如以太坊和 Arbitrum)上,尘埃攻击的原理有所不同。攻击者无法依赖 UTXO 合并,但仍会利用尘埃来:
- 诱导用户与恶意合约交互。
- 制造地址投毒机会(见下文)。
由于 L2 的 gas 费极低,攻击者可以廉价地向数百万个地址发送尘埃,从而衍生出多种攻击变种。
地址投毒(Address Poisoning)
一旦攻击者确认两个地址属于同一用户,他们就会生成一个外观相似的地址,共享相同的前缀和后缀。
例如:
- 真实地址:
0x1234...6789 - 伪造地址:
0x1234...678A
钱包通常只显示首尾各 4 个字符(
0x1234…6789)。用户从历史记录复制时,可能粘贴伪造地址,从而无意中把资金转给攻击者。虚假空投(Fake Airdrop)
攻击者冒充热门 DeFi/NFT 项目,在社交媒体上宣布虚假空投,并引导受害者访问钓鱼网站。用户会被要求签署无限额度的批准交易(即允许攻击者随意操作你的代币)。他们可能先收到一些毫无价值的“空投”代币,以降低警惕。一旦收集到足够多的批准,攻击者就会盗取真实资产。
3. 如何预防
- 在钱包设置中开启“隐藏小额余额”(或类似功能)。
- 永远不要移动尘埃——让它留在原地不动。
- 仔细核对网站域名,避免点击可疑链接。
- 绝不签署无限额度的批准交易,即使项目看似合法。
- 为高价值操作使用专用地址,并将含有尘埃的地址隔离。
PASS IT ON
