代币授权详解:额度、无限授权与撤销
发布于 · GetBestWallet 编辑部
了解代币批准允许哪些内容以及为什么断开 DApp 的连接并不会取消其允许。
先看结论
代币授权可能允许 spender 在额度内调用代币,而无需你逐笔再次授权。核对网络、代币合约、spender 和额度;断开 DApp 连接不能清除这项权限。
代币授权允许什么操作?
许多 ERC-20 代币允许持有人为指定的 spender 合约设置授权额度(allowance)。被授权合约可以通过 transferFrom 在额度内转移代币。这与直接向收款地址发送代币不同。去中心化交易所可能需要这种权限才能完成兑换。核查时应同时确认网络、代币合约、持有人和被授权合约,不能只看应用显示的名称。
有限授权与无限授权
有限授权可以把可调用金额限制在指定额度;无限授权则可能允许合约继续调用未来转入的更多代币。实际行为取决于代币与被授权合约的实现。有些应用为了减少重复授权交易,会默认申请很大的额度。便利性需要与合约被攻击、升级权限被滥用以及误授权的风险一并考虑。
签名前检查授权请求
通过应用的官方文档核对 spender 地址,检查申请额度,并确认是否支持按本次需要设置较小额度。区块链浏览器显示合约源码已验证,不等于其逻辑或升级控制安全。钱包警告和交易模拟可以作为补充证据,但不能替代对授权对象与作用的理解。
如何撤销授权
在正确网络上使用官方钱包功能或独立核实过的授权管理工具,确认持有人、代币和 spender,再提交修改,常见做法是将额度设为零。撤销通常需要支付网络手续费,并在交易确认后才生效。断开 DApp 连接、删除浏览器权限或卸载钱包,都不会自动修改链上授权。
撤销的适用边界
撤销不能追回已经被转走的资产。私钥或助记词泄露后,即使清空所有可见授权,账户依然不安全。Permit 签名、交易平台订单、NFT 操作员权限和智能账户模块可能需要不同的处理方式。若攻击者正在自动转走资金,不要在没有排查原因的情况下反复向原钱包补充 Gas。
进一步阅读
eips.ethereum.org — EIPS / eip 20
实际操作顺序
- 确认网络、持有人账户、代币合约及 spender,并用应用官方文档核对 spender 地址。
- 检查请求额度;支持时按实际需求设置较小额度。无法理解用途的请求应拒绝签名。
- 撤销时使用独立核实的工具和正确网络,并确认交易生效。若私钥泄露,须按独立安全事件处理,修改额度不能修复泄露的密钥。