一串 42 位的钱包地址,大多数人核对时只会看开头四五位和结尾四五位。地址投毒盯上的就是这个习惯:攻击者造一个头尾几位和你常用地址相同的新地址,再往你钱包里转一笔极小甚至零金额的“记录”,让它排进你的转账历史,等你下次从历史里复制地址时就转错。

地址投毒(address poisoning)这类骗局,不需要你泄露助记词,也不需要你点任何授权。它不攻破钱包,只利用“人会偷懒”。

先看结论

核心要点

  • 地址投毒的手法是:生成与你常用地址头尾相同的相似地址,用小额或零金额转账把它塞进你的交易记录。
  • 它不动你的私钥,也不需要授权;真正造成损失的是你自己发出的那一笔转账。
  • 链上转账不可撤回,转到相似地址后基本没法自己取回。
  • 区块链浏览器和钱包里“最近转账对象”这类历史记录,不等于你的通讯录,不能当可信来源。
  • 转账前,把完整地址从头到尾逐位核对;大额、首次转账时,再先做一笔小额试转。两步都做,成本很低。

风险与边界

  • 适用地区:不分地区。以太坊、BNB Chain、波场等使用长串地址的公链都可能遇到。
  • 中国大陆:境内的虚拟货币兑换、交易等行为受监管文件约束,可参考中国大陆虚拟货币监管文件怎么看。
  • 主要风险点:①从转账历史复制地址;②只核对头尾几位;③大额转账不先试小额。
  • 该核对的证据:自己保存的地址簿、收款方在独立渠道发来的完整地址、区块链浏览器里该地址的完整字符。
  • 资料截至:2026-10-02,引用的研究数据时间范围见正文各处标注。

地址投毒是怎么一步步发生的?

四步过程

投毒记录通常不会触发明显的资产变动提醒,过程可以拆成四步。

  1. 盯上你:攻击者监控链上交易,发现你刚向某个地址(比如你的另一个钱包、常付款的朋友)转过账。
  2. 造相似地址:他们批量生成地址,挑出头尾几位与你刚转过的地址一致的那个。研究者观察到,有大型攻击团伙用 GPU 做这种批量生成。
  3. 污染记录:用这个相似地址给你的钱包发一笔转账,让它出现在你的交易历史里。常见的有三种:真实代币的小额转账(如几分钱的稳定币)、伪造的同名代币转账、金额为零的代币转账。
  4. 等你复制:你下次转账时,从最近记录里复制地址,只扫一眼头尾“对得上”就确认发送。

三类投毒记录

Etherscan 在其说明页中把这三类小额记录称为 dust transfer、spoofed token transfer 和 zero-value token transfer,并提到浏览器默认隐藏零金额代币转账,对可疑地址打上标签。

为什么零金额转账也能“转进来”

普通的 ERC-20 transfer 只能从调用者自己的地址转出,没法冒充别人。典型的零金额投毒用的是 transferFrom:部分 ERC-20 合约在金额为零时不检查授权额度,攻击者可以调用零金额 transferFrom,在没有任何资产转移的情况下,生成一条看似由你的地址转给相似地址的事件记录。具体表现取决于代币合约的实现。这类记录会被区块链浏览器和一些钱包当作一次普通转账展示出来。你的钱包并没有“收到”或“转出”钱,只是记录里多了一行。这一行看起来像你刚转过的地址,正是它的作用。技术细节可参考 OpenZeppelin 对零金额转账攻击的分析和 Coinbase 的零转账钓鱼分析。

它有多常见?两份数据怎么读

同一研究的子集与总量不能相加

两行数据出自同一项研究(USENIX Security 2025 论文),只是范围不同:上面一行是论文里的以太坊子集,下面一行是以太坊与 BNB Chain 的合计,前者已经包含在后者之中,不能相加。

来源统计范围结果
论文的 Ethereum 子集(经 Etherscan 说明页转述)以太坊,2022 年 7 月至 2024 年 6 月约 1700 万次投毒尝试,针对约 130 万用户,已确认损失至少 7930 万美元
论文的 Ethereum+BSC 总量(USENIX Security 2025 论文页,arXiv 摘要)以太坊与 BNB Chain,两年测量期识别约 2.7 亿次链上攻击,约 1700 万名受害对象,6633 起有记录的损失事件,合计至少 8380 万美元

成功率该怎样理解

成功率很低,但攻击成本更低。 Etherscan 页面给出的单次尝试成功率约 0.01%。攻击者靠批量撒网取胜,所以“我不是大户”不能当理由;研究也提到,转账频繁、持币较多、单笔金额较大的地址收到的投毒更多。

单笔损失有多大

按论文给出的 6633 起事件和 8380 万美元粗算,平均每起约 1.26 万美元(本文自行相除,仅作量级参考,实际分布差异很大)。

为什么“头尾对得上”并不能证明地址一致?

只核对头尾 4 位

以太坊类地址是 40 位十六进制字符(加 0x 前缀)。每一位有 16 种可能。

只核对开头 4 位和结尾 4 位,等于只检查 8 位字符。要碰巧撞上这 8 位,大约需要 16 的 8 次方,即约 43 亿次尝试。这个数字对个人手算很大,对用显卡批量生成的攻击者并不大。

扩到头尾各 6 位也不够

把核对范围扩到头尾各 6 位,需要约 16 的 12 次方,约 2.8 万亿次,难度上了好几个数量级,但仍然只覆盖了 40 位里的 12 位。中间 28 位完全没看,攻击者不需要碰它们。

只看头尾,是在核对“看起来像不像”,不是在核对“是不是同一个”。

所以防护重点不是“多看几位”,而是换掉复制地址的来源。

和钓鱼网站、授权钓鱼有什么不同?

三种风险对照

三种风险都可能让资产被转走,但攻击路径和你该守的环节不一样。

对照项地址投毒钓鱼网站授权钓鱼
攻击入口你的转账历史仿冒网页、群聊链接看似正常的授权或签名弹窗
攻击者需要你做什么向错误地址转一笔账视骗局而定:输入助记词或私钥;签署恶意签名;点授权或转账签一次恶意授权或离线签名
谁发出损失交易你自己(转错地址)你,或拿到密钥、授权的攻击者攻击者在授权额度内转走
事后怎么处置已转出的资产无法撤销,只能保存证据密钥已泄露:换新钱包并转移剩余资产;只是恶意授权:撤销授权撤销授权,并检查其他授权
守住哪一环收款地址的来源网址与来源弹窗内容与额度

地址投毒的特殊之处

想了解另外两类的识别方法,可参考钓鱼网站怎么识别和钱包授权是什么。地址投毒的特殊之处在于:它让你亲手完成收尾一步,所以钱包里没有“异常授权”可查,撤销授权也帮不上忙。

转账前怎么判断,走一遍这张流程

对着自己的转账逐项走,每一步都有明确的“停”或“继续”。

先查地址来源和记录

第一步:地址从哪来的?

  • 来自你自己保存的地址簿,或收款方在独立渠道(当面、已验证的通讯账号)给的完整地址 → 进入第二步。
  • 来自钱包或浏览器里的“最近转账”“历史记录” → 停,这类来源可能被投毒记录污染,回到独立渠道取地址。

第二步:有没有出现“头尾像、中间不同”的两个地址?

  • 打开你的转账记录,找有没有两个地址头尾几位相同。有 → 高度怀疑其中一个是投毒地址,停,以你保存的完整地址为准。
  • 没有 → 进入第三步。

第三步:那笔让你熟悉的记录是什么?

  • 记录里有你从没主动操作过的小额、零金额或陌生代币转账 → 把它当作广告垃圾,不要从它旁边复制任何地址。
  • 都是你自己的操作 → 进入第四步。

再查完整地址和金额

第四步:完整地址逐段核对了吗?

  • 把粘贴出来的地址与保存的地址从头到尾逐位对照,分段做也要把每一段都核对完,不能只看头尾或抽几段 → 通过后进入第五步。
  • 做不到逐段核对 → 停,用扫码或地址簿功能代替手动复制。

第五步:金额大不大?

  • 金额较大、且是第一次向该地址转账 → 先小额转一笔,等收款方确认收到,再转剩余部分。小额试转要多付一笔手续费,能在正式转账前暴露地址复制错误,但不能替代完整核对。
  • 日常小额且地址已多次核对 → 可继续。

任何一步出现“停”,都不要靠“应该没事”硬往下走。

钱包和浏览器本身能帮上什么?

说明页给出的四条做法

Etherscan 在说明页里给出的用户端做法有四条:给常用地址设私人标签或绑定 ENS 名称;开启地址高亮,让相似地址一眼可分;转账前核对目的地址;使用地址簿保存常用地址。

这些做法的限度

这几条的共同思路是:让“常用地址”来自你保存过的东西,而不是来自链上的随机记录。需要提醒的是,浏览器隐藏零金额转账、给可疑地址贴标签,只能降低看到的概率,不能保证它们都被识别,不能替代你自己的核对。关于地址标签本身为什么不能当身份证明,可参考链上地址标签是什么。

已经转错了怎么办?

发现后先做什么

链上转账一经确认,不能由发送方撤回。如果你发现转到了相似地址:

  1. 先停下,不要再往同一个地址或钱包里转账。
  2. 在区块链浏览器里保存交易哈希、双方地址、时间、金额。
  3. 对方地址的控制人是攻击者,不要相信陌生人私信发来的“追回”服务,那常常是二次诈骗。
  4. 若损失金额较大,可向所在地公安机关报案,并把这些链上记录作为材料。资产能否追回取决于对方地址是否经过可被冻结的平台,没有保证。

追回的现实

不要把追回寄托在“联系地址主人”上。更实际的做法是在转账前就用五步自查把风险挡住。

读完记住:

  • 转账历史不是地址簿,别从里面复制地址。
  • 头尾几位相同,不代表是同一个地址。
  • 大额、首次转账,先小额试路径。
  • 记录里出现陌生的小额或零金额转账,当垃圾信息处理,不回应、不点击。

常见问题

Q: 地址投毒会让我的助记词或私钥泄露吗?

答: 不会。它不需要你的密钥,也不要你授权。出问题的是你主动转账、复制错地址那一步。

Q: 我收到一笔来路不明的小额转账,钱包是不是已经被盗了?

答: 不一定。这类转账多半是攻击者在“投毒”,你的资产没被动用。要留心的是之后别从这条记录里复制地址,其他处理按转账前的五步自查走。

Q: 为什么零金额也能给我发转账?

答: 部分代币合约在金额为零时不检查授权,攻击者调用零金额 transferFrom,就能生成一条看似由你的地址转出的记录。区块链浏览器会显示成一条转账,但并没有资产真正移动。

Q: 用 ENS 名称或地址簿,能完全避免吗?

答: 不能完全避免,但能明显减少。关键是名称或地址簿里的地址得是你自己核对过、保存下来的。要是保存的时候就复制错了,错误会一直留在里面。

Q: 浏览器已经隐藏了零金额转账,我还要小心吗?

答: 要。隐藏只是默认的展示方式,而且攻击者还会用小额真代币或伪造代币转账,这些未必会被隐藏。

Q: 钱包被盗和地址投毒怎么区分?

答: 被盗一般是授权或密钥被利用,资产在你不知情时被转走;地址投毒是你自己发起了转账,只是地址错了。前者要撤销授权、换钱包,后者撤销授权没什么用。

Q: 转错之后能追回吗?

答: 没有保证。链上交易不能撤销,追回只能靠对方地址相关平台配合或走司法程序,周期长、结果也不确定,别信那些说能包追回的陌生人。

Q: 在中国大陆,转账记录里出现这类投毒怎么办?

答: 投毒本身只是你的链上记录里多了几行。要是造成损失,可以保存证据并向公安机关报案;虚拟货币的兑换、交易等行为仍受大陆相关监管文件约束。

参考资料

版本 1.0 · 资料更新于 2026-10,链上攻击方式和钱包展示规则可能变化 · 文中数据为研究者在所注明时间范围内的测量结果,不代表当前水平;涉及虚拟货币兑换、交易或具体法律问题,请以所在地现行规则和专业意见为准