同一个助记词,为什么他的钱包归零了而我的没事

· 常见问题

去年三月,我两个朋友前后脚中招。老周在某个DEX授权时点了“无限额度”,三天后钱包里的 12 个 ETH 被一次性划走。阿凯更冤,他在电报群里下载了一个“MEV 机器人”工具,助记词输进去的那一刻,钱包就易主了。两个人的损失加起来接近 5 万美元,但复盘的时候我发现,他们踩的坑完全不是一回事。这篇文章就把钱包这件事掰开聊聊,从私钥保管到授权管理,都是真金白银换来的经验。

助记词不是“备份”,是“本体”

很多人把助记词当成账号密码的升级版,觉得抄下来藏好就行。实际情况是,助记词就是私钥的另一种写法,谁拿到它,谁就拥有钱包的完全控制权。没有“找回密码”这回事,也没有客服能帮你冻结。

我见过最离谱的案例是一个用户把助记词拍照存在 iCloud 相册里。2023 年那波针对苹果用户的钓鱼攻击,就是通过伪造 iCloud 登录页面拿到账号,然后翻相册找助记词截图。他的 8 个 BTC 在 20 分钟内被清空。

实操上,助记词的保管我只推荐两种方式:

  • 物理介质离线保存:用钢制备份板刻字,防火防水,放在只有你知道的地方。纸质的也行,但别放在会被水泡、被虫蛀、被家人当废纸扔掉的地方——这种事真的发生过。
  • 分片保存:把 12 或 24 个单词拆成 2-3 份,分别放在不同地点。比如前 8 个词放家里保险柜,后 8 个词放银行保管箱。单独拿到任何一份都无法还原钱包。

绝对不要做的事:截图、存云笔记、发微信文件传输助手、念给语音助手听。这些操作在攻击者眼里跟把钥匙插在门上没区别。

授权管理:90% 的人从没检查过

说回老周那个案例。他在一个不知名 NFT 项目的 mint 页面点了“Approve”,授权额度是 unlimited。这个授权意味着那个合约可以随时转走他钱包里所有的该种代币,而且不需要他再确认。三个月后项目方跑路,合约里的后门被触发,老周的钱包被搬空。

讲真,大部分人对授权毫无概念。你每在 Uniswap 上交易一次、每 mint 一个 NFT、每参与一次空投领取,背后都可能产生一个授权记录。这些授权不会自动过期。

检查方法很简单:

  1. 打开 revoke.cash 或 etherscan 的 Token Approvals 页面
  2. 连接钱包(只读权限,不会触发交易)
  3. 查看所有授权列表,重点看额度是 “Unlimited” 的那些
  4. 对不再使用的协议,逐个点 Revoke,每笔撤销需要付 gas,以太坊主网大概 3-8 美元一笔

我自己的习惯是每月检查一次。去年清理出 17 个遗留授权,其中 4 个来自已经 rug 的项目。这个动作花不了 10 分钟,但能堵住最大的一个漏洞。

热钱包 vs 冷钱包:别用一把锤子拧所有螺丝

有人问我能不能只用一个钱包。能,但风险结构会很难看。

我的配置是这样的:一个硬件钱包(Ledger 或 Trezor 都行)存长期持仓,占总资产的 80% 以上,助记词从不触网。一个手机热钱包(比如 Rainbow 或 Trust Wallet)放日常交互用的零钱,金额控制在“丢了不心疼”的范围,我一般放 500 美元等值以内。还有一个“测试钱包”,专门用来点陌生链接、领不明空投,里面永远不超过 50 美元。

这个分层的逻辑很直白:热钱包的私钥存在联网设备上,理论上就有被恶意软件或钓鱼页面窃取的可能。你没法保证自己永远不点错链接,但你可以保证点错的时候那个钱包里没多少钱。

硬件钱包的设置步骤这里提一嘴,因为很多人第一步就做错了:

  1. 只从官网购买。亚马逊和闲鱼的“全新未拆封”都可能是预置了攻击者助记词的设备。Ledger 官网下单,等两周,别贪快。
  2. 初始化时自己生成助记词,不要选“恢复已有钱包”除非你真的是在恢复。
  3. 助记词手抄在纸上,不要用手机拍,不要输入任何网页。
  4. 设置 PIN 码,输错 3 次自动重置——这个功能是保护你设备被盗后的最后一道锁。

签名弹窗里的陷阱:盲签等于签空白支票

去年有个朋友在 OpenSea 上收到一个“免费空投”的 offer,弹窗出来他看都没看就点了确认。那个签名请求实际上是一个 setApprovalForAll,把他名下所有的 NFT 授权给了攻击者。半小时后,他钱包里 3 个 Azuki 和一堆其他蓝筹被转走,损失超过 6 万美元。

钱包弹窗里那些十六进制字符串和“Sign message”按钮,背后可能是完全不同的操作。常见的危险签名类型:

  • Permit:一种离线授权,签了之后对方可以转走你指定的代币,不需要你再付 gas
  • setApprovalForAll:一次性授权某个地址管理你所有的同类资产(所有 NFT 或所有某代币)
  • 盲签(Blind Signing):钱包无法解析内容,只显示一串哈希。这种情况在硬件钱包上尤其常见,因为设备屏幕小

我的原则是:看不懂的签名一律拒绝。如果某个操作必须盲签才能完成,那这个操作本身就有问题。宁可错过空投,不签不明请求。

钱包被偷之后:黄金 10 分钟

假设最坏的情况发生了,你发现钱包里有未经授权的转出。这时候别慌,按顺序做这几件事:

  1. 立刻把剩余资产转到安全地址。用你提前准备好的另一个钱包,别现场新建——新建钱包的过程可能被剪贴板劫持恶意软件盯上。转 ETH 用最大 gas 优先,抢在攻击者前面。
  2. 撤销所有授权。如果还有剩余资产没被转走,先 revoke 再转移,顺序别搞反。
  3. 记录交易哈希。在 Etherscan 上找到攻击者的地址,标记下来,后续追踪和报案都用得上。
  4. 不要再使用这台设备。如果怀疑是电脑中木马,断网、重装系统,别心存侥幸。

老实说,钱一旦转出去,追回的概率极低。链上交易的不可逆性在这里是双刃剑。所以前面那些预防措施——分片保存助记词、定期 revoke、分层钱包——才是真正值钱的部分。

一个容易被忽略的细节:地址投毒

最后说个新套路。攻击者会生成一个跟你常用转账地址前几位和后几位完全相同的地址,然后用这个地址给你转一笔 0 USDT 的交易。你的交易记录里就会出现这个“假地址”。下次你从历史记录里复制地址转账时,很可能复制到的是攻击者的地址。

防范方法就一条:每次转账前,完整核对地址的中段字符,或者直接扫二维码。别偷懒从历史记录里复制。我现在的习惯是把常用地址存成通讯录并加标签,转账时从通讯录选,不从记录里翻。

钱包这东西,说白了就是一句话:你对自己的资产负全责。没有银行兜底,没有客服申诉,每一个确认按钮背后都是真金白银。把这些操作习惯养成了,其实也没那么提心吊胆。