﻿---
title: "地址投毒"
description: "地址投毒会把仿冒收款地址植入交易历史或其他看似可信的界面，诱使用户在后续付款时复制给攻击者；它利用的是收款方核验缺陷，而非篡改真实地址或窃取其密钥。"
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 地址投毒

> 仅供教育参考，不构成投资建议。签名发送至错误地址的转账可能无法撤销，冻结或追回也绝无保证。

<a id="answer"></a>

## 直接答案

地址投毒是一种替换收款方的诈骗。攻击者生成一个不同的地址，使其在界面中可见的前缀和后缀与可信收款方相似，再将其植入交易历史或其他看似可信的界面。攻击者期待付款方日后复制该仿冒地址，并向它签署一笔有效付款。此攻击不会篡改合法地址、破解其私钥，也不会让共识层错误路由转账。

被植入的记录可能来自真实的原生资产交易、符合标准的零额代币转账，或另一代币合约发出的日志。钱包和区块浏览器的活动页面都是派生视图：标为“发出”的一行可能源自事件字段，而不是由画面所示 `from` 地址签署的外层交易。应分别核验外层交易的发送方和目标地址、被调用合约、事件发出合约、索引字段以及实际余额变化。

ERC-55 校验和有助于发现部分意外输入错误，但攻击者的不同地址本身也可以格式有效并具有正确校验和。普通 20 字节 EVM 地址也不指明预期链、资产、收款方角色、充值备注或合约调用。安全的付款指令必须把这些事实全部绑定至完整目标地址。

<a id="mechanism"></a>

## 运作方式

攻击者观察公开付款模式，并搜索一个自定义地址，使钱包截短后显示的字符与目标相符。匹配若干十六进制字符并不会克隆账户；未显示的字节仍然不同，新私钥由攻击者控制。一笔微额转账即可让这个真实地址进入历史记录。另一方面，ERC-20 要求把零额转账作为正常转账处理并发出 `Transfer`，因此零额记录本身不能证明存在伪造、账户失陷、授权或经济损失。

恶意代币合约也可以自行发出 `Transfer(victim, lookalike, 0)` 日志。该日志是可归因于发出合约的真实收据数据，但并非规范资产合约发出的事件，也不能证明受害者签署了外层交易。然而，如果索引器仅依据事件主题分类活动，却缺少足够的合约与调用上下文，仍可能展示误导性的转出记录。

决定性控制点是最终付款意图。它应绑定链和网络、原生资产或确切代币合约、完整收款地址、收款方类型、金额及原始单位，以及所有调用数据、备注、目标标签或有效期。交易所充值地址、跨链桥、代理合约及一次性路由可能过期，或要求地址以外的信息。剪贴板恶意软件和被篡改的二维码属于不同攻击，但相同的完整目标核验可以在签名前发现替换。

名称与测试付款只是辅助控制，而非身份证明。签名时应针对预期链解析 ENS 名称并记录结果；若界面显示反向名称，应再正向解析并确认其返回同一地址。小额测试只有在收款方独立确认，且主付款复用同一已固定目标时才有帮助。再次从历史记录复制会使这项保护失效。

采用以下流程：

1. 从经过身份验证的独立来源固定链、网络、资产及确切代币合约、收款方类型、地址格式、金额，以及任何备注、标签、调用数据、版本或有效期。
2. 名称或二维码只解析一次；核验格式与校验和，并把完整目标字节绑定到预期链。反向名称必须正向确认，不得把标签本身当成身份。
3. 将目标与受控白名单、地址簿或已签署发票比较，绝不使用交易历史；新增或实质变更收款方时要求独立复核或双人审批。
4. 解码确切的未签名交易：区分原生资产 `to` 与代币或跨链桥合约，并检查调用数据中的收款方、代币、原始金额、授权、截止时间及目标语义。
5. 适当时向该已固定目标发送小额测试，并取得收款方独立确认；主付款不得再次从历史记录复制地址。
6. 只能根据已核验记录签署主付款，在可信显示设备上比较完整目标和金额，再在正确链上核验收据、事件发出合约、日志及余额变化。
7. 如怀疑投毒或误转，立即停止后续付款、保存交易哈希与证据，并酌情迅速联系收款服务、发行方或执法机构；冻结、退回和追回均应视为有条件措施，绝非保证。

<a id="example"></a>

## 示例

- **截短显示掩盖差异。** 合法地址 `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` 付款。

<a id="risks"></a>

## 风险

- 付款方从被投毒的交易历史复制仿冒地址。
- 截短界面隐藏不同的中间字符。
- 自定义前缀或后缀被误认为收款方身份。
- 零额 ERC-20 转账生成误导性历史记录。
- 仿冒代币或其日志被误认为规范资产活动。
- 索引器错误分类事件字段，或过迟才纠正。
- 垃圾代币名称、符号或图标冒充可信资产。
- 剪贴板恶意软件在签名前替换已核验地址。
- 本地或同步地址簿遭投毒或已经过期。
- 白名单绑定错误的链、资产、角色或地址版本。
- 无效或缺失校验和的警告被忽略。
- 有效校验和被误认为收款方身份证明。
- ENS 解析发生变化、使用错误币种类型或已经过期。
- 界面显示反向名称，却未作正向确认。
- 小额测试后又从不可信来源重新复制地址。
- 交易所充值地址、网络、备注或标签错误或已过期。
- 对跨链桥、代理合约或合约目标及所需调用数据理解错误。
- 即使使用硬件设备，签署者也只核对截短文本。
- 错误收款交易在干预前已成为规范链记录。
- 受害者依赖酌情性的发行方冻结，或再次遭遇追回诈骗。

<a id="misconceptions"></a>

## 常见误区

- **地址投毒意味着钱包、密钥或区块链遭到入侵。** 常见攻击利用的是收款方选择，而有效密码学和共识只是执行了签错的付款意图。
- **零额记录必然是虚假的链上交易。** 符合标准的转账与真实日志都可以是零额；必须检查来源及状态影响。
- **首尾相同并有校验和就能证明收款方。** 另一个有效地址可以匹配可见字符，并拥有自己的有效校验和。
- **一次成功测试会自动保护下一笔转账。** 如果主转账不复用已固定、已确认的目标，保护便会失效。
- **钱包、验证者或代币发行方总能撤销付款。** 追回权限和合作取决于资产、服务、司法辖区、证据与时机。

<a id="related"></a>

## 相关主题

- [网络钓鱼诈骗](/zh-cn/crypto/phishing-scam/)
- [交易模拟](/zh-cn/crypto/transaction-simulation/)
- [加密钱包](/zh-cn/crypto/wallet/)

<a id="sources"></a>

## 来源

- [Address poisoning scams](https://support.metamask.io/stay-safe/protect-yourself/wallet-and-hardware/address-poisoning-scams/) - MetaMask Help Center（查阅日期：2026-08-13）
- [Anatomy of an Address Poisoning Scam](https://www.chainalysis.com/blog/address-poisoning-scam/) - Chainalysis（查阅日期：2026-08-13）
- [ERC-20: Token Standard](https://eips.ethereum.org/EIPS/eip-20) - Ethereum Improvement Proposals（查阅日期：2026-08-13）
- [ERC-55: Mixed-case checksum address encoding](https://eips.ethereum.org/EIPS/eip-55) - Ethereum Improvement Proposals（查阅日期：2026-08-13）
- [Transactions](https://ethereum.org/en/developers/docs/transactions/) - ethereum.org（查阅日期：2026-08-13）
- [Resolution](https://docs.ens.domains/resolution/) - ENS Documentation（查阅日期：2026-08-13）
- [Frequently asked questions](https://ethereum.org/en/community/support/faq/) - ethereum.org（查阅日期：2026-08-13）
- [USDC Terms](https://www.circle.com/legal/usdc-terms) - Circle（查阅日期：2026-08-13）

Source: https://wiki.fcontext.com/zh-cn/crypto/address-poisoning/index.mdx
