交易记录里的陌生同款:地址投毒的识别与转账纪律 图 1
交易记录里的陌生同款:地址投毒的识别与转账纪律 · 图 1

历史记录也会脏:一种不碰你私钥的窃贼

绝大多数钱包攻击都在打私钥的主意,地址投毒是个异类:它对你的密钥毫无兴趣,只负责往你的地址旁边撒假种子。攻击者用程序生成一串与你常用地址首尾几个字符完全相同的「孪生地址」,然后给你和这个孪生地址之间制造一笔哪怕只有一分钱的小额交易。从此,你的钱包交易历史里就多了一个以假乱真的条目——它躺在你「最近转账记录」的第一屏,开头和结尾和你真正用过的地址一模一样。

下一次你急着转账,从历史记录里点开一个地址、扫一眼首尾确认没错、粘贴、发送——整条链路里你做的每一步检查看起来都合格,唯独检查的对象从源头就被换掉了。这不是猜想,链上大量存在这种只为投毒而生、一辈子只出现几次的孪生地址,它们唯一的使命就是混进某个人的交易列表里蹲守。

为什么首尾核对在这招面前失灵

我们被反复教育「转账前要核对地址」,多数人养成的习惯是核对开头四位和结尾四位。这个习惯在防剪贴板替换时很好用,因为那种攻击生成的替换地址通常首尾都不像;但投毒攻击是反着你的习惯定制答案的:它专门挑选人类会扫读的位置做伪装,中间几十位差异在视觉上和噪声没有区别。你越信任自己的交易历史,这招越好使——毕竟「我自己钱包里的记录」几乎是普通人能找到的最可信地址来源。

打破这个信任幻觉的关键认知是:交易历史是一个任何人都能往里面写东西的公共信箱。别人可以单方面给你转一分钱,也可以对任何一个仿造地址执行同样的操作,而你的钱包忠实地把这一切按时间排列出来。它只是记账本,不是通讯录。

从复制到确认的四条纪律

第一,把「从历史记录里点地址」降级为最后选择。地址的可信度排序应该是:对方当面出示或电话报读>你在离线地址本里亲手维护的标签条目>区块链浏览器里多源验证过的记录>钱包首屏的历史列表。急着转账时最容易跳过前三级直达第四级,而投毒就埋伏在那里。

第二,核对方式从「首尾四位」升级为「结构比对」:把要转入的地址完整显示在屏幕上,和来源地址逐段比对——不是扫一眼,是像校对文稿一样分成三到四段依次确认;更好的办法是核对整串,或者使用钱包的地址标签功能,让「这个地址叫张三」代替「这串符号眼熟」。

第三,给自己立一条「新地址新交易」的仪式:向任何历史之外的地址转账,或者从历史里选地址时心里有一点不确定,就先发一笔测试小额,并要求对方回报交易哈希,你去浏览器里核对哈希指向的收款地址,以哈希为准绳而不是以列表为准绳。

第四,警惕「小额入账」这种馈赠。无缘无故出现在你账上的陌生小额转账和陌生代币,多数不是运气而是投毒或诱饵的一部分。它们的存在本身就是信息:有人知道你在用这个地址,并且正在为将来的某次转账布景。

转错了怎么办

链上转账不可逆,这条在投毒场景下格外残酷。如果确认转入了孪生地址,第一件事是完整保存证据:那笔转账的交易哈希、时间、以及当初污染你列表的那笔「投毒交易」的哈希——后者是追溯攻击者资金路径的入口。如果孪生地址的资金有活跃去向(转到交易所等实名制通道),及时向执法机关报案并提供这两条哈希线索;如果地址完全静默,也要把证据归档,防止未来出现「帮你追回」的二次骗局拿它当诱饵。整个过程里任何声称能「拦截」「冻结」这笔钱的个人与工具,都按骗局处理。投毒攻击赌的是你三秒钟的疏忽,防御它的办法,是把自己每次转账的三秒钟换成一分钟的仪式。本指南只提供防御与处置建议,不构成任何投资建议。