仅供教育参考,不构成投资建议。签名发送至错误地址的转账可能无法撤销,冻结或追回也绝无保证。
直接答案
地址投毒是一种替换收款方的诈骗。攻击者生成一个不同的地址,使其在界面中可见的前缀和后缀与可信收款方相似,再将其植入交易历史或其他看似可信的界面。攻击者期待付款方日后复制该仿冒地址,并向它签署一笔有效付款。此攻击不会篡改合法地址、破解其私钥,也不会让共识层错误路由转账。
被植入的记录可能来自真实的原生资产交易、符合标准的零额代币转账,或另一代币合约发出的日志。钱包和区块浏览器的活动页面都是派生视图:标为“发出”的一行可能源自事件字段,而不是由画面所示 from 地址签署的外层交易。应分别核验外层交易的发送方和目标地址、被调用合约、事件发出合约、索引字段以及实际余额变化。
ERC-55 校验和有助于发现部分意外输入错误,但攻击者的不同地址本身也可以格式有效并具有正确校验和。普通 20 字节 EVM 地址也不指明预期链、资产、收款方角色、充值备注或合约调用。安全的付款指令必须把这些事实全部绑定至完整目标地址。
完成核查不代表资产、交易或系统已经安全。
运作方式
攻击者观察公开付款模式,并搜索一个自定义地址,使钱包截短后显示的字符与目标相符。匹配若干十六进制字符并不会克隆账户;未显示的字节仍然不同,新私钥由攻击者控制。一笔微额转账即可让这个真实地址进入历史记录。另一方面,ERC-20 要求把零额转账作为正常转账处理并发出 Transfer,因此零额记录本身不能证明存在伪造、账户失陷、授权或经济损失。
恶意代币合约也可以自行发出 Transfer(victim, lookalike, 0) 日志。该日志是可归因于发出合约的真实收据数据,但并非规范资产合约发出的事件,也不能证明受害者签署了外层交易。然而,如果索引器仅依据事件主题分类活动,却缺少足够的合约与调用上下文,仍可能展示误导性的转出记录。
决定性控制点是最终付款意图。它应绑定链和网络、原生资产或确切代币合约、完整收款地址、收款方类型、金额及原始单位,以及所有调用数据、备注、目标标签或有效期。交易所充值地址、跨链桥、代理合约及一次性路由可能过期,或要求地址以外的信息。剪贴板恶意软件和被篡改的二维码属于不同攻击,但相同的完整目标核验可以在签名前发现替换。
名称与测试付款只是辅助控制,而非身份证明。签名时应针对预期链解析 ENS 名称并记录结果;若界面显示反向名称,应再正向解析并确认其返回同一地址。小额测试只有在收款方独立确认,且主付款复用同一已固定目标时才有帮助。再次从历史记录复制会使这项保护失效。
采用以下流程:
- 从经过身份验证的独立来源固定链、网络、资产及确切代币合约、收款方类型、地址格式、金额,以及任何备注、标签、调用数据、版本或有效期。
- 名称或二维码只解析一次;核验格式与校验和,并把完整目标字节绑定到预期链。反向名称必须正向确认,不得把标签本身当成身份。
- 将目标与受控白名单、地址簿或已签署发票比较,绝不使用交易历史;新增或实质变更收款方时要求独立复核或双人审批。
- 解码确切的未签名交易:区分原生资产
to与代币或跨链桥合约,并检查调用数据中的收款方、代币、原始金额、授权、截止时间及目标语义。 - 适当时向该已固定目标发送小额测试,并取得收款方独立确认;主付款不得再次从历史记录复制地址。
- 只能根据已核验记录签署主付款,在可信显示设备上比较完整目标和金额,再在正确链上核验收据、事件发出合约、日志及余额变化。
- 如怀疑投毒或误转,立即停止后续付款、保存交易哈希与证据,并酌情迅速联系收款服务、发行方或执法机构;冻结、退回和追回均应视为有条件措施,绝非保证。
示例
- 截短显示掩盖差异。 合法地址
0x12ab1111111111111111111111111111111189ef与攻击者地址0x12ab9999999999999999999999999999999989ef均显示为0x12ab...89ef。两者共有4 + 4 = 8个显示的十六进制字符,但全部32个中间字符均不同。只比较显示的两端会产生错误匹配,完整字节比较则不会。 - 自定义地址搜索工作量。 匹配
k = 8个指定十六进制字符的预期工作量为16^8 = 4,294,967,296个候选。假设速度为50,000,000 candidates/s,预期时间是4,294,967,296 / 50,000,000 = 85.89934592 s。这说明的是搜索空间,并非承诺运行时间或钱包警告阈值。 - 日志与状态。 某代币合约发出
Transfer(victim, lookalike, 0)。受害者余额从250,000.000000变为250,000.000000,所以变化量为0.000000;活动索引仍可能显示一条转账记录。应检查事件发出合约和调用授权:该记录本身既不能证明价值发生移动,也不能证明受害者签过名。 - 测试必须固定目标。 某资金账户计划支付
50,000 USDC,先向已核验地址发送1 USDC,取得独立确认后,再从同一固定记录发送49,999 USDC:1 + 49,999 = 50,000 USDC。如果工作人员为第二笔款项再次从历史记录复制仿冒地址,测试将不再保护这笔49,999 USDC付款。
风险
- 付款方从被投毒的交易历史复制仿冒地址。
- 截短界面隐藏不同的中间字符。
- 自定义前缀或后缀被误认为收款方身份。
- 零额 ERC-20 转账生成误导性历史记录。
- 仿冒代币或其日志被误认为规范资产活动。
- 索引器错误分类事件字段,或过迟才纠正。
- 垃圾代币名称、符号或图标冒充可信资产。
- 剪贴板恶意软件在签名前替换已核验地址。
- 本地或同步地址簿遭投毒或已经过期。
- 白名单绑定错误的链、资产、角色或地址版本。
- 无效或缺失校验和的警告被忽略。
- 有效校验和被误认为收款方身份证明。
- ENS 解析发生变化、使用错误币种类型或已经过期。
- 界面显示反向名称,却未作正向确认。
- 小额测试后又从不可信来源重新复制地址。
- 交易所充值地址、网络、备注或标签错误或已过期。
- 对跨链桥、代理合约或合约目标及所需调用数据理解错误。
- 即使使用硬件设备,签署者也只核对截短文本。
- 错误收款交易在干预前已成为规范链记录。
- 受害者依赖酌情性的发行方冻结,或再次遭遇追回诈骗。
常见误区
- 地址投毒意味着钱包、密钥或区块链遭到入侵。 常见攻击利用的是收款方选择,而有效密码学和共识只是执行了签错的付款意图。
- 零额记录必然是虚假的链上交易。 符合标准的转账与真实日志都可以是零额;必须检查来源及状态影响。
- 首尾相同并有校验和就能证明收款方。 另一个有效地址可以匹配可见字符,并拥有自己的有效校验和。
- 一次成功测试会自动保护下一笔转账。 如果主转账不复用已固定、已确认的目标,保护便会失效。
- 钱包、验证者或代币发行方总能撤销付款。 追回权限和合作取决于资产、服务、司法辖区、证据与时机。
相关主题
来源
- Address poisoning scams - MetaMask Help Center(查阅日期:2026-08-13)
- Anatomy of an Address Poisoning Scam - Chainalysis(查阅日期:2026-08-13)
- ERC-20: Token Standard - Ethereum Improvement Proposals(查阅日期:2026-08-13)
- ERC-55: Mixed-case checksum address encoding - Ethereum Improvement Proposals(查阅日期:2026-08-13)
- Transactions - ethereum.org(查阅日期:2026-08-13)
- Resolution - ENS Documentation(查阅日期:2026-08-13)
- Frequently asked questions - ethereum.org(查阅日期:2026-08-13)
- USDC Terms - Circle(查阅日期:2026-08-13)