> ## Documentation Index
> Fetch the complete documentation index at: https://docs.optimism.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 커스텀 가스 토큰

> OP Stack 체인에서 커스텀 가스 토큰(Custom Gas Token)을 활용하는 방법을 알아봅니다.

커스텀 가스 토큰(Custom Gas Token, CGT)을 사용하면 OP Stack 체인이 ETH 대신 어떤 자산이든 네이티브 수수료 통화로 사용할 수 있습니다.
이를 통해 체인 운영자(chain operator)는 경제 모델을 각자의 사용 사례에 맞출 수 있는 새로운 가능성을 얻게 됩니다. 예측 가능한 수수료를 위해 스테이블코인을 사용하거나, 생태계 정렬을 위해 거버넌스 토큰을 사용하거나, 완전히 새로운 네이티브 자산을 만들 수도 있습니다.

이번 CGT 버전은 네이티브 자산 관리를 핵심 브리징 인프라에서 분리하여 유연성, 최소한의 핵심 프로토콜 변경, 미래 지향적 표준화를 우선시하도록 재설계되었습니다.

## 주요 기능

* **토큰 유연성**: 기존 L1 ERC-20, L2 네이티브 토큰, 또는 완전히 새로운 자산 등 어떤 토큰이든 네이티브 가스 토큰으로 사용할 수 있습니다
* **애플리케이션 계층 브리징**: 프로토콜에 고정된(enshrined) bridge나 토큰이 없으며, bridge와 변환기는 전적으로 애플리케이션 계층에 존재합니다
* **유연한 공급량 관리**: 체인 거버너가 토큰 공급량, 발행 일정, 배포 메커니즘을 완전히 제어합니다
* **미래 지향적 설계**: 크로스체인 상호운용성(interoperability)을 지원하도록 설계되었습니다

## 작동 방식

CGT는 제네시스 시점에 구성되며, ETH 브리징과 독립적으로 네이티브 자산을 관리하기 위한 두 개의 새로운 predeploy 컨트랙트가 함께 제공됩니다.

### `isCustomGasToken()` 플래그

활성화되면 다음과 같이 동작합니다.

* **L1에서**: `SystemConfig`에 위치하며, `OptimismPortal`, `L1CrossDomainMessenger`, `L1StandardBridge`가 ETH 값(`msg.value`)을 포함한 트랜잭션을 거부하도록 지시합니다
* **L2에서**: `L1Block`에 위치하며, `L2ToL1MessagePasser`, `L2CrossDomainMessenger`, `L2StandardBridge`, `FeeVaults`에서 ETH 관련 작업을 차단합니다

이를 통해 네이티브 자산의 발행(mint)과 소각(burn)을 입금(디파짓)과 분리하여 애플리케이션 계층으로 옮길 수 있습니다.

### 두 개의 새로운 predeploy 컨트랙트

**NativeAssetLiquidity**

제네시스 시점에 생성된 사전 발행 네이티브 자산을 보관하며, 두 가지 핵심 함수를 제공합니다.

* `deposit()`: 네이티브 자산을 받습니다(LiquidityController만 호출 가능)
* `withdraw()`: 네이티브 자산을 컨트롤러에 반환합니다

**LiquidityController**

거버넌스가 제어하는 컨트랙트로, 다음을 통해 자산 공급량을 관리합니다.

* `authorizeMinter()` / `deauthorizeMinter()`: 발행 권한을 부여하거나 철회합니다
* `mint()`: 승인된 당사자를 위해 유동성 준비금에서 자산을 잠금 해제합니다
* `burn()`: 네이티브 자산을 받아 유동성 컨트랙트에 잠급니다
* 래핑된 자산과의 호환성을 위해 토큰 메타데이터를 저장합니다

## 사용 사례

* **스테이블코인 수수료**: USDC 또는 기타 스테이블코인을 사용하여 예측 가능한 트랜잭션 비용을 제공합니다
* **거버넌스 정렬**: 체인의 거버넌스 토큰을 가스 토큰으로 사용하여 인센티브를 정렬합니다
* **L2 네이티브 경제**: 커스텀 공급 메커니즘을 갖춘 완전히 새로운 네이티브 자산을 만듭니다
* **간소화된 UX**: 사용자가 체인과 상호작용하기 위해 보유해야 하는 토큰의 수를 줄입니다

## 이전 설계와의 비교

Custom Gas Token v2는 Upgrade 18에서 도입되었으며 `op-contracts/v6.0.0`에서 사용할 수 있습니다.

| 항목 | 레거시 CGT | CGT v2 |
| - | - | - |
| **토큰 기반** | L1 ERC-20에 고정 | 제네시스 시점의 독립적인 네이티브 자산 |
| **유연성** | 특정 구성으로 제한 | 모든 릴리스 메커니즘 지원 |
| **브리징** | 핵심 컨트랙트에 내장 | 애플리케이션 계층의 책임 |
| **공급량 제어** | 시스템 트랜잭션을 통한 발행 | 발행자(minter) 승인 모델 |
| **적응성** | 배포 후 변경이 제한적 | 업그레이드 가능하며 유연함 |

> [!WARNING]
>
> **레거시 CGT에서의 마이그레이션**: 현재 레거시 CGT에서 CGT v2로 마이그레이션하는 경로는 없습니다. 마이그레이션 경로는 추후 마련될 예정입니다. 이전 CGT 설계를 사용하는 체인은 새로운 아키텍처를 채택하려면 하드포크를 조율해야 합니다.

## 개발자에게 미치는 영향

* **핵심 구성 요소와의 분리**: 네이티브 자산 관리가 핵심 구성 요소와 분리되어 있으므로, 네이티브 자산을 획득하는 방법은 체인마다 다를 수 있습니다. 즉, 브리징, 변환, 활용되는 기능이 서로 다를 수 있습니다. 대부분의 구현을 표준화하기 위해 기본 사용 사례(예: L2 네이티브, L1에서의 브리징)를 다루는 라이브러리나 템플릿을 만드는 것을 권장합니다.
  * 체인 거버너는 자체 구현에 대해 감사를 받는 것이 권장됩니다.
  * 개발자는 네이티브 자산을 획득하는 방법을 이해하기 위해 해당 체인의 문서를 확인해야 합니다.
  * CGT 체인 운영자들이 협력하여 기본 제공되지 않는 공통 CGT 패턴을 정형화하는 것이 이상적입니다.
* **통합 API 없음**: 이 구현의 유연성으로 인해 CGT 체인마다 네이티브 자산을 획득하는 방법이 다를 수 있습니다
* **ETH 브리징**: ETH 브리징은 ERC-20 래퍼인 L1-WETH를 통해 라우팅됩니다
* **문서화**: 사용자가 네이티브 자산을 획득하는 방법을 이해할 수 있도록 명확한 문서화가 매우 중요합니다

## 위험 및 고려 사항

### 공급량 관리

* **발행자 보안**: 발행 권한이 부여된 모든 주소는 철저한 보안 검토와 감사가 필요합니다
* **접근 제어**: bridge나 컨트롤러의 잘못된 구성은 의도하지 않은 발행 또는 소각으로 이어질 수 있습니다
* **속도 제한**: 위험을 줄이기 위해 발행 속도에 대한 속도 제한(rate limit)을 구현하는 것을 고려하십시오

### 구성의 정확성

* **플래그 일치**: 프로토콜 위반을 방지하려면 `isCustomGasToken`이 L1과 L2에서 일치해야 합니다
* **수수료 파라미터**: `minBaseFee`와 `operatorFee`는 네이티브 토큰 단위로 실행 비용과 데이터 가용성 비용을 정확하게 반영해야 합니다
* **소수점 지원**: CGT는 현재 소수점 18자리 토큰만 지원합니다.
  소수점 자릿수가 다른 ERC20은 토큰과 네이티브 자산 간 변환 시 반올림을 처리하기 위한 커스텀 로직이 필요합니다.

## 다음 단계

* **체인 운영자의 경우**: 자세한 배포 지침은 [커스텀 가스 토큰 체인 배포](https://docs.optimism.io/ko/chain-operators/guides/features/custom-gas-token-guide.md)를 참조하십시오
