同一个钓鱼网站,为什么他丢了12个ETH,我只丢了Gas费
去年11月,我收到一条Discord私信,说有个新NFT项目白名单可以领。链接点进去,页面和官网几乎一模一样。我当时用的是一个小号钱包,里面只有0.05 ETH。连上、签名、什么都没发生。两分钟后,0.05 ETH没了。
同一个链接,我转发给朋友老K。他用主钱包连了,签了同一个“免费领取”的请求。12个ETH,大概2.3万美金,秒没。
差别不在运气。在于他签的那笔交易,授权了攻击者转走他全部ETH的权限。我签的那笔,只授权了Gas费上限。
授权才是真正的后门
很多人以为钱包被盗是因为私钥泄露。实际情况是,超过70%的资产损失来自恶意授权。你连上DApp,点“确认”,钱包弹出一串十六进制数据。大部分人看都不看就签了。
攻击者要的就是这个。
一个典型的恶意授权长这样:你以为是领取NFT,实际签名内容是把你的USDC无限额度授权给一个陌生地址。一旦签了,对方随时可以把你的USDC全部转走,不需要你再确认任何东西。
我后来养成一个习惯:每次签名前,把钱包弹出的数据复制到revoke.cash的解析器里看一眼。这个网站会告诉你这笔交易到底在授权什么。花30秒,能省几万块。
老K踩的三个坑
老K的事我复盘过。他犯了三个错,每一个单独拎出来都不致命,凑在一起就是灾难。
第一个坑:主钱包日常用。 他把80%的资产放在一个钱包里,这个钱包还天天连各种新项目。正确做法是分三层:冷钱包存大额,热钱包只放交互用的Gas费,另设一个“脏钱包”专门点陌生链接。
第二个坑:无限授权。 很多DApp默认请求无限额度授权,方便你下次不用再签。老K从来不改这个默认值。我现在的习惯是,每次授权手动把额度改成刚好够用的数字。比如交互需要100 USDC,我就授权100,不多给一个零。
第三个坑:签完不管。 老K签完那个恶意授权后,三个月没动过那个钱包。攻击者也没急着转,等ETH涨到3800美金才动手。定期检查授权记录,用revoke.cash或etherscan的Token Approvals页面,把不用的授权全部撤销。我每个月1号做这件事,花5分钟。
硬件钱包不是万能药
讲真,硬件钱包能防私钥泄露,但防不了恶意签名。你连上钓鱼网站,硬件钱包屏幕上显示的也是那串十六进制数据。你按了确认,授权照样生效。
我见过最离谱的案例:一个人用Ledger,在钓鱼网站签了一笔“Permit”签名。这种签名不上链,不花Gas费,但授权效果和链上交易一样。硬件钱包弹窗显示“签名消息”,他以为是登录验证,按了确认。第二天钱包里的USDC全没了。
用硬件钱包的人更容易放松警惕。因为觉得“我私钥在硬件里,安全”。这个心理恰恰是攻击者利用的。
我的日常操作清单
说几个我每天都在用的具体设置。
钱包分层。 我有四个钱包。一个冷钱包,只进不出,存大额。一个热钱包,放3-5个月的Gas费,只连Uniswap、Aave这种老牌协议。一个“试验钱包”,里面永远不超过200美金,专门点新项目。还有一个“垃圾钱包”,用来领空投、点陌生链接,里面只放够一次交互的Gas。
授权限额。 每次DApp请求授权,我手动改额度。Uniswap上授权USDC,默认是无限,我改成500。虽然下次交互还要再签一次,但安全边际高很多。
定期撤销。 每个月1号,打开revoke.cash,连上所有钱包,把不活跃的授权全部撤销。撤销一笔授权大概花3-5美金Gas,比被盗划算太多。
签名前解析。 钱包弹出的任何签名请求,先看是不是eth_sign。如果是,直接拒绝。这个签名方式可以签任何哈希,最危险。正常的DApp用personal_sign或eth_signTypedData。看不懂的数据,复制到revoke.cash的Signature Checker里解析。
浏览器隔离。 用一个单独的浏览器(比如Brave)只装MetaMask,不装其他插件。日常浏览用另一个浏览器。插件冲突和恶意插件是另一个大坑。
一个真实的钓鱼案例
今年3月,一个叫“Blur Season 2”的钓鱼网站出现在Google搜索广告里。页面和Blur官网一模一样,连URL都只差一个字母。一个用户连上钱包,签了一笔“bid”交易。实际签名内容是授权攻击者转走他钱包里所有的BAYC。等他发现,那只猴子已经挂在OpenSea上被买了。
这个案例里,攻击者花了大概2000美金买Google广告位。钓到一只猴子,利润超过5万美金。ROI超过25倍。
钓鱼攻击的投入产出比太高了。所以你看到的钓鱼网站会越来越多,越来越像真的。别指望靠眼睛分辨真假,靠的是操作习惯。
最后说一个细节
钱包的“自动锁定”功能,很多人设的是“永不”。我设的是1分钟。每次解锁要输密码,确实烦。但万一电脑被物理接触,或者浏览器被远程控制,这1分钟能救命。
还有,别把助记词截图存手机。别存iCloud。别发微信文件传输助手。我见过太多人把助记词存在备忘录里,手机一丢,钱包全空。
硬件钱包的助记词,用金属助记词板刻下来,放保险箱。热钱包的助记词,手写两张纸,分两个地方放。别嫌麻烦。丢币只需要一次疏忽,防丢需要每一次都做对。