[{"data":1,"prerenderedAt":38},["ShallowReactive",2],{"blog-content-zh-how-to-revoke-token-approvals":3},{"slug":4,"title":5,"excerpt":6,"description":7,"bodyHtml":8,"faqItems":9,"howToSteps":22},"how-to-revoke-token-approvals","如何撤销代币授权（以及什么时候应该撤销）","你批准的每一次兑换和存款都会在链上留下一条长期有效的授权记录，除非你主动撤销，否则它会一直生效。撤销就是一笔你自己签名的普通交易，可以在 WATS 或任何持有该地址的非托管钱包里完成。本文教你如何找出旧授权、撤销高风险授权，并让授权列表保持精简。","如何撤销代币授权：找出你的地址授权过的每一个 spender，取消其中高风险的那些，并在 WATS 中签署每一笔撤销交易。哪五种情况意味着要立刻撤销、撤销要花多少钱，以及撤销无法挽回的事情。","\u003Cblockquote>\u003Cp>要撤销一条代币授权，就发送一笔把该 spender 的额度设为零的交易：在信誉良好的授权管理面板或区块浏览器中查询你的地址，按额度大小以及你实际持有该代币的数量给 spender 排序，为每个你想切断的 spender 确认一笔小额撤销交易，之后再检查列表是否显示为零。每条链都要单独做一遍，因为以太坊上的授权与 Arbitrum、Base 或 Polygon 上的授权是完全独立的记录。如果你授权过的协议被攻击或已被弃置、如果你为一次性的兑换授予了无限额度，或者你已不再信任当初索要授权的那个网站，就立刻撤销。撤销只能阻止未来的花费：它无法追回已经被转走的代币，对泄露的助记词毫无作用，也不能取消你已经签过的 EIP-2612 Permit——那份签名在截止时间到期或其 nonce 被消耗之前一直有效。撤销交易本身由你自己的钱包签名，而 WATS 在以太坊、Arbitrum、Optimism、Base、Polygon、BNB Chain、Solana 和 TON 上都是完全非托管的，所以只有你能签署它；在 EVM 链上，这笔交易的手续费还可以用 ATS 支付，而不必使用该网络的原生 gas 代币。\u003C\u002Fp>\u003C\u002Fblockquote>\u003Ch2>代币授权到底留下了什么\u003C\u002Fh2>\u003Cp>当你在 DEX 上兑换代币或向借贷协议存款时，应用通常会要求你\u003Cem>授权\u003C\u002Fem>（approve）它的合约从你的地址花费某个代币。这个授权并不是交易本身的一部分，而是写入该代币合约中的一条独立记录，表示某个特定的 spender 可以代表你转移最多某个数量的该代币。交易完成了，但这条记录不会消失。除非你设置了严格的额度，它会无限期地留在那里，而且很多应用为了方便，至今仍会请求实际上无上限的授权额度。如果你对这套机制还不熟悉，\u003Ca href=\"\u002Fblog\u002Ftoken-approvals-and-permit-explained\">我们关于授权与 Permit 签名的指南\u003C\u002Fa>中有更深入的讲解，解释了 allowance 与免 gas 的 Permit 消息有何不同。\u003C\u002Fp>\u003Ch2>为什么旧授权是真正的风险，而不只是杂物\u003C\u002Fh2>\u003Cp>一条授权额度的可信度，完全取决于持有它的那个合约。如果你多年前授权过的某个协议后来被攻击、被恶意升级，或者管理员密钥被盗，攻击者就可以对所有仍持有有效授权的地址调用 \u003Cem>transferFrom\u003C\u002Fem>，完全不需要你的签名或私钥。多起知名安全事件正是通过这种方式，把几个月都没碰过受影响应用的用户资产席卷一空。这种风险是不对称的：授权在很久以前只花了你一次点击，但只要它存在，就一直在赋予对方花费你资产的权力。基于签名的授权还多了一层：你签过的 Permit 可以在之后任何时候被提交，而在被提交之前，链上根本还没有可撤销的授权。撤销能关上已经存在于链上的授权之门；至于尚未使用的 Permit 签名，则需要下文介绍的另一种处理方式。\u003C\u002Fp>\u003Ch2>什么时候应该撤销：五个明确的信号\u003C\u002Fh2>\u003Cp>你不需要每周清空所有授权。当出现以下任一情况时再撤销即可。\u003Cstrong>第一：\u003C\u002Fstrong>协议被黑客攻击、被利用漏洞，或在可疑情况下被暂停，即使你的资金暂时没有受损。\u003Cstrong>第二：\u003C\u002Fstrong>你为一次性的操作授予了无限额度，例如在一个以后不会再用的应用上做了一次兑换。\u003Cstrong>第三：\u003C\u002Fstrong>你和某个你已不再信任的东西交互过，比如后来看起来很可疑的铸造网站或空投领取页面。\u003Cstrong>第四：\u003C\u002Fstrong>项目已被弃置，因为无人维护但仍有管理员密钥的合约是容易得手的目标。\u003Cstrong>第五：\u003C\u002Fstrong>该授权涉及你现在长期持有的大额余额，此时哪怕很小的被盗概率，也不值得让这份长期敞口继续存在。\u003C\u002Fp>\u003Ch2>分步操作：如何查找并撤销授权\u003C\u002Fh2>\u003Cp>第一步，列出现有授权。信誉良好的授权管理面板和一些区块浏览器，在你输入或连接地址后，可以按代币、按链展示你的地址授权过的每一个 spender。按地址进行只读查询是最安全的方式；如果确实要连接钱包，请像\u003Ca href=\"\u002Fblog\u002Fhow-to-connect-wallet-to-dapp\">我们关于连接钱包到 dapp 的指南\u003C\u002Fa>中描述的那样谨慎对待。第二步，按授权额度大小以及你实际持有该代币的数量排序，因为在你持仓较多的代币上留着无限授权，是你的头号优先事项。第三步，执行撤销：撤销其实就是一笔新的授权交易，把该 spender 的额度设为零，所以你取消的每一条授权都要确认一笔小额交易。第四步，事后确认面板上该额度已显示为零。每条链都要重复一遍，因为以太坊、L2 和其他网络上的授权是完全独立的记录。\u003C\u002Fp>\u003Ch2>撤销的成本，以及它无法挽回的事情\u003C\u002Fh2>\u003Cp>每次撤销都是一笔链上交易，需要支付该网络的正常手续费，在 L2 上通常很低，而在以太坊主网繁忙时段会更高。批量工具是存在的，但每条授权仍然需要各自的一次状态变更。要清楚它的局限：撤销只能阻止\u003Cem>未来\u003C\u002Fem>的花费，无法追回已经被转走的代币。它对助记词泄露也无能为力，因为拿到你私钥的攻击者根本不需要任何授权。已签名但尚未使用的 Permit 更棘手。对于标准的 EIP-2612 permit，持有该签名的人可以在截止时间之前的任何时候提交它，无论你之前把额度清零与否，它都会把额度设为签名中的数值，并且往往在同一笔交易里就把代币转走。预先清零在这里毫无作用：这个签名只有在截止时间过期，或者其 nonce 被消耗、被作废时才会失效——有时你可以通过签署并提交一份消耗同一个 nonce 的新 permit 来强制做到这一点；而把代币转到另一个地址并不能让签名失效，只是让它无物可取而已。Permit2 类流程是例外，因为撤销你授予 Permit2 合约的代币额度，确实能切断它名下所有未使用的签名。\u003C\u002Fp>\u003Ch2>让授权列表保持精简的习惯\u003C\u002Fh2>\u003Cp>预防比清理便宜。当应用允许你编辑授权数量时，把它设成大致等于本次交易所需的数量，而不是无限。优先选择使用严格限额、有时效或按笔授权的应用。每当你彻底不再使用某个协议时，趁记忆还新鲜，顺手做一次授权检查。把长期持仓放在一个几乎不做任何签名的地址上，用另一个独立的热钱包地址去做各种尝试，这种模式在\u003Ca href=\"\u002Fblog\u002Fcrypto-wallet-security-best-practices\">我们的钱包安全最佳实践\u003C\u002Fa>中有详细介绍。截至 2026 年，新的标准正在推动可过期、细粒度的授权，但老式的无限额度仍随处可见，所以这个习惯依然重要。\u003C\u002Fp>\u003Ch2>WATS 在授权卫生中的位置\u003C\u002Fh2>\u003Cp>清理授权是一连串小额交易，而摩擦几乎总是来自 gas：要在某条链上把额度清零，你的钱包里通常得备着那条链的原生代币——这正是很多人任由旧授权留在那三四条只用过一次的网络上的原因。这里要把分工说清楚。WATS 本身并没有内置的授权撤销工具：查找是在授权管理面板或区块浏览器里完成的，签名则是在持有该地址的那个钱包里完成的。WATS 负责的是后半段。它在以太坊、Arbitrum、Optimism、Base、Polygon、BNB Chain、Solana 和 TON 上都是完全非托管的，所以私钥由你自己持有，WATS 从不持有任何密钥，撤销始终是只有你才能签名的操作——可以在 \u003Ca href=\"\u002Fchrome-extension\">Chrome 扩展\u003C\u002Fa>、移动应用或 \u003Ca href=\"\u002Fhot-wallet\">Hot Wallet\u003C\u002Fa> 中完成。这些交易的网络手续费可以用 ATS 支付，而不必使用每条链各自的原生 gas 代币：在 EVM 链上通过 ERC-4337 账户抽象实现，而 ATS 本身作为 LayerZero OFT 全链流通。这并不是打折，因为手续费仍然跟随实时的网络成本，变的只是用哪种代币支付；但它意味着你只需保持一个余额有钱，而不是每条链一个，这就消除了人们拖延撤销最常见的借口。收取的 ATS 会被销毁，让供应量从 1 亿枚向 3,000 万枚的下限靠拢。\u003C\u002Fp>\u003Ch2>总结\u003C\u002Fh2>\u003Cp>代币授权是一份远比当初那笔交易活得更久的长期许可，而取消它只需要一笔交易：列出你地址上的所有 spender，优先处理你持仓较大的代币上的无限额度，以及一切授予过被攻击或已被弃置协议的授权，把这些额度设为零，然后确认面板上的结果一致。同时也要看清它的边界：撤销无法追回已经转走的代币，救不了泄露的助记词，也无法取消你已经签署的 EIP-2612 Permit。具体行动是本周就把这次检查做完：在一个可靠的授权检查工具中查出你的地址，然后在 WATS 中签署这些撤销交易——在全部八条支持的链上私钥都由你持有，而且手续费可以用 ATS 支付，不必为清单上每一条 EVM 网络分别去凑一份原生 gas 代币。\u003C\u002Fp>",[10,13,16,19],{"q":11,"a":12},"撤销代币授权能把我的代币拿回来吗？","不能。撤销只是把某个 spender 的授权额度设为零，让它以后无法再转移你的代币。已经被转走的资产无法找回，撤销也不能逆转过去的交易。",{"q":14,"a":15},"撤销一条授权要花多少钱？","撤销就是一笔普通的链上交易，你每取消一条授权就支付一次该网络的标准手续费。在大多数 L2 上费用很低；在以太坊主网拥堵时费用会更高。",{"q":17,"a":18},"我需要在每条链上分别撤销授权吗？","需要。授权是每个网络上每个代币合约内部的记录，所以以太坊上的授权与 L2 或其他链上的授权完全独立。要逐条链检查并撤销。如果你使用 WATS，这意味着要在你曾经连接过 dapp 的每一条 EVM 链上分别走一遍清单：以太坊、Arbitrum、Optimism、Base、Polygon 和 BNB Chain。Solana 的机制不同，它是在代币账户上设置一个 delegate，你用一条 revoke 指令即可清除；而 TON 的 jetton 根本没有长期存在的 spender 授权额度需要清理。",{"q":20,"a":21},"我可以在 WATS 钱包里撤销代币授权吗？","可以，因为撤销只是一笔用该地址的私钥签名的普通交易，而 WATS 是一个在以太坊、Arbitrum、Optimism、Base、Polygon、BNB Chain、Solana 和 TON 上完全非托管的钱包。把分工说准确一点：WATS 本身不包含授权管理面板，所以你要在可靠的授权检查工具或区块浏览器中找出仍然有效的授权额度，然后在 WATS 的 Chrome 扩展、移动应用或 Hot Wallet 中签署那笔把额度清零的交易。私钥由你持有，WATS 从不持有任何密钥，所以没有其他人能代你撤销。在 EVM 链上，每一笔撤销的手续费都可以用 ATS 支付，而不必使用该链的原生 gas 代币，因此一份 ATS 余额就能覆盖整轮清理，不用在你需要逐一走访的每条网络上各留一份原生 gas 余额。",[23,26,29,32,35],{"title":24,"body":25},"列出你现有的授权","使用信誉良好的授权管理面板或区块浏览器查询你的地址，按代币、按链查看你授权过的每一个 spender。按地址进行只读查询是最安全的做法。",{"title":27,"body":28},"优先处理高风险授权","按授权额度大小和你持有每种代币的数量排序。持仓较大的代币上的无限授权，以及授予已被攻击或已被弃置协议的授权，要最先处理。",{"title":30,"body":31},"发送撤销交易","对每一个你想切断的 spender，确认撤销操作，这会提交一笔把该额度设为零的交易。每次撤销支付一次正常的网络手续费。",{"title":33,"body":34},"确认额度已归零","刷新面板，确认该 spender 的额度已显示为零。如果涉及尚未使用的已签名 Permit，清零并没有用：只能等它的截止时间过期、在支持的情况下消耗或作废其 nonce，或者把代币转移出去，让它无物可取。对于 Permit2，则撤销你授予 Permit2 合约的代币额度，这确实能切断它名下未使用的签名。",{"title":36,"body":37},"在你使用的每条链上重复","授权是每个网络各自独立的记录。在以太坊、每条 L2 以及任何你与 dapp 交互过的链上，都执行同样的检查。",1786059402392]