﻿---
title: "钱包授权"
description: "钱包授权是链上权限，允许指定支出方为用户代币调用 transferFrom。本文说明它与签名的区别、无限授权的持续性以及核验和撤销方法。"
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 钱包授权

> 仅供教育参考，不构成投资建议；投资可能产生损失。

<a id="answer"></a>

## 直接答案

钱包授权也叫代币批准，是所有者给一个支出方地址的链上 allowance。ERC-20 的 approve(spender, amount)记录额度，支出方可在余额内调用 transferFrom；不会交出私钥或其他代币权限。批准改变链上状态，登录签名通常是链下消息。ERC-2612 permit 是可由合约提交的签名数据，无需所有者支付该笔 gas，但仍是授权。ETH 不使用 ERC-20 allowance。核对代币、支出方、金额、期限和链；连接网站不是支出许可。

<a id="mechanism"></a>

## 运作方式

1. 用户向代币合约发送 approve；0 表示无剩余额度，大值常显示为无限
2. 支出方后续调用 transferFrom；合约检查余额和 allowance，转移并通常减少额度
3. 修改 allowance 是链上转换；正值替换可能在 mempool 竞态，必要时采用确认后的先归零流程
4. ERC-2612 permit 是签名消息，检查代币、chain ID、nonce、deadline、支出方和金额，其他人可以提交
5. 只批准已核验支出方和所需金额，模拟调用并检查 receipt、事件、余额和 allowance；在正确网络用 0 撤销，已确认转账不能撤回

<a id="example"></a>

## 例子

Alice 有 100 USDC，给已核验路由批准 40。它最多花 40，不能花 ETH 或其他代币；兑换 15 后通常剩 25。无限批准还覆盖未来存款，因此应核验合约、使用有限额度，不需要时发送 approve(router, 0)。

<a id="risks"></a>

## 风险

- 恶意或升级后的支出方可使用 allowance 覆盖的全部代币
- 无限批准也覆盖未来存入资金
- 错误的链、合约、地址、小数或 calldata 会掩盖危险请求
- 待处理变更或撤销可能与 transferFrom 竞争；确认的 0 不逆转已执行转账
- permit 签名可稍后提交；断开网站不会使其失效
- 非标准、收费、rebasing、暂停或 callback 代币可能行为不同，应检查最终状态

<a id="misconceptions"></a>

## 常见误区

- **“连接钱包就授予花费权限。”真正权限来自批准、permit 或确认交易**
- **“不显示 gas 的签名安全。”relayer 可稍后提交**
- **“断开网站就撤销批准。”连接状态与链上 allowance 分开**
- **“无限额度能立即取走全部。”仍需调用、余额和兼容实现，但没有金额上限**
- **“模拟成功证明安全。”还要核对链、calldata、接收方、代码、receipt 和余额**

<a id="related"></a>

## 相关主题

- [ERC-20 代币](/zh-cn/crypto/erc20/)
- [ERC-20 批准竞态](/zh-cn/crypto/erc20-approval-race-condition/)
- [ERC-2612 的 nonce 与 deadline](/zh-cn/crypto/erc2612-permit-nonce-deadline/)
- [Permit2 签名风险](/zh-cn/crypto/permit2-signature-risk/)
- [交易模拟](/zh-cn/crypto/transaction-simulation/)

<a id="sources"></a>

## 来源

- [ERC-20: Token Standard](https://eips.ethereum.org/EIPS/eip-20) - Ethereum Improvement Proposals (查阅日期：2026-08-22)
- [ERC-2612: Permit Extension for EIP-20 Signed Approvals](https://eips.ethereum.org/EIPS/eip-2612) - Ethereum Improvement Proposals (查阅日期：2026-08-22)
- [Ethereum security and scam prevention](https://ethereum.org/security/) - Ethereum.org (查阅日期：2026-08-22)

Source: https://wiki.fcontext.com/zh-cn/crypto/wallet-approval/index.mdx
