钱包助记词丢了、被钓鱼、资产归零:这7个坑我见过太多次
我写过五年加密内容,后台收到最多的私信不是“买什么币”,而是“钱包出事了怎么办”。讲真,90% 的钱包事故,根子上都是几个反复出现的操作习惯。今天挑最要命的几个说,你对照着检查一遍。
助记词拍照存手机,等于把家门钥匙挂门上
最常见的操作:新建钱包,助记词弹出来,顺手截个图,往相册一扔,或者发到自己的微信文件传输助手。方便,也方便了别人。
手机相册、微信聊天记录、iCloud 备份,全在云端。2022 年有个真实案例,某用户把助记词存在手机备忘录里,手机送修,维修人员翻到备忘录,12 个单词抄走,钱包里 3.2 个 ETH 当天被转空。你去报警,警察问你“私钥是什么”,你都解释不清。
正确做法就一条:助记词只上纸,不上网。抄在纸上,塑封,放抽屉。想更稳一点,买块钢板自己刻,几十块钱的事。别嫌土,土办法救过很多人。
“空投领取”页面,签一次授权就清空
你在推特看到一条空投信息,点进去,页面做得跟官方一模一样,连域名都只差一个字母。它让你“连接钱包”,你连了;它弹出一个签名请求,你看都没看就点了确认。
问题出在这个签名上。有些签名请求本质是 setApprovalForAll,一旦确认,等于授权对方无限转走你该合约下的所有资产。2023 年链上安全机构统计,钓鱼授权类攻击单笔平均损失超过 4000 美元。我认识一个人,领一个号称价值 200 刀的“空投”,签完字,钱包里 11 个 NFT 和 2 个 WETH 十分钟内没了。
怎么防?连接钱包前,先看域名。签名弹窗出来,别急着点确认,把内容展开看一眼。看到 Approval、setApprovalForAll、Permit 这类字眼,停下来。不确定就关掉页面,去项目官方推特核实链接。还有一个习惯值得养成:专门开一个小号钱包用来交互和领空投,里面只放够付 gas 的零钱。
一个钱包装所有资产,出事就是全损
很多人把所有币、所有 NFT 放在同一个钱包里。这个钱包天天连各种 DApp、签各种名。等于把全部家当揣在一个口袋里,还天天往人堆里挤。
我的做法是分三个钱包:
- 冷钱包(硬件钱包或纯离线生成的地址):存大额资产,一年动不了几次
- 交互钱包:日常连 DApp、领空投、mint,里面只放小额
- 测试钱包:专门用来试不明链接,里面放几块钱
分钱包的操作成本很低,MetaMask 新建一个账户只要几秒。但真出事的时候,你损失的上限被锁死了。
Gas 费设太低,交易卡住后乱点“加速”
以太坊拥堵的时候,你把 gas 设成 10 gwei,交易 pending 了三个小时。你着急,点了钱包里的“加速”或者去第三方工具做交易替换。
这里有个坑:交易替换(replace-by-fee)需要你手动构造一笔同 nonce 的交易。操作错了,可能把原交易替换成一笔你根本没想发的交易。我见过有人替换时把接收地址填错,0.5 ETH 直接打进了一个合约地址,取不回来。
更稳的做法:卡住了就等,或者用钱包自带的 cancel 功能,发一笔 0 价值的转账给自己,nonce 相同,gas 给高一点。别在着急的时候手搓交易参数。
硬件钱包买了不验证,拆封即用
硬件钱包的供应链攻击是真实存在的。2021 年有过案例,攻击者从非官方渠道买设备,拆封后预置好助记词再重新封装,卖给你。你拆开就用,助记词是人家预设的,资产进来就被转走。
买硬件钱包只走官网。收到货后,第一件事不是初始化,是检查包装封条。初始化时,设备屏幕上必须显示“生成新钱包”的选项,让你自己抄助记词。如果设备直接给你一组现成的助记词,或者让你去某个网站输入助记词“激活”,立刻停手,这东西有问题。正规硬件钱包的助记词永远只在设备屏幕上显示,永远不会让你在电脑或手机上输入。
旧钱包不清理授权,埋雷
你在某个 DApp 上授权过 USDC 的无限额度,用完了,以为没事了。那个 DApp 后来被黑了,合约被控制,攻击者用你当年的授权直接把你的 USDC 转走。
授权不会自动过期。去 revoke.cash 或者 etherscan 的 token approval 页面,把你不再用的授权撤掉。操作很简单:连接钱包,找到不需要的授权,点 revoke,付一笔 gas。花几块钱,拆一颗埋了很久的雷。建议每季度清一次。
最后说一个最容易被忽略的:备份不等于助记词
有人把钱包的 keystore 文件导出来存着,以为这就是备份。keystore 文件需要配合你设的密码才能恢复,密码忘了,文件就是废的。还有人只备份了私钥,没备份助记词。私钥能恢复单个地址,但如果你用的是 HD 钱包(MetaMask 默认就是),助记词才能恢复整个钱包下的所有账户。
备份的时候,确认你备份的是助记词,12 个或 24 个单词,顺序不能错。恢复测试一次:找个空钱包,用你的助记词导进去,看地址对不对。别等到真出事那天才发现备份是错的。