地址投毒(Address Poisoning),也叫地址污染攻击,是一种利用人们操作习惯进行欺骗的链上攻击方式。攻击者生成与你常用地址高度相似的虚假地址,通过各种方式将其"植入"你的交易记录中,等待你在转账时误复制使用。这种攻击从2022年开始大规模出现,至今仍是造成资产损失的重要原因。
地址投毒攻击的原理是什么?
地址投毒的核心逻辑是"以假乱真"。攻击步骤如下:
第一步:选定目标
攻击者使用自动化脚本监控链上交易,筛选出频繁进行大额转账的活跃地址作为目标。
第二步:生成相似地址
使用地址碰撞工具批量生成与目标地址首尾几位相同的地址。例如你的地址是:
- 真实地址:0x71C7abcd1234efgh5678F3
- 攻击者地址:0x71C7XXXXXXXXXXXX5678F3
由于大多数钱包只显示地址的前6位和后4位,两个地址在界面上看起来完全一样。
第三步:污染交易记录
攻击者通过以下方式将假地址植入你的交易记录:
- 零值转账:从假地址向你发送0个代币的交易
- 小额转账:发送极小额的代币(如0.001 USDT)
- 伪造的Transfer事件:利用某些代币合约的特性,在你的交易记录中伪造一笔"你向假地址转账"的记录
第四步:等待收割
这些假交易出现在你的交易记录中后,攻击者就等着你下次转账时从历史记录中复制地址。一旦你误复制了假地址并确认转账,资产就被盗走了。
为什么地址投毒攻击这么有效?
原因一:操作习惯
人们倾向于从交易记录中复制"用过的"地址,而不是每次都从头获取完整地址。这个便捷的操作习惯被攻击者精准利用。
原因二:地址显示方式
为了界面简洁,钱包和区块链浏览器通常只显示地址的首尾部分。攻击者只需要让这些显示的部分匹配即可。
原因三:视觉识别困难
即使你尝试核对地址,42位的十六进制字符串对人眼来说很难快速准确比较,特别是中间部分被隐藏的情况下。
原因四:攻击成本极低
生成大量相似地址和发送零值交易的成本非常低,特别是在BSC、Polygon等低Gas链上。攻击者可以同时对数千个地址实施投毒。

真实损失案例
2024年5月,一位用户因地址投毒攻击损失了6800万美元的WBTC。该用户从交易记录中复制了一个看似熟悉的地址进行大额转账,但实际上是攻击者的相似地址。这是迄今为止地址投毒造成的最大单笔损失之一。
此外还有大量中小额损失的案例,多数受害者因为金额"不够大"没有公开报告。

如何防范地址投毒攻击?
方法一:使用地址簿
将所有常用转账地址预先保存在钱包或交易所的地址簿中。每次转账时从地址簿选择,绝不从交易记录中复制。
方法二:完整核对地址
如果必须复制粘贴地址,将完整地址展开逐字符核对。至少核对前12位和后12位字符。
方法三:小额测试
大额转账前先发送极小额到目标地址,确认对方收到后再转大额。
方法四:使用ENS等域名服务
以太坊域名服务(ENS)允许你用类似"alice.eth"的名称代替长串地址。使用域名转账能有效避免地址投毒。
方法五:更新钱包版本
部分钱包已更新算法,可以识别和标记可疑的零值转账。保持钱包App为最新版本。
安全提醒
地址投毒攻击利用的是人的疏忽而非技术漏洞,防范重点在于养成好习惯:
- 永远不要从交易记录直接复制地址:使用地址簿或手动获取完整地址
- 大额转账前必须小额测试:这是防止所有类型地址错误的最后防线
- 完整核对地址:不要只看首尾几位
- 忽略不明来源的转入记录:零值或小额的不明转入可能是投毒攻击
- 使用支持地址标记的工具:标记常用地址便于快速识别
- 保持高度注意力:转账是高风险操作,操作时保持专注
通过交易所转账时,可以利用平台的白名单功能增加安全保障。币安官网开启提币白名单,或币安官方APP,苹果用户参考iOS安装教程随时安全操作。
地址投毒会直接盗走我的资产吗?
不会。地址投毒本身不能直接转走你的资产,它只是在你的交易记录中"埋下陷阱"。只有当你主动复制了假地址并发送交易时才会造成损失。如果你不去理会那些可疑的交易记录,就不会受到任何影响。
怎么判断交易记录中的交易是否是投毒?
如果你看到一笔你没有发起的转出记录(通常金额为0),或者收到不明来源的极小额转入,而且涉及的地址与你常用的某个地址首尾相似,这很可能就是投毒攻击。
投毒攻击在哪条链上最常见?
以太坊、BSC和TRON是投毒攻击最常见的链。BSC和TRON因为Gas费极低,攻击者可以以极低成本大规模投毒。以太坊上的投毒成本较高,但因为资产价值更大,攻击者仍然会针对高价值目标。
钱包App能过滤掉投毒交易吗?
部分钱包(如MetaMask最新版)已经添加了零值转账过滤功能,可以隐藏可疑的投毒交易。但这个功能并非100%可靠,仍需用户自身保持警惕。建议开启钱包中所有可用的安全过滤选项。