钱包里出现了不明代币:垃圾代币、粉尘攻击与地址投毒(address poisoning)

钱包里出现了不明代币:垃圾代币和粉尘从哪里来,地址投毒(address poisoning)如何运作,为什么风险在于交互而不是接收,以及怎样安全地处理。

CoinDropster 编辑团队 · 更新于:

钱包里出现了不明代币——名字是一个网址、显示价值几千美元的余额,或者是一笔你肯定没有发过的零额转账。这是最常见的恐慌原因之一,而在大多数情况下恐慌是没有根据的:钱包里的垃圾代币本身是无害的。危险始于你开始与它交互,或者在地址投毒(address poisoning)的情形下,从交易历史里复制地址。本文分析别人的代币从哪里来、每种手法如何运作,以及哪些操作是安全的。

本文描述常见的垃圾代币和地址替换机制以及一般安全规则。它不是威胁的完整清单,也不是财务或法律建议;在拿不准的情况下,最好的做法是什么都不做。

钱包里别人的代币从哪里来

公链上的任何地址都可以在未经所有者同意的情况下收到代币:发送不需要接收方签名。有三类发送者利用这一点。

  • 垃圾空投。 代币合约把自己发送到成千上万个活跃地址。目的是吸引注意:代币名称或描述里嵌入了一个网址,在那里“兑换”或“领取”这份礼物。有时代币会显示很高的虚假美元余额,因为它的“价格”是在一个假的流动性池里设定的。
  • 粉尘攻击。 地址收到一笔极小额的真实资产。目的不是引诱,而是追踪:如果你之后把这点余额和其他资金一起转走,分析者就能把地址关联起来。在空投语境下,这也是把别人的钱包“挂到”自己集群上的一种手段。
  • 地址投毒。 从一个开头和结尾字符与你实际使用的地址相同的地址,发来一笔零额或垃圾代币交易。目的是进入你的交易历史,等你从那里复制地址。

共同点:这些交易没有一笔能让发送者获得你钱包的访问权。他们花 Gas 只是为了给你看点什么。接下来发生什么取决于你的行动。

为什么风险在于交互而不是接收

收到代币是被动事件。风险出现在三种情况下,它们都需要你的签名。

访问名称里的网站。 代币叫“Claim at ...”或“Visit ... to swap”之类。网站是标准的钓鱼页面:连接钱包、签署“验证”、领取奖励。签名的结果是对真实代币的授权或一笔转账。这类页面的结构见识别虚假领取网站。

尝试卖出或兑换。 看起来很合理:代币显示几千美元余额,为什么不换掉。但要让 DEX 兑换它,你必须对代币合约授予 approve,而合约是骗子写的。它可以在 approve 或 transfer 被调用时执行任意逻辑——例如要求用原生币支付“手续费”,或者在你付了 Gas 之后干脆不让卖。这种代币背后没有真实流动性。

直接与合约交互。 调用垃圾合约的任何函数——burn、claim、unlock——都是向你没有审计过的代码发起交易。唯一安全的调用是不调用。

另外:在钱包界面里隐藏代币不是交易。钱包只是不再显示它;链上什么都没变,这是安全的。

地址投毒:地址替换

这种手法值得详细分析,因为它既不需要你在假网站上签名,也不需要你去卖垃圾代币——只需要一个习惯。

运作方式。你经常向某个地址转账,比如你的交易所充值地址:0x1a2b…9f8e。骗子生成一个首尾字符相同的地址——这是一次几秒或几分钟就能完成的暴力搜索——并从该地址向你的钱包发送一笔零额或垃圾代币交易。现在你的历史记录里有两个地址,在钱包和区块浏览器显示的缩略形式下看起来一模一样。

下次你想转账到交易所,打开历史记录“像上次那样”复制地址时,就有一定概率复制到骗子的地址。交易发出;无法撤回。

防御归结为三条规则。第一:绝不从交易历史复制地址——只从来源复制(交易所界面、钱包的地址簿、经过核实的文档)。第二:发送前核对完整地址,而不是首尾四个字符;带地址簿和已验证地址标签的钱包能大幅降低风险。第三:向新地址大额转账前,先发一笔测试金额,确认它到达了正确的地方。

不明代币该怎么处理

无论哪种情况,处理顺序都一样:

  1. 什么都不签。 不点名称里的链接,不尝试卖出,不调用合约函数。
  2. 在钱包里隐藏代币。 大多数钱包允许把某个资产从列表中隐藏。这是纯外观操作,没有交易。
  3. 在区块浏览器里查看合约。 打开代币合约地址:创建时间、持有人数、代码是否已验证、区块浏览器经常标注的“spam”或“phishing”标签。这是阅读,不是交互。
  4. 检查授权。 如果怀疑自己已经签过什么,就查看活跃授权并撤销不认识的。具体做法见撤销代币授权。
  5. 就让它待着。 垃圾代币可以在钱包里躺好几年而不产生风险。它不需要被“处理掉”。

如果代币是真实资产的粉尘(例如一小笔稳定币),也最好别碰:转移它会在图谱上把你的地址与发送者的地址合并。

安全操作清单

  • 接收地址从原始来源复制,绝不从交易历史复制。
  • 发送前核对完整地址,而不是只看首尾。
  • 向新地址的大额转账从一笔测试金额开始。
  • 名称里带网址的代币隐藏起来,不去打开。
  • 垃圾代币不卖、不换、不“销毁”。
  • 定期检查活跃授权,而不是只在出事之后。
  • 空投活动用的钱包与主钱包分开,让任何失误的代价有限——如何安排见空投钱包设置。

钱包里别人的代币,就像有人扔进你邮箱的一封信。它打不开门;是你在点击链接或签署交易时打开了门。真正的发放不是这样进行的:由团队公告,项目状态依据官方数据变化——而这些变化正是 CoinDropster 为每个项目跟踪的内容。查看跟踪中的空投 →