
图片资料:官方来源
交易记录里出现一笔金额极小、甚至为零的入账,发送方地址和你常用地址的开头、结尾几乎一样。这时需要警惕地址投毒的可能:攻击者生成外观相近的地址,主动向你的地址发起一笔无足轻重的交易,让假地址留在历史记录里,等你下次转账时顺手复制。但也要注意,首尾相似并不自动等于恶意——公开链上任何人都能向任意地址发交易,是否属于投毒,要看它是否被用来替换你真正要用的地址。MetaMask 的安全文档把这类攻击描述为利用用户复制地址的匆忙习惯,并建议核对地址中段、不要从交易历史复制地址。
首尾相同,中间才是被伪装的部分
以以太坊为例,地址是四十位十六进制字符,普通用户很难逐位记住,日常依赖复制粘贴,识别时又习惯只看前几位和后几位。钱包界面通常把地址缩略显示,首尾一致恰恰掩盖了真正需要核对的中段。投毒者用工具批量生成首尾相同、中段不同的地址,再向目标地址发送零值或极小额的代币转账。这笔入账会出现在记录里,改变你的显示内容,但它的目的只是制造一个“看起来眼熟”的复制对象。
需要区分的两件事:收到小额或零值入账,只说明有人向这个公开地址发起了交易,不说明地址主人参与了任何操作,更不构成身份认证;缩略后的首尾一致,也不能当作地址正确的依据。一笔测试性质的小额入账,既不能证明对方控制该地址的意图,也不能证明它就是你要找的人。把“记录里出现过”当成“我确认过”,正是这类攻击希望养成的习惯。
发送前怎么核对
不要从交易历史里复制地址。先确定独立来源:对方此前发给你的收款信息、你自己保存并确认过的地址簿条目,或者你本人账户在平台官方充值页面显示的专属充值地址——不是平台上公布的某个通用地址。把目标地址与这个已确认来源并排,逐段读完整地址,重点比对中段,而不是只扫首尾。首尾相同、中段不同,就是典型的高危信号。
常用地址确认后存进钱包的地址簿,之后直接从簿中选取。大额转账前先小额试发,但试发对象仍应是已确认地址;试发的意义是验证链路和到账情况,不是用一笔小额去“认证”一个来路不明的地址。部分钱包会在目标地址与历史记录高度相似时弹出提醒,或对从未交互过的地址给出提示,这类提示值得停下来看,但它只是辅助,不能替代逐位核对。硬件钱包要求在设备屏幕上确认收款地址,多一道人工核对环节,同样依赖你认真比对。
发送端的习惯比拦截更重要
公开区块链上,别人向你的地址发送交易这件事本身不受你控制。钱包能做的是在界面层面隐藏或标记可疑记录、在你发送时给出相似地址警告,但它无法阻止交易进入你的地址,也无法替你判断某个地址是否可信。真正能控制的是发送端动作:不盲抄历史记录、比对完整地址、使用已确认的地址来源。把这几步做扎实,比寻找“防投毒开关”更实际。
一个假设算例
假设你已确认的自有地址为 0x4f3a…9c2e,某天记录里出现一笔 0 USDT 入账,来自一个首尾相同、仅中段若干字符不同的地址。若你下次向自己另一个账户转账时从历史记录复制了这个假地址,转出的资金将进入攻击者控制的地址,链上确认后不可撤回。若你从地址簿调出已确认地址,并逐段比对完整字符串,就能发现中段不符而停下。区别不在金额大小,而在复制来源和核对是否覆盖完整地址。
把“记录里出现过”和“我确认过”分开,是应对这类投毒最实用的一条习惯。