在 DEX 上换币,钱包为什么要先弹一个「授权」?授权和转账有什么区别?我只是在一个网站上点了一下签名,钱包里的 USDT 怎么就没了?
授权是 Web3 钱包里最常见、也最容易被忽视的操作。很多人用了一两年钱包,从来没看过自己给多少合约授过权,更不知道其中有不少是「无限授权」:只要对方的合约出了问题,或者你曾经在钓鱼网站上点过授权,钱包里的币随时可能被转走。
今天这篇教程,我会把钱包授权到底是什么、为什么危险、怎么查看和取消一次性讲清楚,再带你避开签名时最常见的几个坑。
那我们话不多说,尽快开始今天的内容。
一、授权到底是什么?
转账和授权,是两回事
- 转账:你把币从自己的地址,直接转给别人;
- 授权:你允许某个智能合约,在一定额度以内,以后可以从你的地址把币转走。
为什么需要授权?举个例子:你在 Uniswap 上用 USDT 换 ETH,真正执行兑换的是 Uniswap 的合约。合约要先从你的钱包里把 USDT 拿走,才能把 ETH 换给你。为了让它能拿,你得先「授权」它。
所以在 DEX 上第一次卖某个币,一般会有两步:
- 授权(Approve):允许合约动用你的 USDT,要付一次 Gas;
- 兑换(Swap):合约真正把 USDT 拿走、把 ETH 给你。
第二次再卖 USDT,就不用再授权了,因为之前的授权还在。

无限授权:方便,但留了一扇门
授权的时候,可以设定一个额度。但大部分 DApp 默认申请的是无限授权,额度是一个天文数字。
好处是以后不用每次都授权、省 Gas;坏处是:这扇门一直开着,而且没有上限。你钱包里现在有 100 USDT,以后存进 1 万 USDT,这个合约照样能全部拿走。
正常情况下,大项目的合约不会乱拿你的币。问题出在下面几种情况。
二、授权被盗,一般是怎么发生的?
1. 在钓鱼网站上点了授权
骗子做一个和知名项目一模一样的网站,诱导你「领取空投」「验证钱包」。你点了确认,其实是把你的 USDT 无限授权给了骗子的合约。骗子不会马上动手,可能等你钱包里的钱变多了,再一次性转走。
2. 签了一个看不懂的「签名」
现在很多代币支持 Permit 签名:不需要发链上交易、不花 Gas,只要在钱包里签一个名,就等于完成了授权。
骗子最喜欢这一招,因为:
- 弹出来的只是一个「签名请求」,看起来比授权无害;
- 签名不上链,你在授权列表里一开始看不到;
- 骗子拿着你的签名,自己去链上执行,币就被转走了。
类似的还有 Permit2、NFT 的 setApprovalForAll(把某个系列的 NFT 全部授权出去)。
3. 曾经授权过的合约被黑了
你几年前用过一个 DeFi 项目,给它的合约做过无限授权,后来就忘了。某一天这个项目的合约被黑客攻击,黑客就能用你当初给的授权,把你钱包里的币转走。这种情况你什么都没做错,只是没有及时取消授权。

三、怎么查看自己给了哪些授权?
1. Revoke.cash:最通用
Revoke.cash 是目前用得最多的授权管理工具,支持以太坊、BSC、Arbitrum、Base、Polygon 等上百条 EVM 链:
- 打开 revoke.cash,认准网址,最好从收藏夹进入;
- 点「Connect Wallet」连接钱包,或者直接在搜索框粘贴你的地址,只查看不连接也可以;
- 左上角选择要查的链;
- 列表里会显示每一笔授权:哪个代币、授权给了哪个合约、额度是多少(Unlimited 就是无限授权)、最后一次更新的时间。
2. Etherscan、BscScan:区块浏览器自带
以太坊浏览器有一个 Token Approval Checker(代币授权检查)页面,BscScan 等同系浏览器也有。输入地址就能看到授权列表,也可以直接连钱包取消。
3. 波场 TRC20:用 Tronscan
TRC20 的 USDT 一样有授权。在 Tronscan 里搜索你的地址,进入账户页面,找到「授权」相关的标签页,就能看到给哪些合约授过权。
4. 欧易 Web3 钱包:钱包里直接看
如果你用的是欧易 Web3 钱包,钱包里有「授权管理」功能,可以按链查看所有授权,直接点取消。
四、怎么取消授权?要花多少钱?
在上面任意一个工具里,找到要取消的那一条,点「Revoke」(取消),钱包会弹出一笔交易,确认后上链,授权就取消了。
几个要知道的点:
- 取消授权要付 Gas,因为它是一笔链上交易。以太坊主网贵一些,BSC、Arbitrum、Base 这些链一般只要几美分;
- 一条一条取消:每取消一个授权,就是一笔交易;
- 取消以后,以后再用这个 DApp 要重新授权,没有坏处;
- 不确定的,先取消:宁可以后多授权一次,也别留着一扇不知道通向哪里的门。
哪些授权应该优先取消?
| 授权 | 建议 |
|---|---|
| 不认识的合约、来路不明的网站 | 立刻取消 |
| 无限授权,而且是很久不用的项目 | 取消 |
| 对 USDT、USDC、ETH 等大额资产的无限授权 | 优先检查,不常用的取消 |
| 常用的大项目(Uniswap、1inch 等),还在用 | 可以保留,或者改成有限额度 |
| 已经很久没动的 NFT 全系列授权 | 取消 |

五、签名和授权之前,看清这几点
- 看清楚是哪个网站发起的:网址对不对,是不是从官方渠道进来的;
- 看清楚是授权、签名还是转账:钱包弹窗一般会写「授权」「签名」「Permit」,看不懂的不要点;
- 看授权额度:很多钱包允许你把「无限」改成具体金额,比如这次只换 100 USDT,就只授权 100;
- 看授权给谁:钱包会显示合约地址,欧易 Web3 钱包这类钱包还会提示风险合约;
- 「领空投」「验证钱包」要求签名的,一律多想一下:真正的空投很少需要你签一个看不懂的签名。
再加一层保险:分钱包
- 冷钱包或主钱包:只存币,不连任何 DApp,不做任何授权;
- 交互钱包:专门用来玩 DeFi、领空投、连新网站,里面只放这次要用的钱。
这样就算交互钱包出了问题,损失也只是里面那一点。长期存币的方法,可以看冷钱包教程。
六、已经被盗了,怎么办?
- 马上把钱包里剩下的币转到一个新钱包:新钱包要重新创建,不要导入原来的助记词;
- 在旧钱包里取消所有授权:防止以后误存进去的币又被转走;
- 记录被盗交易的交易哈希:在区块浏览器里看清币被转到了哪个地址;
- 后续怎么处理,可以看币被盗了、被骗了怎么办。
写在最后
授权就像一把放在别人手里的钥匙。平时用 DApp 的时候,能有限授权就别无限授权,看不懂的签名就别签;每隔一段时间,用 Revoke.cash 检查一下,把不用的授权都取消掉。
花几美分的 Gas,关掉几扇不知道通向哪里的门,是 Web3 里性价比最高的安全操作。
评论讨论
登录后参与讨论
登录