从被盗 12 万美金到零事故:我的钱包实战避坑指南

· 钱包对比

2023 年 3 月,我认识的一个 NFT 玩家在 Blur 上挂单时签了一笔 setApprovalForAll,把整个钱包的 NFT 权限授给了一个钓鱼合约。两小时后,他钱包里 7 只 MAYC 和 3 只 Doodle 被扫空,按当时地板价算,损失大概 12 万美金。同一周,另一个朋友在硬件钱包里存着 20 个 ETH,两年没动过,安然无恙。

差别不在运气,在操作习惯。下面这些东西,都是我踩过坑或者亲眼看着别人踩坑之后总结出来的。

一、助记词到底怎么存

先说一个反直觉的事实:把助记词拍照存手机相册,比写在纸上放在抽屉里更容易被盗。相册会同步 iCloud 或 Google Photos,邮箱和云盘一旦被撞库,助记词就是现成的。

我现在的做法是分三份:

  • 一份手写在防火袋里,放家里保险柜
  • 一份刻在金属助记词板上,放父母家
  • 一份拆成两半,A 半存银行保险箱,B 半存另一个城市的朋友那

单份泄露都不构成完整助记词。这个方案成本不到 200 美金,比我第一年交的学费便宜太多。

还有一个常见误区:很多人把助记词存在密码管理器里。1Password 或 Bitwarden 本身加密没问题,但你的主密码如果只有 8 位,暴力破解只是时间问题。要用密码管理器存,主密码至少 20 位,并且开双因素。

二、热钱包和冷钱包的分工

我见过最离谱的操作是有人把 50 万美金的资产全放在 MetaMask 浏览器插件里,还天天连各种空投网站。

实际的分工应该是这样的:

热钱包(MetaMask / Rabby):只放交互用的钱,单次不超过总资产的 5%。我一般留 0.5 到 1 个 ETH 在里面,够付 gas 和试新项目。

冷钱包(Ledger / Trezor):大额资产放这里,并且——这点很多人忽略——冷钱包不要频繁连接 DeFi 协议。Ledger 连上 MetaMask 签合约的时候,私钥虽然在设备里,但你签的授权该给还是给了。冷钱包的正确用法是“只进不出”,真要交互,转一小笔到热钱包去操作。

讲真,我一个朋友用 Ledger 连了某个新出的借贷协议,签了授权,结果合约有后门,冷钱包里的资产照样被转走。硬件钱包保护的是私钥不被窃取,不保护你主动签出去的权限。

三、授权管理:90% 的人忽略的环节

说到授权,这是被盗重灾区。你在 Uniswap 上换一次币,就给了它一次代币授权;在 OpenSea 上挂一次单,可能给了它整个 NFT 集合的操作权限。

操作步骤很具体:

  1. 打开 revoke.cash 或 Etherscan 的 Token Approvals 页面
  2. 连接钱包(用热钱包查,别用冷钱包连)
  3. 逐个检查授权列表,把不用的、不认识的、额度是“Unlimited”的全部 revoke
  4. 每次 revoke 要付 gas,以太坊主网大概 3 到 8 美金一笔,挑 gas 低的时候批量做

我自己的习惯是每月 1 号和 15 号各查一次,五分钟的事。去年一年 revoke 掉 30 多个授权,其中 4 个是钓鱼合约——我压根不记得什么时候签的。

四、签名之前看什么

钱包弹窗里那串十六进制代码,99% 的人直接点确认。但有几个关键字段必须看:

  • setApprovalForAll:看到这个词,意思是“把所有该类资产的权限交给对方”,NFT 玩家尤其要警惕
  • increaseAllowance:增加授权额度,看看额度是不是 Unlimited
  • permit:链下签名授权,不花 gas 但同样危险,EIP-2612 的钓鱼常用这个

一个真实案例:2024 年初有个钓鱼团伙伪造了某 DEX 的界面,用户以为在“领取空投”,实际签的是 permit,把 USDC 的授权给了攻击者。因为不花 gas,很多人签完都没感觉,直到资产被转走。

我的做法是:任何签名弹窗,先看合约地址是不是官方公布的,再看函数名。不认识就拒绝,去项目官方 Discord 问,别在 Telegram 群里问——那里骗子比客服多。

五、多签:大额资产的最后一道门

如果你钱包里超过 10 万美金,老实说,单签钱包不够用。Safe(原 Gnosis Safe)多签是目前最成熟的方案,2/3 或 3/5 的配置,意味着单把私钥泄露也转不走钱。

设置成本不高,以太坊主网部署一个 Safe 大概 30 到 50 美金 gas。签名人用不同设备、不同地点,最好有一把是硬件钱包。我见过一个 DAO 国库用 3/5 多签,其中一个签名人的电脑中了木马,但因为攻击者只拿到一把钥匙,资产纹丝不动。

六、几个血泪细节

  • 不要用同一个助记词生成多个钱包地址来“分散风险”,助记词泄露,所有派生地址一起完蛋
  • 转账前先转 1 美金测试,尤其是新链或新代币,我因为跳过这步在 Arbitrum 上转丢过 2000 美金
  • 警惕“钱包升级”骗局,MetaMask 从没要求过用户“迁移钱包”,任何让你输入助记词来“升级”的页面都是假的
  • 浏览器插件只从官方商店装,并且定期检查有没有多出来的插件——2022 年有个恶意插件伪装成 PDF 阅读器,专门偷 MetaMask 的种子

钱包安全这件事,说白了就是:假设你会犯错,然后设计一套让你犯错也不至于倾家荡产的流程。12 万美金的教训摆在那,希望你别用自己的钱再验证一遍。