两个钱包,一个被掏空一个安然无恙:我复盘了37个被盗案例后总结的安全设置清单

· 币种支持

去年11月,我帮朋友处理了一起钱包被盗事件。他的MetaMask里放着12个ETH和两张蓝筹NFT,总价值约4.2万美元。私钥没泄露,助记词没拍照,设备也没中病毒。攻击者通过一笔他“主动签名”的Permit交易,在8秒内转走了所有资产。

同一个月,另一个朋友在Opensea点了一个钓鱼链接。他的钱包里有18万美元资产,但攻击者只拿到了价值300美元的垃圾币。原因很简单——他把资产分在了三个钱包里,日常交互的钱包只放零花钱。

这两个案例放在一起,差别不在运气,在设置。

那个被掏空的钱包,到底输在哪

我后来仔细看了被盗交易的哈希。攻击者让他签的是一个Permit授权,不是Approve。区别在于:Approve需要一次链上交易确认,钱包会弹窗显示Gas费;Permit是离线签名,钱包只显示“签名请求”,很多人以为只是登录验证,直接点了确认。

MetaMask默认对Permit的提示非常模糊。你看到的是“签名消息”,不是“授权转账”。等签完,攻击者拿着你的签名去链上执行transferFrom,不需要你再确认任何东西。

这个坑我后来在至少9个被盗案例里看到同样的模式。解决方式不复杂:在MetaMask设置里打开“显示高级交易数据”,或者用Rabby钱包——Rabby会在签名前模拟执行结果,直接告诉你“这笔签名会导致你的USDC被转走”。

我的三层钱包结构

说实话,把所有资产放在一个钱包里,是最大的安全隐患。我现在用三个钱包,分工明确:

冷钱包(Ledger + MetaMask硬件连接) :存放80%以上的长期资产。私钥永不触网。每月只连接一次做余额检查,平时断开。注意,Ledger的助记词在初始化时抄在纸上,不要存任何电子设备。我见过有人把助记词拍照存在iCloud里,结果Apple ID被撞库,钱包归零。

交互钱包(Rabby) :只放够用两周的Gas费和交互资金,通常不超过500美元等值。所有空投领取、新协议测试、NFT Mint都在这里操作。Rabby的链上模拟功能会拦截大部分恶意签名。这个钱包的私钥可以存在手机里,因为里面的钱不值得黑客花力气。

中间钱包(MetaMask) :放中等额度资产,比如几千到一两万美元。只和已验证的智能合约交互,不点任何空投链接。每次交互前,我会在Rabby的revoke.cash页面检查一遍授权。

三层之间的转账用不同路径。冷钱包只往中间钱包转,中间钱包只往交互钱包转。反向不转。这样即使交互钱包被钓鱼,攻击者拿不到中间钱包的授权关系。

授权管理:大多数人忽略的定时炸弹

讲真,revoke.cash这个工具我每周用一次。你可以在上面看到每个钱包对所有合约的授权额度。我见过一个地址,授权了47个合约,其中23个是无限额度。这意味着这23个合约中的任何一个被攻破,或者本身就是恶意的,你的对应代币随时可以被转走。

操作步骤很直接:连接钱包,看列表,把不用的授权撤销。每次撤销是一笔链上交易,Gas费大概2-5美元。听起来麻烦,但比被盗后追回的成本低太多。

有个细节:撤销Approve之后,有些协议需要重新授权才能用。所以我在撤销前会看一眼过去30天有没有交互记录。没有的,直接撤。

签名前的三秒检查

我现在养成一个习惯:任何签名请求弹出来,先看三样东西。

第一,看请求来源的域名。opensea.io和opensea-nft.xyz是两回事。钓鱼网站通常用相似域名,多一个连字符或者换个后缀。我手机上存了一个备忘录,记录常用DApp的正确域名,签名前对照一眼。

第二,看签名类型。eth_sign是最危险的,它允许对任意数据签名,MetaMask现在默认禁用,但有些老钱包还开着。personal_sign相对安全,用于登录验证。eth_signTypedData_v4要看具体内容,Permit授权就藏在这里。

第三,看模拟结果。Rabby钱包会自动模拟,MetaMask需要手动开启“交易模拟”功能。如果模拟结果显示你的资产会减少,而你不确定为什么,直接拒绝。

一个容易被忽略的设置:交易确认时间

MetaMask默认的交易确认时间很短,弹窗出来几秒内不点就消失。这个设计对新手极不友好——匆忙中容易点错。

在设置里把“交易确认超时”调到最长(通常是30分钟)。这样你有足够时间检查每一笔交易。另外,关掉“自动检测代币”功能,防止攻击者往你钱包里空投假代币,诱导你去不明网站兑换。

还有一个小设置:在MetaMask的“安全与隐私”里,打开“批量账户发现”和“钓鱼检测”。这两个功能默认是开的,但有些人为了省资源关掉了,得不偿失。

最后说一个真实教训

今年1月,一个读者私信我,说他的Trust Wallet被盗了3个BNB。我问他助记词存哪了,他说“写在微信收藏里”。微信收藏同步到云端,他的微信密码又和某个交易所密码相同。交易所被撞库,微信跟着沦陷,助记词直接暴露。

助记词只存在两个地方:纸上,或者你的脑子里。不要截图,不要存备忘录,不要发给自己。如果是大额资产,用金属助记词板刻下来,防火防水。几十美元的成本,换的是六位数资产的安全。

钱包安全没有捷径。每一层设置都是增加攻击者的成本。攻击者也是算账的——你的防护成本越高,他越可能去找下一个目标。