投向未来
文字教程

钱包授权是什么?无限授权有多危险,怎么查看和取消授权,签名前要看清哪几点

更新于9分钟
钱包授权Web3 钱包Revoke

在 DEX 上换币,钱包为什么要先弹一个「授权」?授权和转账有什么区别?我只是在一个网站上点了一下签名,钱包里的 USDT 怎么就没了?

授权是 Web3 钱包里最常见、也最容易被忽视的操作。很多人用了一两年钱包,从来没看过自己给多少合约授过权,更不知道其中有不少是「无限授权」:只要对方的合约出了问题,或者你曾经在钓鱼网站上点过授权,钱包里的币随时可能被转走。

今天这篇教程,我会把钱包授权到底是什么、为什么危险、怎么查看和取消一次性讲清楚,再带你避开签名时最常见的几个坑。

那我们话不多说,尽快开始今天的内容。

一、授权到底是什么?

转账和授权,是两回事

  • 转账:你把币从自己的地址,直接转给别人;
  • 授权:你允许某个智能合约,在一定额度以内,以后可以从你的地址把币转走。

为什么需要授权?举个例子:你在 Uniswap 上用 USDT 换 ETH,真正执行兑换的是 Uniswap 的合约。合约要先从你的钱包里把 USDT 拿走,才能把 ETH 换给你。为了让它能拿,你得先「授权」它。

所以在 DEX 上第一次卖某个币,一般会有两步:

  1. 授权(Approve):允许合约动用你的 USDT,要付一次 Gas;
  2. 兑换(Swap):合约真正把 USDT 拿走、把 ETH 给你。

第二次再卖 USDT,就不用再授权了,因为之前的授权还在。

转账和授权的区别:转账是你自己把币转出去;授权是允许合约以后从你的地址转走一定额度的币

无限授权:方便,但留了一扇门

授权的时候,可以设定一个额度。但大部分 DApp 默认申请的是无限授权,额度是一个天文数字。

好处是以后不用每次都授权、省 Gas;坏处是:这扇门一直开着,而且没有上限。你钱包里现在有 100 USDT,以后存进 1 万 USDT,这个合约照样能全部拿走。

正常情况下,大项目的合约不会乱拿你的币。问题出在下面几种情况。

二、授权被盗,一般是怎么发生的?

1. 在钓鱼网站上点了授权

骗子做一个和知名项目一模一样的网站,诱导你「领取空投」「验证钱包」。你点了确认,其实是把你的 USDT 无限授权给了骗子的合约。骗子不会马上动手,可能等你钱包里的钱变多了,再一次性转走。

2. 签了一个看不懂的「签名」

现在很多代币支持 Permit 签名:不需要发链上交易、不花 Gas,只要在钱包里签一个名,就等于完成了授权。

骗子最喜欢这一招,因为:

  • 弹出来的只是一个「签名请求」,看起来比授权无害;
  • 签名不上链,你在授权列表里一开始看不到;
  • 骗子拿着你的签名,自己去链上执行,币就被转走了。

类似的还有 Permit2、NFT 的 setApprovalForAll(把某个系列的 NFT 全部授权出去)。

3. 曾经授权过的合约被黑了

你几年前用过一个 DeFi 项目,给它的合约做过无限授权,后来就忘了。某一天这个项目的合约被黑客攻击,黑客就能用你当初给的授权,把你钱包里的币转走。这种情况你什么都没做错,只是没有及时取消授权。

授权被盗的 3 种常见方式:钓鱼网站骗你授权、Permit 离线签名、曾经授权的合约被黑

三、怎么查看自己给了哪些授权?

1. Revoke.cash:最通用

Revoke.cash 是目前用得最多的授权管理工具,支持以太坊、BSC、Arbitrum、Base、Polygon 等上百条 EVM 链:

  1. 打开 revoke.cash,认准网址,最好从收藏夹进入;
  2. 点「Connect Wallet」连接钱包,或者直接在搜索框粘贴你的地址,只查看不连接也可以;
  3. 左上角选择要查的链;
  4. 列表里会显示每一笔授权:哪个代币、授权给了哪个合约、额度是多少(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 全系列授权取消

取消授权的步骤:打开 Revoke.cash 或区块浏览器,选择链,找到无限授权和不认识的合约,点 Revoke 确认交易

五、签名和授权之前,看清这几点

  1. 看清楚是哪个网站发起的:网址对不对,是不是从官方渠道进来的;
  2. 看清楚是授权、签名还是转账:钱包弹窗一般会写「授权」「签名」「Permit」,看不懂的不要点;
  3. 看授权额度:很多钱包允许你把「无限」改成具体金额,比如这次只换 100 USDT,就只授权 100;
  4. 看授权给谁:钱包会显示合约地址,欧易 Web3 钱包这类钱包还会提示风险合约;
  5. 「领空投」「验证钱包」要求签名的,一律多想一下:真正的空投很少需要你签一个看不懂的签名。

再加一层保险:分钱包

  • 冷钱包或主钱包:只存币,不连任何 DApp,不做任何授权;
  • 交互钱包:专门用来玩 DeFi、领空投、连新网站,里面只放这次要用的钱。

这样就算交互钱包出了问题,损失也只是里面那一点。长期存币的方法,可以看冷钱包教程。

六、已经被盗了,怎么办?

  1. 马上把钱包里剩下的币转到一个新钱包:新钱包要重新创建,不要导入原来的助记词;
  2. 在旧钱包里取消所有授权:防止以后误存进去的币又被转走;
  3. 记录被盗交易的交易哈希:在区块浏览器里看清币被转到了哪个地址;
  4. 后续怎么处理,可以看币被盗了、被骗了怎么办。

写在最后

授权就像一把放在别人手里的钥匙。平时用 DApp 的时候,能有限授权就别无限授权,看不懂的签名就别签;每隔一段时间,用 Revoke.cash 检查一下,把不用的授权都取消掉。

花几美分的 Gas,关掉几扇不知道通向哪里的门,是 Web3 里性价比最高的安全操作。

这篇教程对你有帮助吗?

点个赞,让更多人看到这篇教程

加密货币持仓记账

工具准备中,本轮先开放投资教程和热点资讯。

查看工具状态

评论讨论

登录后参与讨论

登录

⚠️ 免责声明:本文内容仅供参考与学习,不构成任何投资建议。投资有风险,入市须谨慎,请根据自身情况独立判断,作者不对任何投资损失承担责任。