WETH 授权是对 WETH9 合约调用 approve(),让另一个地址——DEX 路由器、借贷池、NFT 市场——用 transferFrom() 转移你设定金额的 WETH。包装和解包无需授权;第三方合约对你的 WETH 进行的任何操作都需要。在 2026 年 10 月 2 日,Ethereum 上发送给 WETH9 的最后 100 笔交易中,24 笔是授权,其中 20 笔使用约 46,000 gas,因为它们从零创建了一个新的额度(Etherscan)。规则是:授权你即将使用的合约,授权你即将使用的金额,撤销你不再使用的内容。

关键要点
  • 授权用于第三方: deposit()、withdraw() 和 transfer() 作用于自己的余额,无需授权;DEX 路由器、池或市场的 transferFrom() 需要。
  • 交易份额: 在 2026 年 10 月 2 日,块 26,105,189-26,105,250 期间发送给 WETH9 的 100 笔交易中,授权占 24 笔,兑换 46 笔,解包 26 笔(Etherscan)。
  • 首次授权花费两倍: 那 24 笔中的 20 笔用 46,000-46,400 gas 创建新的额度,而改变现有额度需要 24,000-29,000 gas——46,000 / 24,000 = 1.9 倍。
  • 无限意味着无限: WETH9 将 2^256-1 的额度视为无限,永不减少——约 1.16 × 10^59 WETH,而在区块 26,105,247(Ethereum RPC)存在的 WETH 仅 2,031,131 枚。

WETH 授权是什么

WETH 授权是 WETH9 合约授权表中的一条记录:所有者、支出者、金额。approve(spender, amount) 写入它并发出 Approval 事件;支出者调用的 transferFrom(owner, recipient, amount) 检查该记录,转移 WETH,并将额度减少转移的金额。授权本身不转移任何 WETH 也不锁定它;WETH 保留在你的地址上,直到支出者使用它的额度。

ERC-20 代币这样工作是因为合约无法提取从未被授权的代币,WETH 正是为了让 ETH 参与这个流程而存在(WETH 是什么)。原生 ETH 没有授权表:它被发送,从不被提取,这就是为什么 DeFi 合约要求 WETH 而不是 ETH(为什么 WETH 存在)。

何时需要授权 WETH,何时不需要

问题总是:谁转移 WETH——你,还是代表你的合约。

操作 需要授权 原因
将 ETH 包装为 WETH(deposit) 否 WETH9 合约向调用者铸造
将 WETH 解包为 ETH(withdraw) 否 调用者销毁自己的余额
将 WETH 发送到地址(transfer) 否 所有者转移自己的余额
在 DEX 上兑换 WETH 是,授权给路由器 路由器用 transferFrom() 提取 WETH
向借贷市场供应 WETH 是,授权给池 池提取存款
在 NFT 市场用 WETH 出价 是,授权给市场合约 出价被接受时,销售通过从出价者提取 WETH 来结算
通过桥接合约桥接 WETH 是,授权给桥接或网关 桥接在发送前提取 WETH

前三行是如何解包 WETH 和 ETH 转 WETH 描述的:它们中不出现授权步骤因为不存在。在包装或解包前请求授权的界面是通过另一个合约路由,而不是直接调用 WETH9。

精确额度与无限额度

额度可以是下一个操作的精确金额,也可以是合约接受的最大值。在 WETH9 中,最大值 2^256-1 是特殊的:当额度等于它时,transferFrom() 跳过扣减,所以一次授权涵盖该支出者的所有未来转移(WETH9 验证源代码,Etherscan)。

  • 精确金额: 每次兑换或存款需要先进行自己的 approve();支出者永远无法取出超过授权金额的金额。
  • 无限: 一次 approve() 适用于所有未来使用;支出者可以转移该地址持有的任何 WETH,直到授权被撤销。

权衡是 gas 对风险。无限授权每次使用可以节省一次授权,约 24,000-46,000 gas;它也让持久的权限留给可能稍后被升级、利用或放弃的合约。

WETH 授权花费多少

授权花费一笔网络费用,仅此而已。gas 取决于额度是否已存在:

授权类型 使用的 Gas(Etherscan,2026 年 10 月 2 日) 主网费用,5.6 gwei,ETH $2,690.75
从零创建新额度 46,000-46,400 约 $0.70
更改现有额度 24,000-29,000 约 $0.36-$0.44

Gas 单位来自个别授权的费用和 gas 价格;USD 列使用 Etherscan 的 2026 年 9 月 28 日平均 gas 价格和 ETH 价格。在第二层上 gas 单位类似,gas 价格低数百倍,方式与包装和解包相同(WETH gas 费用)。无论哪种方式,费用用 ETH 支付,所以仅持有 WETH 的地址无法授权任何东西。

为什么 WETH 没有 Permit 函数

WETH9 于 2017 年 12 月部署,在 EIP-2612 定义 permit() 之前——该函数让代币持有者用链下签名而不是交易来授予额度。WETH9 仅有 deposit、withdraw、totalSupply、approve、transfer 和 transferFrom,其代码无法改变,所以 Ethereum 上的每次 WETH 授权都是用 ETH 支付的链上交易。

两种解决方法存在。Uniswap 的 Permit2 合约接受一次普通的 WETH 授权,然后让后续支出由签名授权。较新的包装代币内置了 permit:Lido 的 wstETH 实现了 EIP-2612(wstETH 对比 WETH)。对于 WETH9 本身,首次授权总是一笔交易。

如何检查和撤销 WETH 授权

  1. 列出额度: 打开网络浏览器的代币授权检查器(Etherscan、Basescan、Arbiscan)或专门工具如 revoke.cash,输入你的地址。
  2. 找到 WETH 条目: 每行显示支出者合约、额度(精确或无限)和设置时间。
  3. 撤销你不再使用的: 撤销从你的地址发送 approve(spender, 0);在钱包中确认并用 ETH 支付费用。
  4. 在每个网络重复: Base WETH 的授权与 Ethereum WETH 的授权是分开的,因为每个网络有自己的 WETH 合约(Base 上的 WETH)。

授权无法做什么

  • 它无法转移 ETH: 额度仅涵盖该合约中的 WETH 余额,从不涵盖同一地址上的原生 ETH。
  • 它无法超过你的余额: 如果所有者持有的 WETH 少于请求的金额,transferFrom() 会失败,无论额度如何。
  • 它无法跨越网络: 授权各自生活在每个网络的 WETH 合约中。
  • 它无法向后撤销: 撤销停止未来的提取;支出者已转移的 WETH 保持已转移。

WETH 授权常见问题

不会。WETH9 中的额度会一直保留,直到被 transferFrom() 用完或被新的 approve() 调用替换;合约内没有时间限制。