安全避坑

断开钱包连接等于取消授权吗

断开钱包连接通常只是断开网站和钱包当前会话,不等于取消已经写在链上的 Token Approval。

断开钱包连接等于取消授权吗

不等于。断开连接只是让网站不能再读取你的地址、也不能再弹出交易请求;你过去批准给合约的代币额度(Token Approval)写在链上,断开后依然有效。MetaMask 帮助中心说得很直接:断开 DApp「不会撤销你给这个 DApp 的任何代币授权」,即使断开了,它「仍可能动用你的代币」。

断开连接和撤销授权有什么区别

断开连接(Disconnect)撤销授权(Revoke)
改的是什么钱包里保存的网站连接权限代币合约里记录的「某个合约可以花你多少币」
发生在哪里钱包或浏览器本地链上,需要提交一笔交易
要不要 Gas不需要需要,按所在网络付费
能防住什么网站继续读取地址、弹出新的请求被授权的合约继续转走你的代币
防不住什么已经给出的授权你之后再次签下的新授权

可以这样记:断开连接是关掉对方的「窗口」,撤销授权是收回对方手里的「钥匙」。被盗通常不是因为窗口开着,而是钥匙还在别人手里。

为什么断开连接后,对方还能转走代币

当你在 DApp 里点「Approve」,钱包提交的是一笔调用代币合约的交易:它在链上写下「这个合约(spender)最多可以从我的地址转走多少某种代币」。之后合约转账时,查的是这条链上记录,而不是你的钱包现在是否连着那个网站。所以只要授权还在、额度没用完,合约就能在你不在线时调用它。

常见的三类授权要分开看:

  • 代币额度授权:给某个合约一定数量的某种代币,很多 DApp 默认申请「无限额度」。
  • NFT 全系列授权:一次授权某个合约处理你在整个 NFT 系列里的所有藏品,常见于交易市场。
  • 签名形式的授权:Permit、Permit2 这类授权通过链下签名给出,签名当下不会出现在链上记录里。MetaMask 提醒,这类签名可以设置有效期,对方未必马上动手。

哪些授权应该马上撤销

  1. 你不认识,或想不起来为什么授权的合约。
  2. 来自临时活动、Mint、空投领取页面的授权,活动结束后就该收回。
  3. 无限额度,而且这个项目你已经很久不用了。
  4. 你怀疑自己在钓鱼网站上点过确认或签过名。

长期使用的主流协议可以保留,但「保留」应该是你的主动决定,而不是忘了。

怎么检查并撤销授权

  1. 打开 Revoke.cash 或 Etherscan 的 Token Approvals 页面,输入或连接你的地址。只需要读取时,输入地址查询即可,不必连接钱包。
  2. 逐条网络检查。授权是按链分开记录的:你在 Base、Arbitrum 上给过的授权,不会出现在以太坊主网的列表里。
  3. 按上面的标准挑出要撤销的条目,点 Revoke,在钱包里确认交易。确认前看一眼弹窗里的合约地址和网络是否正确。
  4. 交易成功后刷新列表,确认额度已经变成 0 或该条目消失。

撤销本身是一笔链上交易,每条都要付一次 Gas。以太坊主网费用较高时,可以先处理风险最大的几条,其余的在网络空闲时集中处理;Layer 2 上的费用通常低得多。

常见问题

那断开连接还有必要做吗?

有。它能减少网站继续读取你的地址、在你不注意时弹出新请求的机会,属于隐私和操作层面的整理。只是不要把它当成撤销授权。

清除浏览器缓存、卸载钱包插件能取消授权吗?

不能。授权记录在链上,与你在哪台设备、用哪个浏览器无关。换手机、重装钱包后,旧授权依然有效。

代币已经被转走了,撤销授权还有用吗?

撤销不能把已经转走的资产要回来,但能阻止同一个授权继续转走剩下的币。如果你怀疑助记词或私钥已经泄露,撤销授权也不够,应该尽快把剩余资产转到一个新生成的钱包,参考钱包被盗了怎么办。

撤销授权会不会影响我在协议里的资产?

撤销只是收回合约以后再转你钱包里代币的权限,不会把你已经存进协议的资产取出来,也不会让它消失。下次再用这个协议时,它会重新请求授权。

相关阅读

参考资料