两个钱包,一个被清空一个安然无恙:我复盘了那晚的每个操作细节
2023年11月,我认识的一个DeFi老玩家老陈,钱包里12万美元的资产在15分钟内被清空。同一天晚上,另一个朋友小刘的硬件钱包也收到了钓鱼链接,但他什么都没丢。
差别不在运气。我把两人的操作日志拉出来对比了一遍,发现几个关键分叉点,值得每个拿自己钱包当银行的人看看。
老陈踩的坑,从一条Discord私信开始
老陈的出事路径很典型。他在某个NFT项目的Discord群里收到一条私信,对方自称是项目mod,发来一个“白名单验证链接”。老陈点了,页面长得跟项目官网几乎一样,他连了钱包,签了一笔approve交易。
问题就出在这。他签的不是mint,是授权。攻击者拿到的授权额度是unlimited,也就是无限量。随后对方用这个授权转走了他钱包里3个ETH和一堆ERC-20代币,总共12万美元。
复盘时我注意到一个细节:老陈的钱包是热钱包,私钥加密后存在浏览器插件里,平时连着十几个DApp。他的助记词抄在一张纸上,放在书房抽屉——这还算好的。但他从来没做过授权清理,钱包里累积了40多个历史授权,其中至少6个是unlimited级别。
说白了,他的钱包就像一栋门锁老旧、钥匙到处借的房子。
小刘做对了什么
小刘同样收到了那条钓鱼私信。他也点了链接,页面也弹出了钱包连接请求。但他用的硬件钱包在签名前要求物理按键确认,屏幕上显示的授权对象是一个他从未见过的合约地址,额度是unlimited。
他没按确认,直接关掉了页面。
这里有两个动作救了他:硬件钱包的屏幕显示让他在签名前看清了交易内容,而他养成了一个习惯——任何approve操作,只要额度显示unlimited且合约地址不眼熟,一律拒绝。
有意思的是,小刘事后用Revoke.cash查了一下,发现自己之前也有3个高风险授权,其中一个来自半年前交互过的一个已经跑路的项目。他当场全部撤销,花了不到2分钟。
授权管理:大多数人漏掉的那一步
讲真,助记词保管大家都绷着弦,但授权管理这块,我见过的疏忽比例高得离谱。你可以在Revoke.cash或Etherscan的Token Approvals页面输入自己的地址,看看有多少DApp还握着你的代币支配权。
操作步骤不复杂:
- 打开revoke.cash,连接钱包(建议用只读模式先看,不急着连)
- 页面会列出所有你授权过的合约和对应额度
- 优先处理
unlimited额度的授权,尤其是你不记得最近用过的 - 撤销每笔授权需要付gas费,以太坊主网单笔大约2-5美元,Layer2上几分钱
我自己的习惯是每个月查一次。听起来麻烦,但比起被清空,这点时间成本可以忽略。
硬件钱包不是万能药,但能挡住大部分低级错误
老陈事后买了个Ledger,问我是不是就安全了。我说不一定,得看你怎么用。
硬件钱包的核心价值不是“私钥离线”这么简单——它真正的防线是物理确认环节。所有交易必须在设备屏幕上核对后按键签名,钓鱼网站没法替你在硬件上按那个按钮。小刘那晚就是靠这一关拦下来的。
但这里有个坑:如果你在硬件钱包上签的是一笔盲签交易(blind signing),屏幕上只显示一串哈希,那物理确认的意义就打折扣了。所以我的建议是,在设备设置里把盲签功能关掉,宁可多花点时间看清楚交易内容。
另外,硬件钱包的助记词备份千万别拍照存手机,也别存云笔记。我见过至少两起被盗案例,根源都是助记词截图存在iCloud里,邮箱被撞库后连带沦陷。老老实实抄在金属助记词板上,放两个物理位置不同的地方。
一个容易被忽略的设置:钱包隔离
老陈的12万美元和一个日常交互用的热钱包混在一起,这是另一个致命伤。我现在的做法是至少分三个钱包:
- 冷钱包:硬件钱包,只存大额资产,一年动不了几次
- 温钱包:热钱包,用于中等金额的DeFi交互,单笔不超过5000美元
- 热钱包:专门用来mint、领空投、点不明链接,里面只放几十美元的gas费
这样即使热钱包被钓鱼,损失可控。说白了,别把鸡蛋和炸弹放一个篮子里。
签交易前,多看那两秒
最后说一个几乎零成本的防线:签名前的核对习惯。
任何钱包弹窗,花两秒看三个东西——合约地址是不是你预期的那个、授权额度是不是unlimited、交易类型是approve还是transfer。老陈那晚如果多看一眼,就会发现授权对象是一个三天前刚部署的合约,交互记录为零。
这两秒,值12万美元。