同一个助记词,为什么他丢了120万美元,我一根毛都没少

· 钱包对比

2023年3月,我认识的一个老哥在Blur上撸空投,钱包里躺着一笔不小的资产。某天他点了一个推特私信里的“空投领取”链接,授权了一笔setApprovalForAll。三分钟后,他钱包里17个蓝筹NFT被扫光,按当时地板价算,接近120万美元。

同一个月,我也收到了几乎一模一样的钓鱼私信。我点进去看了一眼,关掉,继续干活。

差距不在运气。在于我钱包里装了几个“保险丝”,他没有。

先说那个要命的授权

ERC-20的approve和ERC-721的setApprovalForAll,是钓鱼攻击最爱的入口。你签一次,对方就能无限次转走你对应的资产。很多人不知道,这个授权是默认永久的,除非你手动撤销。

我自己的习惯是:任何新交互的DApp,先用一个只放50美元的小号钱包试水。确认没问题,再用主钱包。听起来麻烦,但比事后追资产强一万倍。

撤销授权我固定用revoke.cash,链上数据实时同步,以太坊、BSC、Polygon都支持。操作就三步:连钱包→看授权列表→点revoke。Gas费大概2到5美元,看网络拥堵情况。我基本每个月扫一次,特别是撸完空投之后。

那个丢120万的老哥,事后我帮他查授权记录,发现他钱包里躺着34个未撤销的授权,其中11个是无限额度的。这就是活靶子。

助记词这件事,别自作聪明

我见过最离谱的操作:有人把助记词拍照存在手机相册里,还开了iCloud同步。手机丢了,iCloud被撞库,钱包直接清零。

还有更“聪明”的——把助记词拆成三份,分别存在微信收藏、邮箱草稿、备忘录里。讲真,这跟直接写在推特简介里区别不大。

我自己的做法很土但有效:助记词只写在纸上,两份,分开放在两个物理位置。一份在家里的保险柜,一份在父母家的抽屉。不做任何数字化处理。拍照、打字、云笔记,全部不碰。

你可能会问,那我要异地恢复怎么办?答案是:根本不需要频繁恢复。助记词是灾备用的,不是日常用的。日常用钱包,靠的是私钥在本地设备里。

说到设备,这里有个坑。很多人把助记词导入到浏览器插件钱包(比如MetaMask),然后这台电脑还装着各种来路不明的软件。插件钱包的私钥是明文存在浏览器存储里的,一台中招的电脑等于把私钥拱手送人。

我的配置是:大额资产放硬件钱包(Ledger或Trezor),小额交互用手机端钱包(Rainbow或Trust) 。硬件钱包的助记词在设备里生成,永远不触网。签名的时候设备上确认,私钥不出芯片。

Ledger2023年出过一次Connect Kit的供应链攻击,但那是针对第三方DApp库的,硬件本身没被攻破。这也说明一个道理:硬件钱包不是万能,但比热钱包强一个数量级。

多签:单点故障的终极解法

如果你管的是团队资金或者超过10万美元的个人资产,单签钱包的风险太高了。一把私钥丢了、被偷了、或者你人出意外了,资产就锁死或者没了。

Safe(原Gnosis Safe)多签是我目前最推荐的方案。设置逻辑很简单:比如3/5多签,5个签名人里任意3个同意才能动资金。签名人可以分布在不同的硬件钱包、不同的物理位置。

具体操作:在app.safe.global创建一个Safe账户→添加5个签名人地址→设置阈值为3→部署。部署成本主网大概50到100美元Gas,L2上便宜得多,Arbitrum上几美元就够。

我帮一个DAO做过配置,5个签名人分别在三个国家,用的是不同的硬件钱包品牌。这样即使一个人的设备被攻破,资产也动不了。代价是每次转账要协调3个人签名,麻烦,但安全。

一个被低估的细节:地址投毒

2023年下半年开始,地址投毒攻击爆发式增长。攻击者往你钱包里转一笔0 USDT,发送地址跟你常用的转账地址前四位和后四位完全一样。你下次转账时从历史记录里复制,钱就进了攻击者的口袋。

CertiK的数据显示,仅2023年这类攻击造成的损失超过6000万美元。

防法很简单:转账前核对完整地址,至少核对中间6位。更好的做法是使用钱包的地址簿功能,把常用地址存进去,转账只从地址簿选。我还会在第一次给某地址转大额之前,先转一笔10美元测试,确认到账再转剩下的。

别把鸡蛋放在一个浏览器里

最后说一个低成本但极其有效的习惯:隔离。

我电脑上有三个浏览器。Chrome只用来登录交易所和常用DApp,装了MetaMask小号。Brave用来撸空投和交互不熟悉的项目,钱包里最多放200美元。Firefox什么都不装,专门用来查资料。

手机端同理。主钱包App不装任何来路不明的应用,撸空投用另一台旧手机。

这套配置听起来繁琐,但搭建一次,后面就是肌肉记忆。真正让你亏大钱的,从来不是黑客技术多高明,而是你嫌麻烦的那一下。