一句话回答: 地址投毒的做法,是往你自己的交易历史里塞一条长得很像的地址。攻击者用一个首尾几位和你真实用过的地址完全一致的地址,给你发一笔毫无价值的交易。之后你从历史记录里复制地址,扫一眼首尾,看着对上了,钱就转给了攻击者。
没有任何东西被黑。你的钱包也没有被攻破。这个攻击针对的是一个习惯——只核对地址的开头和结尾。

这个攻击是怎么搭起来的
加密地址又长又难读,所以每个钱包都会缩略显示:0x7a3f...9c21。于是所有人都学会了「对比看得见的首尾」这个校验方法。
攻击者把「生成符合指定前缀和后缀的地址」这件事自动化了。造一个以 0x7a3f 开头、9c21 结尾的地址,计算成本很低;但造一个整串完全相同的地址是不可能的——这正是为什么这个攻击要指望你永远不看中间那一段。
真正让它奏效的是投放环节:
- 攻击者监控公开的链上活动,看到你往某个地址转了钱。
- 生成一个和那个地址长得很像的地址。
- 用这个假地址给你发一笔零金额或粉尘交易——常常是一点点假代币,有时干脆就是 0。
- 这条记录就进入了你的交易历史,紧挨着你的真实转账。
- 下次你要给同一个对手方转账,翻历史、复制「我上次用的那个地址」、核对首尾。对上了。
有些变种更进一步,会在你真实转账之后立刻发出粉尘交易,让两条记录并排出现,而假的那条在上面。
为什么谨慎的人也会中招
这个攻击并不依赖通常意义上的粗心。它击穿的恰恰是大多数教程都在推荐的那套校验方法——核对首尾几位。风险最高的,反而是那些转账频繁、以至于「从历史里复制」已经变成自然而然的动作的人。
它还很有耐心。那条粉尘交易可以在你的历史里躺上几个月,等你哪天用到它。
怎么防
1. 永远不要从交易历史里复制地址。 这一条就能彻底破解这个攻击。历史记录是攻击者可写的——任何人都能往里塞条目。永远从源头复制:收款方当前的充值页面,或你自己钱包的收款页。
2. 用地址簿或白名单。 把验证过的地址存成带清晰标签的条目,只从这些条目发起转账。在交易所要打开提币白名单,让非批准地址直接被拒。见 提币地址白名单怎么设?为什么它能挡住最贵的错误。
3. 核对中间段,不要只看首尾。 如果必须手动核对,就比对地址正中间的一串字符。那才是攻击者伪造不了的部分。
4. 新地址或大额转账,先小额测试。 先发一笔小的确认路径通畅,再转剩下的。
5. 收到来路不明的代币和粉尘,不要碰。 不要交互、不要试着卖掉,也不要访问代币名称里写的任何网址。有些假代币的设计就是:只要你去交互,就会触发一个恶意授权。
6. 隐藏,而不是处理。 大多数钱包支持隐藏垃圾代币。隐藏是安全的,交互不是。
收到粉尘交易该怎么办
什么都不做。这就是正确答案。
收到一笔粉尘或零金额交易,本身是无害的。它不会让发送方获得你钱包的任何权限,也无法转走你的资产。它是一条投放在你历史里的广告,不是一次入侵。
具体来说,不要:
- 试着转回去——那等于付一笔手续费去和攻击者的地址交互。
- 兑换或卖掉那个代币。
- 访问代币名称里嵌的网址。
- 把钱包连接到任何声称能「清理你的历史记录」的网站。
要做的是:
- 在钱包界面里把这个代币隐藏掉。
- 从此把历史记录里的每一个地址都当作不可信。
如果已经转给了投毒地址
先确认事实,然后接受现实:
- 拿到 TXID,在区块浏览器上确认钱去了哪里。见 区块浏览器怎么用?看懂一笔交易的完整方法。
- 如果收款方是交易所,带着 TXID 向该交易所举报——及时上报偶尔能冻结资金,但这种情况并不常见。
- 如果收款方是个人地址,资金无法找回。没有任何服务能撤销一笔已确认的交易。
- 如果你愿意,可以向所在地区的相关部门报案。
- 拒绝一切「找回」邀约。 任何在你损失后主动联系你的人,都是在做紧随其后的第二轮骗局。第一次损失会让你成为第二次的目标。
然后,在下一笔转账之前,把那个导致中招的习惯改掉。
常见问题 FAQ
Q:他们发一笔粉尘就能偷我的钱吗? A:不能。收到一笔交易不会让发送方获得对你钱包的任何控制权。风险完全在于你接下来做了什么。
Q:我的钱包被攻破了吗? A:没有。你的私钥不受影响。攻击者只是往一个公开账本上写了一条公开记录。
Q:为什么盯上我? A:通常不是针对你个人。区块链是公开的,这类攻击是自动化、大规模地针对所有有可见活动的地址。
Q:硬件钱包能防住吗? A:部分能。硬件钱包会在自己屏幕上显示完整地址供你确认,这给了你真正发现问题的机会——但前提是你真的读了,而不是直接按确认。
Q:能把粉尘记录从历史里删掉吗? A:不能。链上历史是永久的。在钱包界面隐藏它就够了。
Q:交易所能防这个吗? A:提币白名单可以,而且很有效。对交易所用户来说,这是能拿到的最强的实用防护。
相关阅读
本文为安全科普,不构成投资建议。攻击手法会演变,请把本文视作一类模式的描述,而非穷尽清单。推广与佣金关系详见 推广与佣金披露。