年初帮一个朋友排查钱包安全问题,打开他的授权记录页面,我数了一下,整整七十多条授权。时间跨度从2021年到最近,有的合约地址他完全没印象,有的授权额度是“无限”,有的项目已经停运快两年了,授权还原封不动挂在那里。
我说你知道这些授权意味着什么吗?他说不知道,以为连接完钱包、交易做完就没事了。
我跟他说,这里面随便一个恶意合约或者一个被废弃后被黑客接管的项目,就能在你不做任何操作的情况下,把你钱包里对应代币全部转走。不需要你签名,不需要你确认,因为你在几年前就已经签过字了。
他听完脸色都变了,当晚就拉着我一条一条清。今天把整个清理授权的过程写下来,希望能帮更多人堵上这个窟窿。
授权到底是什么,为什么需要清理
每次你在DApp上进行涉及代币的操作,比如在Uniswap上兑换ERC20代币、在Aave里存入USDT、在OpenSea上挂卖NFT,背后都会触发一次智能合约授权。你用自己的私钥签名,允许那个合约地址动用你钱包里某个代币的额度。
为了方便用户,绝大多数DApp默认授权额度是“无限”。意思是这个合约以后想划走你多少代币就划走多少,不需要再经过你同意。项目方本意是好的,省得你每次交易都重新授权一次,多花Gas费。但这个设计也留下了一个巨大的安全隐患。
如果合约有漏洞被黑客利用,或者项目方本身有作恶动机,你钱包里对应代币的安全就完全取决于对方的良心。更隐蔽的风险是,很多项目已经停止运营了,合约还在链上,你几年前签的无限授权还在有效期内。一旦这些被废弃的合约出了问题,你的资产照样会被划走。
清理授权,就是把你不信任的、不再使用的、额度太高的授权,一条一条收回来。
第一步:先查清楚你钱包签过哪些授权
清理之前得先知道你到底签了多少东西。查授权有几个比较靠谱的渠道。
Etherscan的Token Approval工具。 打开Etherscan官网,在顶部导航找到Tools,里面有Token Approval Checker。输入你的钱包地址,选择网络,系统会列出你在这个网络上所有已授权的代币和对应合约。每条记录会显示授权时间、授权额度、被授权的合约地址。
优点是完全官方,没有第三方风险。缺点是界面比较技术化,信息密集,新手看起来可能有点费劲。
Revoke.cash。 这是目前圈内用得最多的授权管理工具。打开网站,连接钱包,它会自动扫描你所有链上的授权记录,用比较直观的方式列出来。每条记录旁边会标注风险等级,如果合约地址被标记为可疑,会给出明显提示。
Rabby等钱包自带授权管理。 如果你用的是Rabby钱包,它内置了授权管理功能,可以在钱包里直接看到每条授权的详情,并且支持一键撤销。MetaMask目前还没有原生支持这个功能,需要借助外部工具。
查完之后你会发现一个残酷的现实:自己签过的授权远比记忆中多得多。
第二步:判断哪些授权该撤销
不是所有授权都需要撤销。每一条都清掉的话,下次用DApp又得重新授权,多付Gas费。需要分类处理。
必须立即撤销的: 已经记不清是什么项目的合约、项目已经停运或跑路、授权额度是“无限”但你很久没用过那个DApp、合约地址有风险标签。
建议撤销但可以不那么急的: 额度是无限但你还在用那个DApp,可以先撤销,等下次用的时候重新授权一个有限额度。频繁使用但授权额度太高的,可以取消后重新设定合理额度。
可以保留的: 你频繁使用且信任的DApp,比如每周都用Uniswap,可以保留授权,但额度最好设定为“本次交易金额”而不是无限。
判断的时候有一个原则:授权数量越少越好,授权额度越小越好。多一条授权就多一个风险点。
第三步:实际操作撤销

以Revoke.cash为例,流程是这样的。
打开Revoke.cash网站,点击Connect Wallet连接你的钱包。连接后页面会自动扫描,列出所有链上的授权记录。每条记录会显示代币名称、被授权的合约地址、授权额度、授权时间。
找到你要撤销的那条,点击右侧的Revoke按钮。钱包会弹出一个确认窗口,显示这次撤销操作需要消耗的Gas费。确认后等待链上打包,大概几十秒到几分钟,状态会从Pending变成Confirmed。刷新页面,那条授权记录就消失了。
如果一次撤销多条,可以逐个操作。单次撤销的Gas费在以太坊主网上可能是几U,在L2或者侧链上可能就几毛钱甚至几分钱。相比资产被盗的风险,这个成本几乎可以忽略。
如果你用的是Rabby钱包,路径更简单。打开Rabby,进入Approvals管理页面,找到要撤销的授权,点Revoke就行。钱包会自动处理后续的链上交互。
一个关键的防骗提醒
清理授权的过程中,你一定要注意一点:Revoke.cash这类工具的网址一定要自己手动输入,不要从搜索引擎广告位点进去,不要从群里的链接点进去。
假Revoke网站是重灾区。骗子做一个一模一样的页面,等你连接钱包,它弹出来的不是Revoke授权,而是一笔恶意交易或者骗你签名的请求。如果你看都不看就确认,资产就没了。
真正的Revoke操作,在你点击Revoke按钮之后,钱包弹出的应该是一笔看起来金额为0的交易,Gas费正常,没有奇怪的参数。如果你看到弹出来的是让你授权一个合约、签名一段看不懂的消息,立刻取消,关掉网站,检查网址是否正确。
养成定期清理的习惯
授权清理不是做一次就一劳永逸的。每当你尝试新的DApp、参与新的交互,就可能在不断增加授权记录。建议养成定期清理的习惯。
每隔两到三个月,打开Revoke.cash或者Etherscan,重新扫一遍授权列表。把那些已经不再使用、额度太高的授权撤销掉。每次用完一个新的DApp,如果确定短期内不会再碰,顺手就把授权撤了。
这个习惯一旦养成,你的钱包安全性会提高不止一个量级。链上世界里,资产安全从来不是靠某个神奇的工具来保障的,而是靠这些看似琐碎但切实有效的日常习惯。
免责声明: 本文仅为个人经验和链上操作知识分享,不构成任何安全或投资建议。文中提及的工具和网站均为示例,使用前请自行核实网址和安全性。

发表回复