什么是加密货币中的代币授权?额度如何运作,何时应撤销? | KTX Crypto Exchange

KTX
KTX
  • 更新
KTX Learn 封面:以支出限额和访问控制说明代币授权

一笔兑换可以已经完成,但背后的授权仍然有效。代币授权允许指定地址在你授予的权限范围内,从你的钱包中转移代币。关闭应用,并不一定会移除这项权限。

本文主要讨论以太坊及其他 EVM 网络上的 ERC-20 代币。其他代币标准和区块链采用不同的权限机制。实际操作时,应在授权前弄清支出方、金额和权限范围,再移除不再需要的授权。

授权额度是与特定支出方绑定的支出上限

在常见的 ERC-20 流程中,approve 用于设置授权额度,allowance 用于查询剩余额度,transferFrom 则允许获授权的支出方按照代币合约规则转移代币。授权交易通常只是建立权限,应用之后的操作才会使用这项权限。

需要确认四项信息:网络、代币合约、所有者地址和支出方地址。网站名称并不等于权限本身。支出方可以是应用合约,也可以是其他地址,其代码决定了这项权限如何被使用。

假设钱包持有 200 枚代币,你给某个支出方设置了 100 枚代币的授权额度。在代币实际转移前,余额仍为 200。如果支出方随后按照标准的有限额度转移了 40 枚,你的余额变为 160,剩余授权额度变为 60。这是两个不同的数字。

在适用的合约规则范围内,支出方可能无需再次弹出授权提示,就能使用剩余权限。新的授权通常会用你指定的金额替换现有额度,而不是自动在旧额度上累加。

假设的有限 ERC-20 授权额度:授权 100 枚,使用 40 枚后剩余 60 枚,再通过已确认的撤销交易将该额度设为零
授权额度记录允许支出的数量,钱包余额记录实际持有的代币数量。

无限授权可能影响之后转入的代币

应用可能请求一个很大的授权额度,让你不必为每笔交易重新授权。这可以减少重复操作和授权成本,但也意味着更多代币可能处于支出方权限的影响范围内。

一些常见实现将最大整数额度视为无限授权,并且不会在代币被使用时扣减该额度。因此,不要以为每次使用都会逐步消耗无限授权。

即使代币余额已经归零,授权额度也可能继续存在。如果之后又在同一网络、同一地址收到相同代币,原有权限可能再次发挥作用。钱包界面显示没有余额,并不能证明旧授权已经消失。

选择较小额度,可以减少通过这项权限能够支出的代币数量,但不能证明应用值得信任,也不能证明拟执行的交易合理。

撤销你实际授予的那项权限

停止使用应用、无法识别支出方、发现不必要的大额授权,或得知相关安全事件时,都适合检查授权额度。目的是移除一条不再需要的支出途径。

  1. 检查账户和网络。一条链上的权限,与另一条链上的权限彼此独立。
  2. 确认代币和支出方。使用可信的钱包权限页面或对应的区块链浏览器。仅凭熟悉的名称标签,无法验证地址。
  3. 阅读拟进行的变更。对于标准 ERC-20 授权额度,撤销通常需要发送一笔链上交易,将该支出方的额度设为零。确认代币、支出方和新额度。
  4. 核实交易确认。链上撤销会产生网络 Gas 费用,即使费用由服务代付也不例外。检查交易是否成功,以及相关额度是否已按预期变更。

尚未确认的撤销交易还没有改变链上状态,支出方可能在它确认之前采取行动。撤销完成后,会限制这项额度未来的使用,但不会追回已经转走的代币。

断开网站连接,改变的是钱包与该网站的连接关系。已有链上授权需要另行变更。如果私钥或恢复词已经泄露,授权只是事件的一部分:撤销不会消除其他人使用这些密钥签名的能力。

如果你在使用个人钱包的同时,也通过 KTX 进行交易,应区分钱包权限与平台账户安全。KTX 的托管与非托管钱包指南解释了谁控制交易授权和恢复流程。关于恢复资料的保护,可参阅 KTX 的助记词备份指南;绝不要向声称可以撤销授权的网站提供恢复词。

签名授权还需要再检查一层

钱包可能要求你签名,而不是立即发送授权交易。签名同样可能产生实际权限。例如,ERC-2612 permit 允许其他人提交你签署的授权,以建立授权额度。

permit 的截止时间限制的是这份签名何时可以被提交,并不自动给由此产生的普通 ERC-20 授权额度设置到期时间。将额度设为零,也不一定会使较早签署但尚未使用的 permit 签名失效;它的 nonce(一次性序号)和有效性规则需要另行检查。

Permit2 增加了一层权限:先有代币对 Permit2 合约的授权,再有面向特定应用的权限。它基于额度的权限与一次性签名转账,在金额、到期时间和 nonce 方面有不同规则。

需要检查每个适用层级,以及尚未使用的已签署授权。读取当前链上额度的检查工具,未必能显示所有已经签署但尚未提交的签名。即使额度页面看起来令人放心,也无法覆盖它还看不到的权限。

常见问题

发送原生 ETH 需要 ERC-20 授权吗?

普通的原生 ETH 转账不使用 ERC-20 授权额度。封装 ETH 属于代币,可以使用这套机制。账户层面的权限是另一个问题。

一次无限授权会覆盖钱包中的所有资产吗?

传统 ERC-20 授权针对特定代币和支出方,不会自动覆盖每一种代币或 NFT。不过,一次签名请求可以包含多项权限,因此需要检查完整范围。

为什么钱包可能要求我先将额度归零,再进行修改?

有些代币实现要求这样操作;替换非零额度也可能产生交易排序风险。应遵循支持的操作流程,但归零无法撤销已经发生的支出。

硬件钱包能阻止有害授权吗?

硬件钱包有助于保护签名密钥,但你仍可能使用这些密钥授予危险权限。应检查交易详情和支出方,而不是仅依赖设备本身。

NFT 授权与代币额度的运作方式一样吗?

ERC-721 支持对单个 NFT 的授权,也支持覆盖该 NFT 合约的操作员授权。这与 ERC-20 的数量额度不同。撤销前应确认标准与权限范围。

本文仅供一般教育用途,不构成个性化安全或投资建议。代币实现与钱包界面各不相同。绝不要透露私钥或恢复词。

这篇文章有帮助吗?

0 人中有 0 人觉得有帮助

还有其它问题?提交请求