---
title: "自定义 Gas 代币：如何使用 ERC-20 代币支付交易费用"
description: "了解 Custom Gas Tokens 如何让用户使用你的 ERC-20 代币而非 ETH 支付交易费用。完整指南涵盖实现方式、经济性考量以及实际案例研究。"
---

# 自定义 Gas 代币：如何使用 ERC-20 代币支付交易费用

<ImageBlock
  src="https://media.alchemy.com/1750256084-custom-gas-tokens-twitter.jpg"
  alt="Custom Gas Tokens 允许区块链运营方设置自己的原生代币。"
  width={2400}
  height={1350}
  caption="Custom Gas Tokens 允许区块链运营方设置自己的原生代币。"
  priority
/>

历史上，通用型区块链（Ethereum、Solana 等）一直决定着用于交易手续费的原生代币。随着 app-chain 和 [rollups](/rollups) 的兴起，自定义 Gas 代币（Custom Gas Tokens，CGTs）让区块链运营方可以自行设定原生代币。

这一特性带来了代币效用增强、用户体验改善、生态经济控制力提升等好处。但实现时需要仔细权衡技术方案（原生实现 vs. [账户抽象](/gasless-transactions)）及其经济上的取舍。

## 什么是自定义 Gas 代币？

自定义 Gas 代币（CGTs）是链构建者为支付交易手续费而设定的替代代币（通常是 ERC-20 代币）。这改变了我们对区块链基础设施的理解方式，使协议开发者能够构建自洽的经济系统，网络手续费以生态自身的货币支付。

对于希望打造无缝用户体验的[应用专用链](/rollups)、[游戏](/gaming)生态和 [DeFi 协议](/defi)来说，这一能力尤其有价值。

### 对链运营方和应用开发者的主要好处

<ImageBlock
  src="https://media.alchemy.com/1750257010-custom-gas-tokens-twitter-1.jpg"
  alt="CGT 让链、应用和用户获得更好的体验"
  width={2880}
  height={1620}
  caption="CGT 让链、应用和用户获得更好的体验"
/>

- **增强代币效用：** 把你的代币从投机性或治理性资产转变为必需的基础设施。每一笔交易都需要用到该代币，从而产生持续、真实的需求，靠基本效用而非投机来驱动价值积累。
- **经济价值内部化：** 交易手续费留在你的生态内部，而不是流向 ETH 或其他外部代币。这样能构建更可持续的经济模型，让社区直接获取网络活动产生的价值。
- **统一的品牌体验：** 让用户完全用你的原生代币进行交互，从而强化生态的身份认同。这对于注重品牌一致性和差异化用户体验的游戏链、社交平台或特定 DeFi 生态尤为重要。
- 改善用户体验：消除用户需要不断管理多种代币的“gas 代币周转”问题。有了自定义 Gas 代币，用户在你的生态内只需持有一种代币即可满足所有需求，大幅降低了新用户上手的门槛。

### 实现方式：原生实现 vs. 账户抽象

<EmbeddedTable
  table={{
    columns: [
      { key: "1", width: 200, title: "Aspect", dataType: "object" },
      { key: "2", width: 200, title: "Native Implementation", dataType: "object" },
      { key: "3", width: 200, title: "Account Abstraction", dataType: "object" },
    ],
    data: [
      {
        "1": { title: "<p>Implementation Level</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Protocol (EVM)</p>", tooltip: "", icon: "" },
        "3": { title: "<p>Application (Smart Contract)</p>", tooltip: "", icon: "" },
        id: 0,
      },
      {
        "1": { title: "<p>Setup Complexity</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Moderate</p>", tooltip: "", icon: "" },
        "3": { title: "<p>High</p>", tooltip: "", icon: "" },
        id: 1,
      },
      {
        "1": { title: "<p>Flexibility</p>", tooltip: "", icon: "" },
        "2": { title: "<p>None- immutable post-genesis</p>", tooltip: "", icon: "" },
        "3": { title: "<p>Dynamic - Modifiable Runtime</p>", tooltip: "", icon: "" },
        id: 2,
      },
      {
        "1": { title: "<p>Gas Overhead</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Minimal</p>", tooltip: "", icon: "" },
        "3": { title: "<p>-21,000 additional gas</p>", tooltip: "", icon: "" },
        id: 3,
      },
      {
        "1": { title: "<p>Developer Experience</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Standard tooling compatible</p>", tooltip: "", icon: "" },
        "3": { title: "<p>Requires AA-specific SDKs</p>", tooltip: "", icon: "" },
        id: 4,
      },
      {
        "1": { title: "<p>Token Switching</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Requires chain migration</p>", tooltip: "", icon: "" },
        "3": { title: "<p>Runtime configurable</p>", tooltip: "", icon: "" },
        id: 5,
      },
    ],
  }}
/>

#### 原生实现

原生方式在创世时配置链，使全部 Gas 支付在协议层使用指定的某个 ERC-20 代币。

**支持的链：**

- ✅ [Arbitrum Orbit](https://www.alchemy.com/dapps/arbitrum-orbit)（完整支持，含动态价格预言机）
- ✅ [zkSync Era](https://www.alchemy.com/overviews/how-to-start-developing-on-zksync-in-5-steps)（持续支持中）
- ✅ Avalanche L1s
- ❌ [OP Stack](https://www.alchemy.com/dapps/op-stack)（自 2024 年 5 月起弃用）

**主要特性：**

- 要求 100% 的交易使用指定代币
- 直接与现有开发者工具及基础设施集成
- 创世部署后配置不可更改
- 在 EVM 层面提供确定性的 Gas 计量

**主要考量：**

- 缺乏灵活性，无法支持多种代币或在部署后更换代币
- 需要用户获取指定代币，可能使新用户上手变得复杂
- 在协议层以可预测的 Gas 成本简化交易流程
- 可能限制与依赖原生 ETH 或其他代币的应用之间的兼容性
- 依赖全链范围采用指定代币，会影响生态多样性

#### 账户抽象实现

账户抽象方式利用 [ERC-4337](/overviews/what-is-account-abstraction) 标准，通过 [paymaster](/overviews/what-is-a-paymaster) 架构支持用任意 ERC-20 代币支付 Gas，且无需修改链的核心协议。

**支持的链：**

- ✅ 兼容任何符合 ERC-4337 标准的链
- ✅ 与 OP Stack 弃用后的行业趋势保持一致
- ❌ 需要 paymaster 基础设施，各链可能有所不同
- ❌ 未在协议层强制执行，限制了普遍采用

**主要特性：**

- 提供最大灵活性，可支持多种代币或在无需协议升级的情况下更换代币
- 支持细粒度控制，允许不同应用指定不同的 Gas 代币
- 通过接受 ERC-20 代币并在内部处理转换，避免抛售压力
- 提供与 ERC-4337 标准一致的面向未来的架构

**主要考量：**

- 由于需要额外的基础设施（paymaster、bundler、entry point），复杂度增加
- 使开发者和用户的 Gas 估算与交易流程更复杂
- 无需代币跨链桥接，简化了多样化代币使用场景下的用户体验
- 由于代币使用是在应用层强制执行的，存在采用不一致的风险
- 需要为下游工具（例如区块浏览器、索引器）进行定制配置

## 经济层面的考量

### 父链手续费的挑战

当 L2 使用自定义 Gas 代币时，仍需要 ETH 来支付 Ethereum（L1）上的数据可用性成本。同样，L3 也需要其 L2 的原生代币。这就带来了一个关键的经济动态：

1. **收取阶段**：链从用户处收取 CustomToken 作为 Gas 手续费
1. **转换需求**：链需要 ETH/父链代币来支付数据发布成本
1. **市场操作**：链必须执行 CustomToken → 父链代币的兑换
1. **价格影响**：对 CustomToken 形成系统性的抛售压力

### 管理代币经济

链运营方必须建立成熟的经济模型，考虑以下因素：

- **收取预测：** 用于预测 Gas 代币累积速率的统计模型
- **汇率波动：** 应对代币价格波动的对冲策略
- **流动性需求：** 确保兑换所需的充足市场深度
- **储备管理：** 维持应对价格冲击的运营缓冲

**风险场景：** 代币价格下跌 50% 可能导致收取的 Gas 手续费不足以覆盖父链成本，从而产生随每个区块累积的运营赤字。

## 技术要求与规范

### 典型的 ERC-20 代币合规要求

你的代币实现通常应满足以下技术约束：

- 标准 ERC-20 接口实现
- 精确 18 位小数（在合约层面强制）
- 非 rebase 的代币供应机制
- 无转账手续费或税费机制
- 无回调钩子（不具备 ERC-777 功能）
- `name\(\)` 和 `symbol\(\)` 的返回值 ≤ 32 字节
- 单一转账入口（不使用可升级代理模式）

### 核心协议接口

<CodeSnippet language="solidity" code={`solidity
interface IGasToken {
/// @notice Returns the gas token address and decimals/// @return token The ERC20 token address (or 0xEeee...eEEeE for ETH)/// @return decimals Always 18 for valid gas tokens
    function gasPayingToken() external view returns (address token, uint8 decimals);

/// @notice Returns the gas token name
function gasPayingTokenName() external view returns (string memory);

/// @notice Returns the gas token symbol
function gasPayingTokenSymbol() external view returns (string memory);

/// @notice Indicates if a custom gas token is active
function isCustomGasToken() external view returns (bool);
}`} />
对于使用 ETH 的链，`gasPayingToken\(\)` 必须返回：`\(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE, 18\)`

### 账户抽象交易流程

<EmbeddedTable
  table={{
    columns: [
      { key: "1", width: 200, title: "Aspect", dataType: "object" },
      { key: "2", width: 200, title: "Native Implementation", dataType: "object" },
      { key: "3", width: 200, title: "Account Abstraction", dataType: "object" },
    ],
    data: [
      {
        "1": { title: "<p>Implementation Level</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Protocol (EVM)</p>", tooltip: "", icon: "" },
        "3": { title: "<p>Application (Smart Contract)</p>", tooltip: "", icon: "" },
        id: 0,
      },
      {
        "1": { title: "<p>Setup Complexity</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Moderate</p>", tooltip: "", icon: "" },
        "3": { title: "<p>High</p>", tooltip: "", icon: "" },
        id: 1,
      },
      {
        "1": { title: "<p>Flexibility</p>", tooltip: "", icon: "" },
        "2": { title: "<p>None- immutable post-genesis</p>", tooltip: "", icon: "" },
        "3": { title: "<p>Dynamic - Modifiable Runtime</p>", tooltip: "", icon: "" },
        id: 2,
      },
      {
        "1": { title: "<p>Gas Overhead</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Minimal</p>", tooltip: "", icon: "" },
        "3": { title: "<p>~21,000 additional gas</p>", tooltip: "", icon: "" },
        id: 3,
      },
      {
        "1": { title: "<p>Developer Experience</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Standard tooling compatible</p>", tooltip: "", icon: "" },
        "3": { title: "<p>Requires AA-specific SDKs</p>", tooltip: "", icon: "" },
        id: 4,
      },
      {
        "1": { title: "<p>Token Switching</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Requires chain migration</p>", tooltip: "", icon: "" },
        "3": { title: "<p>Runtime configurable</p>", tooltip: "", icon: "" },
        id: 5,
      },
    ],
  }}
/>

AA 的 Gas 支付流程按以下顺序运作：

1. **提交用户操作：** 用户以自定义代币支付意图签署操作
1. **Paymaster 验证：** 验证代币是否被接受，并计算所需金额
1. **代币收取：** Paymaster 通过 `transferFrom` 从用户处拉取自定义代币
1. **支付 Gas：** Paymaster 向 bundler 支付 ETH 以覆盖实际执行成本
1. **结算：** Paymaster 异步处理代币 → ETH 的转换

这种架构在保证安全性的同时，将 Gas 的复杂性从终端用户身上抽象出去。

## 生产环境实现与案例研究

### 成功的部署案例

[**Degen Chain**](https://www.degen.tips/)（基于 Base 的 Arbitrum Orbit L3）

- 上线第一周交易量超过 1400 万笔
- 活跃地址超过 77 万
- 跨链资产总值超过 6000 万美元
- 借助原生社区代币展现出强劲的产品市场契合度

[**DeFi Kingdoms**](https://defikingdoms.com/)（Avalanche Subnet）

- 将 CRYSTAL 作为自定义 Gas 代币
- 采用了新颖的基于质押的分发机制
- 在经济转型过程中保持了用户参与度

### 基础设施服务商的考量

RaaS 服务商和基础设施团队可以利用自定义 Gas 代币提供差异化服务，包括自动化代币验证、价格预言机集成以及流动性管理方案。这为 rollup 生态中的增值服务创造了新的机会。

### 从 Optimism 的弃用中吸取经验

Optimism 于 2024 年 5 月弃用原生自定义 Gas 代币，提供了以下关键洞察：

- L1 门户合约修改带来的安全隐患
- 协议升级方面的架构僵化
- 账户抽象模式带来的更优用户体验

## 迁移与升级方面的考量

<CalloutBlock>

⚠️ **重要提示：** 在部署后迁移或更改 Gas 代币会带来重大技术挑战。

</CalloutBlock>

迁移的复杂性包括：

1. 需要进行状态迁移的桥合约升级
1. 为资金对账而进行全链范围的暂停
1. 用户余额映射与验证
1. 需要协调整个生态的过渡
1. 迁移过程中存在资金损失的非零风险

**最佳实践：** 在创世阶段就进行充分的经济建模，并谨慎选择实现架构。如果你不确定，选择账户抽象以保留灵活性。

## 实现方式的决策框架

**适合使用自定义 Gas 代币的情况：**

- 你的代币具备真实的效用和流动性
- 用户已经持有并积极使用你的代币
- 你希望对链的经济体系拥有完全的控制权
- 你正在构建一个封闭生态（游戏、社交）
- 你有足够的资源进行流动性管理

**不适合使用的情况：**

- 你需要与其他链保持最大程度的互操作性
- 你的代币波动性大或流动性差
- 你希望做到"最大程度地与 ETH 对齐"
- 你没有资源应对运营复杂性
- 你所在司法辖区存在监管方面的顾虑

## 行业走向与未来展望

整个生态正明显朝着自定义 Gas 代币基础设施迈进：

- **Optimism：** 完全弃用了原生实现
- **Arbitrum：** 双轨支持，AA 采用率不断提升
- **zkSync：** 维持原生支持，同时规划 AA 路线图
- **Avalanche：** 采取协议无关的方式，两者兼容
- **行业标准：** ERC-4337 在各 L2 中的采用正在加速

## 技术要点总结

1. **经济可持续性需要成熟的管理：** 妥善的流动性配置、价格对冲和储备管理是保证运营成功不可或缺的条件
1. **用户体验驱动采用：** 消除 Gas 代币带来的摩擦可以大幅提升转化率
1. **灵活性具有可量化的价值：** 部署后仍能调整 Gas 代币策略的能力，足以证明账户抽象额外复杂性的合理性

## 常见问题

**问：什么是自定义 Gas 代币（CGT）？**

答：自定义 Gas 代币使任意 ERC-20 代币都能用于区块链上的交易手续费支付，在协议层或应用层取代对 ETH 或该链原生代币的要求。

**问：Gas 代币能否在部署后更改？**

答：原生实现在创世后不可更改。账户抽象实现支持在不改动协议的情况下进行运行时修改。

**问：目前哪些链支持自定义 Gas 代币？**

答：Arbitrum Orbit、zkSync Era 和 Avalanche L1s 提供原生支持。所有 EVM 链都通过 ERC-4337 支持基于 AA 的实现。

**问：运营成本是多少？**

答：在原生实现中，流动性管理、价格滑点和运营缓冲预计会带来 10-20% 的开销。AA 每笔交易额外增加约 21,000 gas，但省去了流动性管理的开销。

## 结语

自定义 Gas 代币是区块链架构中的一项基础性原语——它们是关乎生态经济、用户采用和长期可持续性的战略性选择。要做好这件事，需要同时理解技术实现的细节和经济层面的影响。

随着区块链基础设施不断成熟，自定义 Gas 代币将从一种差异化优势转变为标准功能。真正的赢家将是那些能够以用户体验为核心、构建出深思熟虑的代币经济体系的团队。区块链的未来正日益指向拥有自主货币政策的生态，而自定义 Gas 代币正是实现这一点的手段。

通过 [Alchemy Rollups](/rollups) [部署自定义 Gas 代币](https://www.alchemy.com/docs/reference/customizations-integrations#1-rollup-configuration)，或随时[联系我们的团队](/contact-sales-rollups)。我们随时为你提供帮助。
