地址投毒:从转账记录里复制地址,为什么会转错人
地址投毒不碰你的私钥,也不需要你签授权,只赌你从转账记录里复制地址、核对时只扫头尾几位。这篇把相似地址的碰撞成本、钱包界面怎么帮了倒忙、转账前按来源分级核对的办法,以及转错之后能做的事讲清楚。
先说结论
5 条- 地址投毒不是攻破钱包,而是往你的转账记录里塞一条首尾和常用地址相同的假记录,赌你下次转账时从历史里复制。
- 一个以太坊地址有 40 位十六进制字符,头尾各 4 位相同的地址,平均每约 43 亿个里才有一个;头尾各 6 位,平均每约 281 万亿个里才有一个。每多核对一位,难度就乘 16。
- 公开研究在以太坊和币安智能链上(2022-07-01 至 2024-06-30)识别出 2.7 亿次投毒尝试,其中 6633 起造成损失,下限合计约 8380 万美元;按次数算成功率很低,但前期投入更低。
- 给对方先转一笔小额试通,只能证明地址有效,证明不了地址属于对方:转到假地址同样会成功。
- 防护靠来源,不靠眼力:地址只从对方给的原始渠道取,保存进通讯录之后再用,粘贴后核对中间位。
钱从哪来到哪去
FLOW- 钱从哪来
- 受害者自己发起的一笔正常转账,金额由受害者决定,攻击者事先只付出了若干笔极小额转账的手续费
- 钱到哪去
- 攻击者控制的相似地址;造成损失的那一笔到账后,常被继续拆分转出,链上能看到去向,看不到背后是谁
投毒本身不产生收益,收益发生在受害者复制错地址的那一次;前期投入很小,成功率再低也有账可算
链上能看到什么,看不到什么
CHAIN能看到
- 投毒地址往你的地址发起的那几笔极小额转账:时间、金额、代币类型
- 那个地址和你常用地址的首尾字符对比,以及它此前有没有给其他地址发过同样的小额转账
- 你自己那笔转账的收款地址、金额和时间,可与你本意的收款地址逐位核对
看不到
- 投毒地址背后是谁,是不是同一批人在批量操作
- 你复制地址时的操作过程:是从记录里复制,还是从聊天窗口里复制,链上只留转账结果
- 资金转出之后在场外或其他链上的去向
本页目录
一个以太坊地址有 40 位十六进制字符,加上开头的 0x 是 42 位。许多钱包界面只显示地址的头几位和尾几位,以首尾各四位为例,一共 8 个字符。地址投毒(address poisoning)就是冲着这几个字符来的:攻击者生成一个头尾都和你常用地址相同、中间完全不同的地址,让它的记录排进你的转账历史。常见的做法是往你的钱包里转一笔极小的金额;研究还发现过两种变体:零金额的 transferFrom 记录,以及用仿冒代币做的转账记录。你下次转账时,如果习惯从记录里复制地址,复制到的就可能是它。
整个过程没有漏洞,没有授权,也没有私钥泄露。钱是你自己转出去的,只是转给了另一个人。
地址投毒骗的到底是什么?
骗的是核对地址的那一下
骗的是你核对地址的那一下,不是你的钱包。这一点和假空投骗走一次授权签名是两种不同的结构:假空投让你签一份许可,授权之后对方可以自己动手;地址投毒不要许可,要的是你亲手把币转过来。
所以它对钱包的安全设置视而不见。硬件钱包、多重签名、助记词离线保存,这些都保护不了一笔你自己确认过的转账。MetaMask 官方的支持页面把这类手法描述为:骗子向你发送一笔很小的交易,发送地址与你之前用过的某个地址高度相似,指望你日后误复制。
一次投毒的三个步骤
- 选目标:盯上转账频繁、金额较大的地址,这类地址的记录里有反复出现的收款方。
- 做出相似地址:得到一个头尾与对方常用收款地址一致、中间不同的地址。
- 投放:让相似地址出现在目标的交易历史里,然后等。小额转入只是常见形式;论文还识别出零金额的
transferFrom记录(看上去像是你自己转出过),以及仿冒代币的转账记录。
等的这一步是关键。对方不知道你什么时候转账,所以投毒记录要一直挂在那里,直到某一次你从历史里复制了它。
钱从哪来,到哪去?
受害者的损失只在一笔转账里发生
造成受害者损失的关键转账只有一次,就是你转错的那一笔;到账之后的拆分转移,属于后续资金流。
| 环节 | 谁出钱 | 金额 | 说明 |
|---|---|---|---|
| 造地址 | 攻击者 | 算力成本 | 生成相似地址要反复试,次数随匹配位数指数增长 |
| 投毒 | 攻击者 | 极小额转账加手续费 | 每个目标一笔或几笔 |
| 收割 | 受害者 | 受害者自己决定的转账金额 | 只有复制错的那一次发生 |
| 转出 | 攻击者 | 收到的全部 | 常见做法是拆分转到其他地址,属于到账之后的事 |
这条链断在哪里
断在两个位置。对方这头,如果你从不从记录里复制地址,前面的投入就全部白费。你这头,如果钱包在转账确认页上拦下了相似地址,收割这一步就走不通。
前期的投入很小,所以即使绝大多数投放没有结果,整件事对对方也有账可算。公开研究量过这个规模,见下文。
为什么只核对头尾不够?
位数每多一位,难度乘 16
40 位十六进制里,头尾各取 4 位只是 8 位,而不少界面恰好只展示到这里。
地址的每一位有 16 种取值,随机碰上某一位相同的概率是十六分之一。头尾共 k 位相同,平均每 16 的 k 次方个地址里才有一个。按候选地址均匀随机计算:
- 头尾共 8 位(各 4 位):约每 43 亿个里有一个
- 头尾共 12 位(各 6 位):约每 281 万亿个里有一个
- 头尾共 16 位(各 8 位):约每 1.84×10^19 个里有一个
结论只有一条:你核对的位数越多,凑出相似地址的难度就按指数涨。只看头尾各 4 位,等于只守在相对容易被凑出来的那一档。
这个算法只描述相似程度,不涉及硬件速度,所以不能据此说核对到哪个位数就万无一失。Bitcoin、Tron 等链的地址字符集和长度不同,数字不能直接套用,机制是一样的。
公开研究量出来的规模
学术界对此有系统的测量。Tsuchiya 等人的论文《Blockchain Address Poisoning》(发表于 USENIX Security 2025,arXiv 预印本 2025 年 1 月提交)在以太坊和币安智能链上,用 2022 年 7 月 1 日至 2024 年 6 月 30 日的链上数据,识别出约 2.7 亿次投毒攻击、约 1700 万名被盯上的受害者,其中 6633 起造成了损失,损失下限合计约 8380 万美元。论文的说法是,这比此前报道的攻击尝试多出约 13 倍。
这组数字要这么读:
- 统计方式:是检测系统在链上识别出的模式,“造成损失”指攻击者收到了受害者转来的资金,不是受害者自己申报的。
- 覆盖范围:只有以太坊和币安智能链,观察期为 2022-07-01 至 2024-06-30。其他链、场外转账不在内。
- 下限的含义:8380 万美元是识别到的下限值,不是全部损失。
- 比例:6633 起损失除以约 2.7 亿次攻击,约十万分之 2.5(约 0.0025%)。这是“损失事件数 / 识别到的攻击次数”,不能直接当作按受害者计算的成功率。
钱包界面怎么帮了倒忙?
截断显示:相似地址看起来一模一样
很多界面只显示头几位和尾几位,中间用省略号代替。这样一来,相似地址在屏幕上和真地址没有区别。
历史记录里的地址点一下就能复制
记录里的地址一点就能复制,取地址很省事,也正是投毒希望你用的方式。而且不管金额大小、对方是谁,转入记录都平等地排在列表里:你没有同意过,也没办法拒绝,因为链上的接收不需要许可。
钱包的相似地址提醒
反过来,一些钱包已经在做补救。MetaMask 的支持页面写明,它会把你要转入的地址与交易历史比对,一旦发现高度相似但并不相同,会弹出拦截提示,对从没转过账的新地址也会提醒。这类提示值得认真对待:它出现,往往说明你要转的地址和记录里的另一个地址只差中间几位。
链上能看到什么,看不到什么?
能看到的
- 投毒地址留在你记录里的那几笔转账:常见是极小额转入,也可能是零金额的
transferFrom记录,或仿冒代币的转账。 - 这个地址与你常用地址的头尾对比。你可以把两个地址并排粘贴到文本框,逐位对一遍,差异就在中间。
- 这个地址此前是否给其他地址发过同样的小额转账。批量投毒在链上很显眼:同一个来源地址对大量不相关地址做同样的事。
- 你自己那笔转账的收款地址,能和你本意的收款地址对比。
看不到的
- 这个地址背后是谁。一串十六进制不能说明是同一个人、同一个团伙。
- 你是怎么复制的。链上只留转账结果,不留你从哪里取的地址。
- 钱转出之后在场外或其他链上的去向。
陌生的小额转入都是投毒吗
不都是。一个陌生地址给你发小额转账,也可能是别人转错了,或者是普通的粉尘交易。先看它的头尾是否和你常用地址相同。头尾不相似,通常不属于本文所说的相似地址投毒,但陌生代币、备注里的链接或其他异常,仍应另行判断。
转账前,地址按来源分几级?
先看地址是从哪来的
核对强度跟着来源走。把地址从哪来分成四级,每一级对应不同的动作,读者可以对着自己的习惯逐项走一遍。
| 地址的来源 | 风险 | 转账前要做的 |
|---|---|---|
| 从自己转账记录或收款记录里复制 | 高:投毒的入口就在这里 | 不要用;改从对方给的原始来源取 |
| 对方在聊天窗口发给你,聊天里有被替换的可能 | 中 | 换一个渠道让对方再确认一次,比如语音或当面 |
| 对方直接给你的二维码、收款页面,或你已保存进通讯录的地址 | 较低 | 粘贴后核对头、尾、中间各几位 |
| 通讯录里保存的地址,并且保存时已经核对过 | 低 | 转账时核对钱包提示,有相似提醒就停下 |
对着自己的习惯,依次问四个问题。
- 这个地址是不是从转账记录里复制的?是,换来源。
- 取到地址的渠道有没有被他人篡改的可能?有,换渠道确认。
- 粘贴之后,有没有对中间的字符?没有,补上。
- 金额大不大?大,先单独确认,再按一次完整核对走。
小额试转为什么不够
很多人的习惯是先转一笔小额,等对方确认收到,再转大额。小额试转配合收款方确认,可以发现部分错链、错地址或错收款人的情况;但只看链上的成功提示,防不了地址投毒。
原因很直接:转给相似地址的小额,同样会成功到账。你看到的是“转账成功”,对方不会收到,你却没有办法凭这一条分辨。试转有用的前提,是让对方通过独立渠道回报收到了这一笔,而不是只看自己这边的成功提示。对方没回报,试转就什么也没证明。
通讯录里的地址,也要核对一次
通讯录是更稳妥的做法,前提是保存那一次是核对过的。如果你把投毒地址存进了通讯录,之后每次转账都会转到它那里,而且更不容易被发现。所以保存的那一次,要对着对方给你的原始来源逐位核对,之后的转账才可以放心复用。
已经转错了,现在能做什么?
先确认和留证
先确认,再留证据,别急着做第二笔操作。
- **在区块浏览器上确认收款地址。**打开你那笔转账,把收款地址和本意收款地址逐位对比,看看差在哪。
- **保留证据。**交易哈希、投毒地址、投毒那几笔小额转账的记录。链上记录会一直在,但钱包和聊天记录可能被覆盖,先截图存下来。
报案与防范二次诈骗
- **不要相信“帮你追回”的人。**钱转给的是一个对方控制的地址,链上转账不可撤销,追回难度很高。声称能帮你追回的服务,经常是第二轮:要你先付费,或者再签一次授权。
- **涉嫌诈骗的,可以向公安机关报案。**另外要知道,境内监管文件对虚拟货币相关业务活动态度明确:《关于进一步防范和处置虚拟货币交易炒作风险的通知》(银发〔2021〕237号,人民银行等十部门,2021 年 9 月 15 日发布)称虚拟货币相关业务活动属于非法金融活动,并提示相关民事法律行为可能无效、损失由参与者自行承担。这是文件对相关活动的总体表述,不等于你这一笔转账能否立案、能否追回,具体请向公安机关或律师咨询。
说实话,多数情况下转出去的钱拿不回来。真正能拦住这类转账的,是在复制地址和确认转账这两个环节停下来核对。
常见问题
Q: 地址投毒需要我签授权吗?
答: 不需要。投毒这一步完全由对方单方面完成,常见做法是往你的地址发一笔小额转账(也有零金额记录、仿冒代币两种变体),不需要你同意。真正的损失发生在你自己发起转账的那一次,你复制了记录里的假地址,钱是你自己确认转出的。所以它和假空投不同,撤销授权帮不上忙,该做的是从来源取地址。授权类骗局的识别可以看假空投那篇。
Q: 我的钱包里收到了一笔陌生的小额转账,是被投毒了吗?
答: 不一定,也不用惊慌。收到转账本身不会造成损失。先看发送地址的头尾是否和你常用的某个地址相同,如果头尾高度相似,应按疑似投毒记录处理:再核对完整地址、你和它有没有过真实交互,看看这个来源地址是否也在向大量陌生地址做同样的事。处理方式是不从这条记录里复制地址,并在钱包里把它隐藏。如果头尾都不像,通常不属于这种手法,但陌生代币或备注里的链接仍要另行判断,不要点。
Q: 只核对头尾各 4 位够不够?
答: 不够。头尾各 4 位相同的地址,平均每约 43 亿个里就有一个;每多核对一位,凑出相似地址的难度就乘 16。更可靠的办法是不依赖眼力:地址从原始来源取,粘贴之后至少对一遍中间位。
Q: 我用硬件钱包,会不会更安全?
答: 硬件钱包保护的是私钥,不保护你的判断。地址投毒不碰私钥,它只在你确认转账那一步起作用。硬件钱包的屏幕会显示完整收款地址,这是个好机会,值得用它把整个地址对一遍,而不是只扫头尾。
Q: Bitcoin 和 Tron 上有同样的问题吗?
答: 机制相同:只要界面截断显示、记录可复制、接收不需要许可,就有投毒的空间。不同的是地址长度和字符集,所以前面的数字不能直接套用,需要按对应链的地址格式重新算。文中引用的研究主要覆盖以太坊和币安智能链。
Q: 转错之后有办法让对方退回来吗?
答: 链上转账不可撤销,收款方是攻击者控制的地址,没有人有义务退回。能做的是保留证据、向公安机关报案,并对任何自称能追回的服务保持警惕。已经发生的损失,多数情况下无法挽回,所以事前的来源核对才是主要防线。
参考资料
- Blockchain Address Poisoning(arXiv:2501.16681) —— Tsuchiya 等人,USENIX Security 2025,链上攻击规模与损失的测量
- MetaMask 支持页面:Address poisoning scams —— 钱包官方对手法的说明与相似地址拦截提示
- EIP-55:混合大小写校验和地址编码 —— 以太坊地址格式的标准原文,说明地址由 40 位十六进制字符组成
- 以太坊官方文档:账户 —— 外部账户与合约账户的基本概念
- 关于进一步防范和处置虚拟货币交易炒作风险的通知(银发〔2021〕237号) —— 中国政府网,2021 年 9 月 15 日发布
版本 1.0 · 更新于 2026-10-04 · 论文数据为作者公开的预印本与发表版本摘要,覆盖以太坊与币安智能链,观察期为 2022-07-01 至 2024-06-30,不代表今天的实时规模;相似地址的数量按候选地址均匀随机计算,不含硬件速度。本文不构成投资或操作建议。
接着看
杀猪盘:从加好友到假交易所的固定剧本
杀猪盘不靠技术漏洞,靠几周到几个月的感情铺垫换你一次主动转账。这篇拆开这段关系怎么一步步养熟又被收割、每一步能核对的信号,以及已经转钱之后该按什么顺序处理。
审计报告能证明什么:通过审计和不会被黑是两回事
审计报告记录的是审计方在指定范围和版本下查到或没查到的问题,不是"项目安全"的保证——管不了范围外的代码,也管不了私钥握在谁手里。Euler Finance 被黑1.97亿美元、Merlin 过审当天被清空,两案例拆开审计边界,附自查表。
假空投:骗的不是私钥,是你那一次授权
多数钱包被搬空的案例里,受害者并没有交出私钥,而是在页面上确认了一次授权。approve 给了什么权限、空投投毒怎样引流、签名前如何分清转账和授权,以及发现异常后的止损顺序。