地址投毒攻击详解:2,000,000 USDC 如何在三十三字符差异下被窃取
2026年8月21日,一笔2,000,000 USDC的转账从一个钱包流出,最终到达一个地址——该地址与正确地址仅在四十个字符中的七个字符上匹配:前四个字符一致,后三个字符一致,其余三十三个字符则完全不同。正是这种精准的截断构成了整个攻击,因为钱包和区块链浏览器通常以缩写形式显示地址:前面几个字符、后面几个字符,中间用三个点代替。任何只看缩略形式的人,都会在假地址上看到与原始地址相同的内容。
这种技术被称为“地址投毒”。
地址投毒是指攻击者将一个伪造但外观相似的地址植入你的钱包交易历史中,这样你之后在复制地址时,会误将资金发送到该伪造地址。没有黑客攻击,没有密钥被盗,也没有签名被伪造。这笔转账在技术上是完美的,且由所有者授权。它只是发送给了错误的收款人,而在区块链上,这意味着不可逆转。
本文拆解了8月21日的案例,并比目前已发布的报告更进一步:我们读取了受影响钱包的完整交易历史并进行了统计。结果显示,诱饵地址并非一次性使用,而是属于一个库存——该库存占该钱包曾交易过的所有对手方地址的三分之一。
地址投毒解析:假钱包地址如何进入你的历史记录
攻击者无需访问你的钱包。他们只需要在你的历史记录中留下一个条目,因为对大多数用户来说,历史记录是获取收款地址最便捷的来源。你不会从合约、电子邮件或纸条中复制一串四十个字符的字符串,而是会在钱包应用或浏览器中向后滚动,找到与同一收款人最后一次转账的条目,然后从那里复制地址。这个“可触及范围”就是攻击目标。
进入历史记录有两种常见方式。第一种是“粉尘转账”:攻击者从他们的假地址向你发送一笔经济上微不足道的小额资金。几分之一美分就足够了。这样,他们无需了解你的任何信息,就能将他们的地址放入你的历史记录中。
第二种方式是“虚假转账事件”。在以太坊及类似网络上,任何人都可以发布自己的代币合约,并且该合约可以报告任何内容。这样的合约会发出一个事件,看起来就像你刚刚向某个特定地址发送了一大笔资金。一笔从未发生过的已完成转账就会出现在你的历史记录中。对攻击者来说,优势显而易见:一个你“曾经”发送过两百万资金的地址,看起来比一个只发送过粉尘的地址更熟悉。
两种途径对攻击者来说几乎零成本,并且可以随意重复。他们无需知道你何时会再次转账。他们只需要确保他们的条目在你下次转账时位于列表顶部。这在以太坊等网络上效果如此之好的部分原因在于,任何代币合约都可以在那里发布,无需审核。
Bofur Capital 案例:从 Compound 提款后半小时,200万 USDC 被盗
安全公司 PeckShield 于2026年8月22日报告了这一事件,并将受影响钱包归因于市场参与者 Bofur Capital。这一归属来自 PeckShield,无法仅凭区块链数据确认,我们在此将其作为第三方声明引用。相比之下,事件的时间顺序在链上是公开的,可以验证。以下所有时间均为协调世界时。
8月20日 20:12:23,该钱包向其一个月前使用过的地址转了2,000,000 USDC。8分36秒后,于20:20:59,收到了一笔0.0002 USDC的粉尘转账。发送方是一个看起来与刚刚使用的地址相似的地址。该地址在几秒前刚刚被第三方充入了0.000801 USDC,恰好足够支付这次诱饵转账。
在接下来的不到两小时内,该钱包的历史记录中又出现了两笔各2,000,000 USDC的“转账”,分别于20:41:11和21:16:11发送到同一个假地址。这两笔转账均来自一个外部代币合约,实际上从未发生。因此,在第二天查看列表的人看来,这个假地址就像该钱包刚刚多次向其发送数百万资金一样。
8月21日 16:01:23,该钱包从 Compound USDC 合约中提取了2,000,000 USDC。30分钟后,16:31:11,2,000,000.000000 USDC 被发送到了假地址。没有后续尝试,也没有纠正。随后,这笔资金通过一个归集钱包转移,于23:28:35通过 CoW Protocol 的结算合约兑换为 DAI,并于23:31:11以1,999,939.476314 DAI 的形式存放在第三个地址上。截至本文分析时,该笔资金仍原封未动。
前四个字符,后三个字符:假地址究竟有多相似
关键在于这次攻击所需的相似度之低。实际使用的收款地址与假地址在开头四个字符和结尾三个字符上匹配。即四十个字符中的七个。中间三十三个字符不同,其中许多一眼就能看出明显差异。
之所以仍然有效,原因在于显示方式。钱包应用、浏览器和概览列表中常见的缩写形式通常显示前六个左右和后四个字符。正是这个精确的部分在两个地址上几乎完全相同。而中间三十三个不同的字符则位于界面用三个点代替的部分。
生成这样一个地址既不是艺术也不是计算壮举。攻击者遍历密钥对,直到找到一个能产生所需开头和结尾字符的地址。需要匹配的字符越多,耗时越长,但在普通硬件上,匹配前四个和后四个字符只需几分钟。这也是为什么诱饵数量不受工作量限制。
受影响钱包历史记录中最大的诱饵集群大小恰好是八个地址,它们的前四个字符和后四个字符完全相同。
粉尘转账与虚假转账事件:两种技术,一个目标
在这个案例中,两种技术同时运行,而这正是此前报告缺失的部分。之前报告的是0.0002 USDC的粉尘转账。与此同时,链上还存有来自虚假合约的几笔所谓的百万美元转账,这些转账完善了历史记录中的画面。
这种差异在实践中很重要。许多用户会忽略来自未知地址的粉尘金额,将其归类为广告或垃圾信息。而一条看起来像你自己刚刚完成的百万美元转账的条目,则更像是一张收据。任何寻找最后一次向同一收款人付款的人,都会找到这个条目,并且它在列表中的位置比原始条目更高。
从技术上来说,这两个条目都无法从你自己的历史记录中删除。区块链不会忘记任何东西,来自外部合约的事件即使纯属虚构,也仍然可见。有些界面会隐藏可疑合约或对其进行标记。你不能依赖这一点,因为检测的严格程度因提供商而异。
代币名称中的同形字:为什么假代币代码在浏览器中看起来像 USDC
为了让虚假条目不被注意,代币也必须正确。用于此目的的合约带有在浏览器中看起来像 USDC、DAI 或 ETH 的代币代码,但实际上并非如此。这个技巧叫做“同形字”。
同形字是指一个字符在视觉上看起来与另一个字符非常相似,但在技术上却是完全不同的字符。
我们读取的数据包含多种设计。一组合约使用西里尔字母:用西里尔字母 Dze 代替拉丁字母 S,用西里尔字母 Es 代替 C,再加上一个带重音的 U。屏幕上显示的内容看起来像 USDC。第二组合约在字母之间插入不可见的控制字符,例如零宽连字符或蒙古语元音分隔符。这样代币代码看起来与真实代码完全一样,但并非如此。第三组合约使用最简单的手段,用小写字母 L 代替大写字母 I,在许多字体中无法区分。还有一些合约干脆不做任何伪装,直接使用正确的代币代码,因为代币符号并不需要唯一。
这对你来说意味着:金额旁边的代币代码并不能证明实际转移的是哪种代币。唯一可靠的标识符是合约地址。USDC 和 DAI 各只有一个正确的地址,每个浏览器在点击代币时都会显示该地址。
我们自己的调查:单个钱包历史记录中存放了多少个诱饵地址
本分析由 cryptoticker.io 于2026年8月22日自行完成。使用 Blockscout 区块浏览器的公共接口,我们检索了受影响钱包的所有代币转移事件,共六页,然后去重并计数记录。我们捕获了时间戳、金额、代币合约地址以及发送方和接收方。
经检查:来自2025年11月22日至2026年8月22日期间的300个独特代币转移事件,其中包含84个不同的对手方地址。其中165个事件来自真实的 USDC 或 DAI 合约,135个来自其他合约。
九个集群,三十三个地址:详细计数
我们将所有84个对手方地址按其前四个和后四个字符是否匹配进行分组——这正是缩写显示所显示的部分。
结果:84个地址中有33个属于九个这样的组。每个组至少包含两个在缩写形式下无法区分的地址。因此,该钱包曾接触过的所有对手方地址中,约有三分之一属于这种相似地址的库存。最大的组包含八个地址。第二大组五个,第三大组四个。还有三个组各有三个成员,两个组各有两位成员。8月21日盗窃案所属的组包含三个地址,而一个具有相同开头但不同结尾的相邻组另有三个地址,其中包括实际使用的收款地址。
这种分布揭示了方法上的特点:对于该钱包的每个重复对手方,显然创建了多个诱饵,而非单个。任何从历史记录中复制地址的人,都是在触及一个库存,其中正确地址属于少数。
本调查的局限性
我们无法验证的内容与结果一样应纳入报告。我们不知道所有九个组是否由同一行为者操纵;分组描述了一种模式,而非责任归属。我们不知道来自外部合约的所有135个事件是否都是攻击尝试,因为其中明显包含一些与此技术无关的普通广告代币。我们不知道受影响钱包使用了哪种钱包软件,也不知道它如何显示地址。我们不知道同一组是否接触过德国投资者,以及接触了多少,因为居住地无法从区块链数据中读取。我们也不知道资金能否追回。
Compound 合约也有相似地址:为什么连协议地址也会被伪造
计数的一个附带结果值得特别关注。该钱包最频繁的对手方是 Compound USDC 合约,该钱包通过它定期存入和提取资金。对于这个地址,也发现了另外两个地址,其前四个和后四个字符完全相同。
这将危险范围扩大到了收款人之外。任何人从自己的历史记录中复制合约地址,以输入钱包界面或检查是否与正确的协议交互,都可能以同样的方式被误导。这里的防范措施比私人收款人更简单:已知协议的合约地址列在其文档中,浏览器会通过名称标记已验证的合约。在本次检索中,Compound 合约和 CoW Protocol 结算合约都有此标记;而相似地址则没有。
真实付款后八分钟:诱饵何时设置
在我们分析中,诱饵的时机是最令人惊讶的细节。攻击紧随真实付款之后,并且两次遵循相同模式。2026年7月21日 14:37:11,该钱包向其常规对手方转了2,000,000 USDC。8分12秒后,于14:45:23,从一个开头四个字符相同的地址收到了一笔0.0002 USDC的粉尘转账。8月20日这种情况再次发生:真实转账在20:12:23,粉尘转账在20:20:59,间隔8分36秒。
由此可知,链上正在被监视,并且只有在真实的、重复的付款变得可见后才会设置诱饵。这对防御很重要:历史记录中最危险的位置是紧接在最近一次真实转账上方的条目,因为它被放置在下次搜索会查找的地方。任何定期向同一地址发送相同金额的人,都是这种技术的特别有吸引力的目标。
赃款停放后24秒,窃贼曾使用的相同技术开始出现在窃贼自己的历史记录中。
窃贼反被投毒:盗窃案发生后25分钟,肇事者历史记录中发生了什么
23:31:11,被盗的1,999,939.476314 DAI 存放在新地址。24秒后,23:31:35,归集钱包的历史记录中出现了一笔完全相同金额的转账,发送到一个与刚刚使用的地址在前四个和后四个字符上匹配的地址。该金额来自一个虚假合约,其代币代码通过一个不可见控制字符伪装成 DAI。
事情并未止步。23:44:23,从另一个相似地址收到了一笔真实的0.0002 DAI 粉尘转账。夜间,又有三笔相同金额的虚假转账发送到三个不同的相似地址,同时还有来自冒充 ETH 的合约的条目,以及8月22日上午来自真实 DAI 合约的一笔零转账。在几小时内,至少四个不同的地址出现在肇事者的历史记录中,所有这些地址都以与自己藏匿地址相同的四个字符开头和结尾。
这一插曲不仅仅是一个注脚。它首先表明了这种技术的自动化程度:一个刚被填充的大额持仓显然在几秒钟内就被发现并利用,无需任何人检查其所有者。其次,它表明该攻击无需了解受害者任何信息。它针对的是一种习惯,而非一个人。
检查地址而非复制:使攻击失效的步骤
关于这种技术的好消息是,它完全取决于一个习惯。任何不从交易历史记录中获取收款地址的人,都不会受到地址投毒的影响,无论其列表中有多少诱饵。
因此,第一步也是最重要的一步:从原始来源获取地址。即发票、交易所的提现页面、钱包的地址簿或收款人的消息。你自己的历史记录不是来源,而是任何人都可以写入的副本。
第二步是全面检查。比较整个字符串,而不是缩写形式。最可靠的方法是将来自两个来源的地址并排放置,逐字符检查,或者将其粘贴到搜索字段中,检查找到的地址是否确实具有预期的历史记录。瞥一眼第一个和最后一个字符,正是攻击者所预期的。
第三步涉及中间部分。如果你只能检查一段,那么故意检查地址中间的字符,而不是两端的字符。在我们的案例中,四十个字符中有三十三个不同,而这三十三个全部位于没人看的部分。
为什么硬件钱包显示是最后一道防线
硬件钱包在确认交易前会在自己的屏幕上显示收款地址。该屏幕不连接电脑,无法被篡改的界面重写。因此,它是拦截错误收款人的最后一道防线,在大多数设备上可以滚动查看完整地址。特别是在大额交易中,值得花几秒钟进行比较。哪些设备实现了此显示以及如何实现,请参阅我们的硬件钱包对比。
地址簿和白名单:如何一次性设置收款地址
正如案例所示,重复付款是首选目标。地址簿正好对此有帮助。几乎所有钱包应用程序和大型交易所都允许你一次性存储一个收款地址,为其命名,然后以后只需选择该名称。完全省去了从历史记录中复制的步骤。
在交易所,同样的功能通常称为提现白名单。它还有一个额外好处:新地址通常需要经过24或48小时的等待期才能使用。即使有人控制了你的账户,也无法立即将余额发送到新地址。请检查你的提供商是否提供此锁定期,以及是否已开启,因为通常默认情况下并未开启。
条目的时机仍然至关重要。如果你从被投毒的历史记录中将某个地址导入地址簿,那么该地址在那里将是永久错误的,下一次错误就会自动发生。请从原始来源输入地址,并在输入时完整检查一次。
测试转账:小额预付款何时有帮助,何时只会增加费用
向新地址支付一笔小额预付款是一个合理的保障措施,前提是收款人能够向你确认收到。这样你是在检查结果而非地址,这是一个更稳健的测试。在交易所,你可以在自己的账户中看到到账;对于商业伙伴,你需要收到回复。
没有这种确认,测试转账收效甚微。交易被确认只说明该地址存在。在地址投毒攻击中,假地址显然存在,并且它同样会接受测试金额。如果有人在没有确认回复的情况下就进行大额转账,那只不过是向同一个攻击者付了两次钱。
同时也要考虑成本。在手续费高昂的网络上,测试转账可能很昂贵,而完整的地址比较则免费。有效的顺序是:先完整检查地址,然后对于新收款人和大额交易,再额外进行测试。
记录损失:转账错误后应保留哪些细节
一旦资金丢失,区块链不会改变这一事实。已确认的交易无法撤销,也没人能逆转。现在重要的是记录,并且要立即进行,因为界面会变化,概览会重新排序。
请保存交易哈希、完整的收款地址、确切时间、金额以及转移代币的合约地址。同时保存你复制地址的那个条目的时间戳,因为这将建立事件顺序。截图对此有补充作用,但不能替代这些标识符。之后还有哪些实际可能,以及哪些已经彻底丢失,我们已在关于加密货币发送到错误地址的文章中进行了说明。
对于此类损失的税务处理,在德国没有明确、普遍接受的规定,我们在此有意不进行阐述。你能做的是奠定基础:一份完整、一致的涉及所有交易的记录,供税务顾问使用。投资组合和税务工具对此有帮助,因为它们会永久保存地址和交易记录。
识别地址投毒:要点总结
永远不要从交易历史记录中获取收款地址。请从发票、提现页面或地址簿中获取。历史记录是攻击者唯一可以写入的地方,而这正是他们从那里入手的原因。哪些钱包带有可用的地址簿,请参阅我们的软件钱包对比。
检查完整地址,重点检查中间部分。在我们的案例中,四十个字符中的七个就足以使缩写形式看起来完全相同。对于大额交易,还要在硬件钱包屏幕上读取地址,因为该屏幕无法被篡改;各设备概览请见硬件钱包对比。
在需要之前就设置好地址簿和提现白名单。从原始来源一次性输入重复收款人,并在可用时开启新地址的锁定期。保持地址和交易记录的清洁存档,例如使用我们税务与投资组合工具概览中的工具之一。
本文的证据可公开验证:关于该事件的报告以及受影响钱包在 Blockscout 区块浏览器中的完整交易历史记录,我们的统计即基于此。

交易所排行
交易所排行榜
24小时成交排行榜
人气排行榜
交易所比特币余额
交易所资产透明度证明
去中心化交易所
资金费率
资金费率热力图
爆仓数据
清算最大痛点
多空比
大户多空比
币安/欧易/火币大户多空比
Bitfinex杠杆多空比
ETF追踪
索拉纳ETF
瑞波币ETF
香港ETF
比特币持币公司
加密资产反转
以太坊储备
HyperLiquid钱包分析
Hyperliquid鲸鱼监控
大额转账
链上异动
比特币回报率
稳定币市值
期权分析
新闻
文章
财经日历
专题
钱包
合约计算器
账号安全
资讯收藏
自选币种
我的关注
ETH