2024 年 5 月,加密历史上最昂贵的复制粘贴失误之一,把约 6800 万美元的 Wrapped Bitcoin 送进了陌生人的口袋。没有助记词被盗,也没有智能合约被攻破。受害者只是从自己的交易记录里复制了一个地址——一个攻击者提前植入、刻意伪装得与受害者早已信任的地址一模一样的地址。这就是地址投毒骗局,也是当今成本最低、最易规模化的攻击方式之一。
这个骗局之所以奏效,是因为几乎每个加密用户都有的一个习惯:只看首尾几位字符来核对地址。钱包和区块浏览器在显示长地址时都会截断中间部分,这个习惯因此显得理所当然——而攻击者几乎不花什么成本,就能批量制造出与那些可见首尾字符完全一致的相似地址。解决办法不是“看得更仔细”,而是从根本上改变地址进入钱包的方式:经过核验的联系人、白名单、二维码,以及逐字符核对完整地址,而不是扫一眼交易记录列表。
地址投毒骗局到底是什么
地址投毒是一种骗局:攻击者生成一个与你真实使用的地址首尾字符完全一致的相似地址,把它植入你的交易记录,然后等你复制错那一条。整个过程的任何一步都不需要你的许可。攻击者监视公开的链上数据,寻找按固定节奏转移可观资金的钱包——金库发放、交易所入金、周期性结算——然后挑出这些钱包最常转账的交易对手地址。
制造相似地址是最容易的一步。靓号地址生成器不断碰撞随机密钥,直到得出一个在指定位置带有指定字符的地址。想匹配完整地址在计算上不可能做到,但只匹配首尾各四到六个字符的成本却低到攻击者可以在普通硬件上批量运作,同时瞄准数千个目标。最终得到的是一个攻击者完全控制的真实地址——只不过在任何截断显示里,它都与你的交易对手地址无法区分。
假记录是怎样混进你的交易记录的
相似地址只有出现在你可能复制的地方才有价值。三种投放手法最为常见:
- 粉尘转账。攻击者从相似地址向你的地址发送一笔极小的金额——几美分甚至更少。你的钱包里从此多出一笔转入交易,其来源地址看起来与你的常用交易对手一模一样。
- 零额代币转账。在 EVM 链和 TRON 上,代币合约会处理任何人发起的零数量转账。零额转账无需名义转出方钱包的任何批准,因为转移零个代币永远不会超出任何授权额度。攻击者触发这样一笔转账,让你自己的交易记录里凭空出现一笔从你的地址转往相似地址的 0 USDT 转出——这笔交易你从未发起,没花你一分钱,看上去却和你上一笔真实付款一模一样。
- 假代币空投。顶着熟悉代币符号的无价值代币从相似地址转来,同时污染你的交易记录和通知栏。
三种手法留下的是同一个陷阱:一条可见字符与你信任的收款地址完全吻合的记录。随后骗局便进入潜伏——有时长达数月——直到某一天你正好赶时间。
价值 6800 万美元的一次粘贴
让地址投毒骗局一战成名的 2024 年 5 月案件,完全按这个剧本上演。一个巨鲸钱包向一个新地址做了一笔小额转账。几分钟内,攻击者生成了与该目标地址首尾字符一致的相似地址,并往这个钱包的交易记录里投下了一条假记录。下一笔交易时,受害者复制了这条被投毒的记录,把约 6800 万美元的 WBTC 转了过去。整场攻击的成本,对骗子来说不过是几笔交易手续费。
不寻常的是后续:在数天的链上喊话与谈判之后,攻击者几乎全额退还了资金。受害者算是走运——赃款规模之大、舆论关注以及随之而来的追踪压力,让变现变得非常危险。但不要把你的威胁模型建立在这样的结局上。投毒活动每天都在针对普通钱包持续进行,金额小得多,而小额受害者拿不回自己的钱。
为什么你的眼睛靠不住——习惯还会雪上加霜
一个 EVM 地址长 42 个字符,一个 TRON 地址长 34 个字符。界面会把它们截断成首尾各几位字符,而多年使用这些界面的经历,训练你把首尾当成了地址本身。攻击者清楚各大主流钱包和区块浏览器的具体截断规则,并精确匹配那些字符。当可见的首尾都吻合时,中间——唯一有差别的部分——恰恰是任何界面都不显示、任何习惯都不会去检查的部分。
同一类失误,在机构层面造成过大得多的损失。2025 年 2 月的 Bybit 事件表明,即便是头部交易所的多签签名人,批准的也是被攻破的界面所显示的内容,而非实际签署的内容——我们在对 Bybit 被盗事件的分析中剖析过这次失守。地址投毒骗局,就是同一条真相的零售版本:
地址投毒从不触碰你的密钥。它篡改的是密钥所处的环境——然后让你亲手签署一笔完全有效、却发往错误地方的交易。
这也是区块链本身救不了你的原因。你签署的交易正是你所请求的那一笔;被污染的是上游的意图。一旦确认,便是终局。
真正有效的防御
由于这个骗局利用的是工作流程而非密码学,有效的防御也都是流程上的改变——以下按从最结构化到最依赖手工的顺序排列:
- 绝不从交易记录里复制地址。把交易记录当成展示窗口,而不是地址来源。唯一安全的来源只有三种:在经过核验的时刻保存下来的联系人、直接扫描收款方出示的二维码、或通过实时的独立渠道传来的地址。
- 在风险足够高的场景启用白名单。地址白名单把转出限制在预先批准的目的地之内,即使有人粘贴了被投毒的地址,也无法使用。Ownbit 的安全模型在企业多签中支持地址白名单,并配有每日限额和签名人门限,任何一个人的粘贴失误都无法把金库资金转到未经审核的地址。
- 完整核对一次地址,之后只信任保存好的联系人。校验和只能挡住输入错误,挡不住相似地址——被投毒的地址本身就是一个完全有效的地址。逐字符对照收款方发给你的地址,或在通话中把字符串中间的部分念出来核对。核对一次,保存为联系人,之后绝不再从任何其他地方复制它。
- 先发一笔测试金额——并通过带外渠道确认到账。一笔小额转账只多花一次手续费,却消除了大额转账的尾部风险。但一定要让收款方通过独立渠道确认到账;如果你自己扫一眼交易记录来确认,就等于重新踏进了同一个陷阱。
- 让第二块屏幕或第二个人参与进来。Ownbit 的冷钱包工作流通过二维码把未签名交易传到一台离线手机上,在联网环境无法触及的硬件上审阅完整的目标地址。在多签中,另一台设备上的另一位签名人复核目标地址,能把一个人的粘贴失误变成一条被否决的提案,而不是一笔损失——前提是签名人真的去核对,而这正是 Bybit 案例所揭示的、会逐渐松懈的纪律。
这里应当公道地提一句硬件钱包:它的机身屏幕与物理隔离手机的作用相同,而它对投毒的防御效果,恰好取决于持有者是否在设备上读完整个地址。没有任何工具能替你核实你的意图。
任何大额转账前的 30 秒仪式
- 通过实时渠道向收款方索取地址——聊天、通话或二维码——绝不从交易记录里获取。
- 立刻把它保存为具名联系人;从此这条保存的记录就是你唯一的地址来源。
- 核对时要读地址的中间部分,而不只是首尾。攻击者匹配的是首尾;露馅的是中间。
- 先发一笔小额测试,并让收款方在同一个实时渠道里确认到账。
- 把剩余金额发给保存好的联系人——若是金库级别的资金,还应强制启用白名单加多签门限,让任何一次粘贴都不可能造成致命后果。
这套仪式只需半分钟和一笔额外的网络手续费。对 2024 年 5 月的那位受害者来说,这个代价哪怕付一千次也划算。
常见问题
什么是地址投毒骗局?
地址投毒骗局是这样一种攻击:骗子生成一个与你常用收款地址首尾字符一致的相似地址,再通过粉尘或零额转账把它插入你的交易记录,然后等你复制那条假记录而不是真记录。这种攻击无需接触你的密钥,运作成本仅比网络手续费高一点。
零额转账本身会偷走我的加密资产吗?
不会。零额转账不转移任何东西,也不授予任何权限;它存在的唯一目的是往你的交易记录里植入一条以假乱真的记录。只有当你之后复制了这个被植入的地址并向它转账时,资金才会有危险。粉尘和零额垃圾转账可以放心无视——只是永远不要把它们当成地址来源。
怎么判断我的钱包交易记录是否被投毒?
留意来自与你常用交易对手相似的地址的粉尘转入,或你从未发起过的零数量代币转出。实践中,不如直接假设任何活跃钱包都已被投毒,并据此行事:改变你复制地址的来源,比逐条排查交易记录更安全。
冷钱包或硬件钱包能防住地址投毒吗?
单靠它们防不住。冷存储保护的是密钥,而地址投毒从不攻击密钥——它攻击的是你在签名之前选定的地址。真正有帮助的是第二块屏幕:一台在签名前显示完整目标地址的物理隔离设备,给了你最后一道独立的检查关口,但前提是你在上面把整个地址读完。
如果你更愿意把这些护栏内建到钱包里,而不是寄托于自己的记性,Ownbit 的安全模型在企业多签上将自托管与地址白名单、支出限额结合起来,而基于二维码的冷钱包工作流则在任何签名产生之前,把完整地址的审阅放到一块离线屏幕上。每位新用户都可获得 7 天试用,而无论哪种方式,你的密钥始终归你所有。