什么是代币授权?为什么要定期撤销(Revoke)授权
在 DeFi 或任何 DApp 里操作代币,第一步往往是「授权」。授权给了合约动你钱的权限,用完不撤销就是隐患。讲清楚代币授权是什么、风险在哪,以及如何检查和撤销授权。
用过 DeFi、在 DEX 换过币、或和任何 DApp 交互过的人,都签过一种叫「授权(Approve)」的操作。很多人点了「确认」就过了,却没意识到:这一步可能给了对方长期动你钱包里代币的权限。这篇文章讲清楚授权是什么、风险在哪,以及怎么把不再需要的授权撤销掉。
代币授权是什么
以太坊上的代币(ERC-20,比如 USDT、USDC)有个规则:智能合约要动你的代币,得先经你授权。
举个例子:你想在某个 DEX 上把 USDT 换成 ETH。DEX 的合约需要从你钱包里「取走」USDT 才能完成兑换,于是它会先弹出一个「授权 USDT」的交易,你签名确认后,这个合约就获得了动你 USDT 的权限,之后才能执行真正的兑换。
所以授权是正常、必需的一步。问题出在授权的额度和期限。
风险:无限授权 + 一直不撤销
为了让你「一次授权、以后不用反复签」,很多 DApp 默认申请的是无限额度(Unlimited)授权——也就是允许这个合约动你钱包里全部该代币,且永久有效,直到你主动撤销。
这在合约本身安全时没问题。但风险在于:
- 合约有漏洞或本身是骗局:一旦你给了无限授权,恶意或被攻破的合约可以随时把你这种代币全部转走,不需要你再签名。
- 你早就不用那个 DApp 了:授权却还挂着,成了一直敞开的后门。
- 钓鱼授权:假网站诱导你签一个看似无害、实则是授权转走资产的交易,是常见骗局手法之一。
很多资产被盗的案例,根子不在私钥泄露,而在一个危险的授权一直没撤销。
怎么检查自己给过哪些授权
授权记录是公开写在链上的,你可以查到自己钱包给过哪些合约、什么额度的授权:
- 用 Etherscan 的 Token Approvals 工具(浏览器自带的授权查询页)
- 用专门的授权管理网站(如 Revoke.cash 等)连接钱包查看
- 一些钱包也内置了授权管理入口
你会看到一张清单:每种代币授权给了哪个合约、额度是多少。重点盯那些显示「Unlimited / 无限」且你已经不用的。
怎么撤销授权(Revoke)
撤销就是把额度改回 0,操作和普通交易一样:
- 用授权管理工具连接你的钱包
- 找到想撤销的那条授权,点「Revoke / 撤销」
- 钱包弹出交易,确认并支付一笔 Gas 费
- 交易上链后,该合约就不能再动你这种代币了
注意:撤销本身要花 Gas,所以不必强迫症式地全撤。抓大放小——优先撤销无限额度、陌生或已弃用的合约授权。
日常怎么降低授权风险
- 能选额度就别选无限:有些 DApp 允许你只授权「本次所需的量」,多签几次麻烦,但更安全
- 定期体检:每隔一段时间查一次授权清单,清掉不用的
- 大额资产单独放:常交互的钱包和存大钱的钱包分开,别让主力仓位暴露在一堆授权下(配合冷钱包更稳)
- 签名前看清楚:任何一笔要你授权的交易,都确认清楚在授权什么代币、给谁、多大额度
常见问题
Q:授权了就等于被扣钱吗? 不是。授权只是「给了权限」,本身不转走你的币,也不产生费用(Gas 除外)。但有了权限的合约可以在之后转走你的币,风险就在这里。
Q:撤销授权后还能用那个 DApp 吗? 能。只是下次交互时需要重新授权一遍,和第一次用时一样。
Q:我从没主动授权过,为什么也有授权记录? 你在 DEX 兑换、质押、跨链等操作时签的「Approve」就是授权,很多人当时没在意。也要警惕钓鱼网站诱导的授权。
Q:撤销授权能找回已经被盗的币吗? 不能。撤销只能阻止未来的盗取,已经转走的无法追回。所以要趁早、定期清理。
小结
代币授权是链上操作的必经步骤,但「无限授权 + 长期不撤销」是很多人忽视的安全隐患。养成两个习惯就能大幅降低风险:能选有限额度就别给无限,定期用授权管理工具检查并撤销不用的授权。链上没有客服帮你追回损失,主动管理授权,就是给自己的钱包上了一道随手可关的门。