两个钱包,一个被清空一个安然无恙:安全设置差在哪

· 钱包对比

2023年3月,我认识的两个人都被钓鱼网站骗签了授权。一个钱包里12个ETH加两枚NFT,五分钟内被转空。另一个钱包里资产差不多,一分没少。差别不在运气,在设置。

先说被清空的那位。他的操作路径很典型:点了一个空投链接,钱包弹出“Approve”请求,他看都没看就点了确认。问题在于,那个授权是“无限额度授权”(unlimited approval),意味着对方合约可以随时转走他那个代币的全部余额,不需要再经过他同意。更麻烦的是,他用的钱包没有开启任何交易模拟或授权提醒功能,弹窗上只显示了一串合约地址和“Approve”字样。

另一位做了什么?他的钱包开了交易模拟(transaction simulation),弹窗直接显示“此操作将授权对方转走你全部USDC”。他看到这行字就关了页面。同一条钓鱼链接,不同的安全设置,结果完全相反。

无限授权是最大的坑

讲真,大部分人被盗不是因为私钥泄露,是因为授权。私钥泄露的概率其实不高,但授权你每天都在做——swap、mint、质押,每一次交互都可能产生授权。

关键操作:每次授权时,把默认的“无限”改成具体数字。Uniswap、OpenSea这些主流dApp的授权弹窗里,通常有个“自定义额度”或“Edit permission”的选项,默认值是“unlimited”或“max”。手动改成你这次实际要用的数量。比如你只想卖100个USDC,就授权100,别授权2的256次方减1。

多花10秒钟,能省掉后面90%的被盗风险。

已经授权过的怎么办?去revoke.cash或者etherscan的Token Approvals页面查一遍。我上个月帮一个朋友查,他的钱包里有37个未撤销的授权,其中11个是无限额度。他自己完全不知道。建议每季度查一次,把不用的授权全部撤销,每次撤销gas费大概0.5到2美元,比被盗便宜太多。

硬件钱包不是万能药,但用对了确实管用

有人觉得买了Ledger就万事大吉。我见过用Ledger被骗签授权的人,一样丢资产。硬件钱包防的是私钥泄露,不防你主动签一笔恶意交易。

硬件钱包的正确用法是:屏幕上的地址和金额,必须逐字核对。Ledger签名时屏幕上会显示收款地址和金额,很多人嫌麻烦直接按确认。钓鱼攻击恰恰利用这一点——你以为你在签一笔小额转账,实际签的是无限授权。养成习惯:屏幕显示什么,你就核对什么,对不上就不签。

另外一个细节:助记词永远不要以任何形式数字化。不拍照、不存备忘录、不发微信、不存iCloud。我见过最离谱的案例是有人把助记词存在Google Docs里,邮箱被撞库后资产全没了。手写在纸上,放两个物理位置,这是目前被验证最可靠的方式。

地址白名单和分批转账

如果你经常给固定地址转账(比如自己的冷钱包、交易所充值地址),用钱包的地址簿功能,把常用地址存进去。下次转账直接从地址簿选,避免复制粘贴时被剪贴板劫持。剪贴板劫持木马这两年很常见,你复制一个地址,粘贴出来变成了攻击者的地址,肉眼不仔细看根本发现不了。

大额转账先发一笔小额的。转10000 USDT之前,先转10 USDT确认到账。这个习惯听起来笨,但真能救命。去年有个读者跟我说,他转5万U到交易所,地址粘错了,幸好先试了10U。10U的手续费换5万U的安全,这笔账不用算。

钱包里的“隐藏设置”值得花十分钟翻一遍

主流钱包(MetaMask、Rabby、OKX Web3)都有几个默认关闭的安全功能,建议手动打开:

交易模拟:Rabby默认开启,MetaMask需要在设置里找“Transaction simulation”打开。开启后每笔交易签名前会模拟执行结果,告诉你资产会怎么变化。

钓鱼网站检测:MetaMask有“Blockaid”功能,在设置→安全与隐私里开启。它会实时比对已知恶意网站列表,弹红色警告。别忽略这个警告,我还没见过误报。

自动锁定时间:设成5分钟或更短。手机丢了或被别人拿到,至少有个时间窗口保护。

连接网站自动断开:MetaMask设置里有“自动断开不活跃的网站连接”,开启后一段时间不交互会自动断开,减少暴露面。

说到这,你可能会问:这些设置全开了是不是就万无一失?不是。安全设置是把你的攻击面从“一扇没锁的门”变成“三扇锁了的门”,但如果你自己主动把钥匙递给骗子(比如在假网站上输入助记词),什么设置都救不了你。

最后说一个真实数字:据Scam Sniffer统计,2024年因钓鱼授权导致的损失超过4.6亿美元,受害者中超过60%的人事后表示“不知道授权意味着什么”。问题不在技术,在认知。花半小时把上面这些设置过一遍,比出事后追着链上侦探跑强得多。