地址投毒是骗子往你的地址发一笔 0 额或假币转账,让记录里出现首尾与你常用地址相似的地址,等你从记录里复制时转错。防法是不从历史记录复制地址,用地址簿或对方当面给的地址,并核对整串。
地址投毒不用偷你的私钥,也不用你点任何链接。骗子只是往你的地址里塞一笔看起来无害的转账,然后等你下次从转账记录里复制地址。它防的不是黑客,而是「复制粘贴」这个习惯。
地址投毒是怎么一步步发生的?
结合 MetaMask 和 Revoke.cash 的说明,整个过程大致是这样:
- 你正常转了一笔账,常见的是稳定币,给朋友、给另一个自己的钱包,或者提到交易所。
- 骗子的程序一直在监控链上转账。看到这笔之后,用「靓号地址生成器」批量生成一个地址,让它的开头和结尾,与你这次的收款地址(有时是你自己的地址)高度相似。
- 骗子用这个相似地址,给你发一笔金额为零或极小的转账,或者伪造一笔看起来像你转出去的记录。
- 这条记录出现在你的钱包历史或区块浏览器里,紧挨着你真正的那一笔。
- 下次你要重复转账,图省事,从历史记录里复制了「上次那个地址」,复制到的恰好是骗子的地址。
- 币发出去。链上转账不可撤回,MetaMask 的说明写明,已确认的交易无法修改,损失的资金无法找回。
整个流程里,你的钱包没有被入侵,私钥没有泄露,你也没有签署过任何授权。MetaMask 的描述是:这种手法依赖的是用户的疏忽和匆忙。所以它不挑人,任何习惯快速复制的人都可能中招。

两种常见手法:假代币和 0 额转账
Revoke.cash 把地址投毒分为两类,识别难度不同。
| 手法 | 骗子做了什么 | 在你的记录里长什么样 | 识别线索 |
|---|---|---|---|
| 假代币 | 自己部署一个与 USDT、USDC 等同名的假合约,程序化地让它看起来像是「你」转给某个地址 | 一条名为 USDT 或 USDC 的转账,但币种图标与正版不同 | 在钱包或浏览器里,假代币通常没有正版的图标;点进代币,合约地址与官方公布的不一致 |
| 0 额转账 | 利用真实代币合约的 transferFrom 功能,发起一笔从你的地址转出、金额为 0、收款方是相似地址的转账 | 一条真实的 USDT 转账,发送方是你,金额为 0,收款方是陌生的相似地址 | 唯一的差别是收款地址不同、金额为零,更难一眼看出 |
0 额转账为什么不需要你授权?Revoke.cash 解释了原因:transferFrom 函数通常给智能合约代你转币使用,会检查「转账金额是否小于等于授权额度」。金额为 0 时,永远满足这个条件,所以即使你没有授权给任何人,零额转账也能成功。这就是为什么检查和撤销授权,解决不了地址投毒。授权是另一类骗局,见代币授权是什么、怎么检查和撤销。
为什么只看首尾几位不够?
钱包和浏览器为了排版,常把地址缩短,只显示开头和结尾若干位,MetaMask 指出,大多数人识别地址靠的就是熟悉开头和结尾,而地址投毒正是针对这种习惯。Revoke.cash 的建议更明确:常说的「核对前 4 位和后 4 位」其实不够,骗子可以生成前后 4 位相同的地址,应该核对更多位。MetaMask 的提示是,要特别注意中间的字符,那是投毒地址设计时刻意含糊的部分。
以太坊官方文档写明,外部账户的地址是 42 个字符,也就是 0x 加 40 位十六进制。去掉 0x 和首尾各 4 位,中间还有 32 个字符,真正需要比较的是这一段,而不是两头的几位。
在转账记录里怎么识别可疑条目?
下面的判断方法是针对「复制前先看一眼」整理的,不是官方功能:
| 信号 | 为什么可疑 | 怎么进一步确认 |
|---|---|---|
| 一笔金额为 0 或极小的「转入」,来自你不认识的地址 | 投毒的典型形态 | 不要点进去复制地址,也不要回复 |
| 一笔「转出」,但你没有操作过,收款方陌生 | 0 额转账用 transferFrom 伪装成你转出 | 看金额是否为 0,看收款地址是否与某个你用过的地址首尾相似 |
| 币的名称是 USDT 或 USDC,但图标不对 | 假代币 | 对比官方公布的合约地址,例如 Tether 的 Supported protocols 页面列出了各链的 USDT 合约,核对步骤见 代币简称、合约地址和区块链网络,怎样一起核对 |
| 紧跟在你一笔真实转账之后出现 | 骗子在监控转账,随即跟进 | 对照时间,看是否发生在你转账后不久 |
| 同一个对象出现两个首尾相同、中间不同的地址 | 其中一个可能是投毒地址 | 用可信来源的地址做整串核对,下面讲方法 |
公开的例子主要是 EVM 链上的稳定币转账。复制历史地址的风险,在任何会显示转账记录的链上都存在,比特币(开头为 1、3、bc1 的几种地址,区别见 比特币地址 1、3、bc1 开头有什么区别)和 Solana(Base58 地址没有可见的校验位,见 Solana 的地址格式和代币账户怎么理解)也不例外。
怎么做整串核对?
「核对整串」不是让你盯着看,更可靠的做法有三种:
- 页内搜索法。 先从可信来源拿到完整地址(对方的充币页,或你保存的地址簿)。在转账记录页用浏览器的页内搜索(电脑上通常是 Ctrl+F 或 Cmd+F),粘贴整串。命中的那一条才是和它完全一致的记录;搜不到,说明记录里的地址不是它。如果页面只显示了缩短的地址,先展开完整地址或点进详情页,再搜索。
- 分组对照法。 把两个地址每 4 位分成一组,逐组对。重点看中间的每一组,而不是首尾两组。
- 两行对齐法。 把两个地址粘贴到备忘录里上下两行,字体选等宽,逐列对比。
这三种方法都有一个前提:你拿来比对的那一串,必须来自可信来源,而不是同一个转账记录。
转账前的核对顺序:按地址来源选做法
| 地址的来源 | 做法 | 原因 |
|---|---|---|
| 转到交易所 | 每次都回到交易所的充币页,当次复制 | Revoke.cash 建议充值到中心化交易所时,每次都从网站复制充币地址 |
| 转给朋友或商家 | 让对方重新发地址,或使用对方的 ENS 名称 | Revoke.cash 的建议是向朋友要地址或用 ENS |
| 经常转的对象 | 存入钱包的联系人或地址簿,之后只从里面选 | MetaMask 建议把常用地址加入联系人,存进去的是你核对过的 |
| 从欧易(OKX)转出 | 打开提币白名单,只提到地址簿里的地址 | 白名单开启后不能手工输入新地址 |
| 金额大、地址新 | 小额试转一笔再转剩余 | 限制损失;但如果试转的地址本身就是骗子的,那笔小额也回不来 |
| 用硬件钱包 | 在设备屏幕上核对收款地址 | MetaMask 指出多数硬件钱包要求在设备上确认地址 |
欧易的提币地址簿有两个相关功能:开启 Allowlist 之后,只能提到地址簿里已保存的地址,手工输入新地址被禁用;还可以同时打开「新地址提币锁」,新加的地址 24 小时内不能用,这给你留出了发现问题的时间。往地址簿里添加地址的那一步,才是最需要整串核对的时刻,之后每次提币选择即可,不必再从记录里复制,操作见欧易提币怎么操作、手续费和白名单怎么设置。需要填 Tag/Memo 的币种,把地址和 Memo 一起核对,逐项清单见 网络、地址和 Memo 怎么一次核对完。
MetaMask 还提供了一层预警:当目标地址与你的历史地址首尾相同、中间不同时,它会弹出阻断式警告。看到这种警告,不要点继续,先回到可信来源核对整串地址。当然,钱包没有弹窗,不等于地址就安全。
地址格式检查工具能查出投毒吗?
不能。加密货币地址格式识别工具只看地址本身的开头、长度、字符以及校验码,能告诉你这个地址大概率没有抄错、可能属于哪条链。投毒地址恰恰是一个完全合法的地址,格式没有任何问题,所以检查会显示通过。它也无法判断这个地址的主人是谁,更看不出它是否在模仿你的某个常用地址。
可以把它当成转账前的第一道粗筛,用来发现少抄了几位、缺了前缀这类低级错误。真正防投毒的,是整串核对和地址来源。
已经转错了怎么办?
坦率地说,大概率拿不回来。以太坊官方文档写明,以太坊上的交易不可逆,除非你认识地址所有者并说服对方退还。欧易的说明也一样:转到错误地址,如果知道所有者,可以直接联系协商;如果地址属于某个交易所或钱包,向对应平台的客服求助;区块链地址是匿名的,只能看到交易记录,查不到个人信息。投毒地址的主人是骗子,联系他没有意义。
能做的事:保存交易哈希、时间、双方地址,向你使用的平台反馈,必要时报警;警惕声称能替你追回的服务,凡是要先收费、要验证码或助记词的,一律不要理会,见假冒欧易客服的常见套路。
它和钓鱼网站、授权骗局有什么不同?
| 骗局 | 你被要求做什么 | 防法 |
|---|---|---|
| 地址投毒 | 什么都不用做,等你自己复制错地址 | 不从历史记录复制,整串核对,用地址簿 |
| 钓鱼网站 | 输入验证码、助记词或连接钱包 | 核对域名,见搜到的欧易官网是真的吗 |
| 授权骗局 | 签署一个授权,让合约能动你的代币 | 检查并撤销授权,见代币授权是什么 |
三类的共同点是都要靠你的操作失误,不同点是投毒的失误只有一次:复制了那一串字符。
这篇文章参考了哪些资料
以下资料查阅于 2026 年 11 月 4 日。平台规则可能因地区、账户和时间变化。
- Revoke.cash:What Is Address Poisoning? ↗
- MetaMask 帮助中心:Address poisoning scams ↗
- Ethereum.org:Ethereum security and scam prevention ↗
- Ethereum.org:Ethereum accounts ↗
- OKX 帮助中心:How do I enable allowlist? (app) ↗
- OKX 帮助中心:What should I do if I make a mistake during a withdrawal? ↗
- OKX 帮助中心:How do I make a withdrawal? (app) ↗
- Tether:Supported protocols ↗