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

# 시스템 컨트랙트 개요

## 목적 및 범위

이 페이지는 StableNet의 5개 시스템 컨트랙트와 그 고정 주소, 제네시스 배포·초기화 방식을 개략적으로 설명합니다.\
이 컨트랙트들은 검증자 관리, 민팅/소각 승인, 네이티브 스테이블코인 ERC-20 호환성을 위한 핵심 거버넌스 메커니즘을 구현합니다.

개별 컨트랙트에 대한 자세한 문서는 다음을 참조하세요:

* [NativeCoinAdapter 컨트랙트](/ko/governance-system/5.2-nativecoinadapter-contract) - 네이티브 잔액을 위한 ERC20 래퍼
* [검증자 거버넌스 (GovValidator)](/ko/governance-system/5.3-validator-governance-\(govvalidator\)) - 검증자 세트 관리
* [민팅 거버넌스 (GovMasterMinter 및 GovMinter)](/ko/governance-system/5.4-minting-governance-\(govmasterminter-and-govminter\)) - 민터 등록 및 제안
* [Council 거버넌스 (GovCouncil)](/ko/governance-system/5.5-council-governance-\(govcouncil\)) - 블랙리스트 및 Authorized 계정 정책
* [민팅 및 번 프로토콜](/ko/governance-system/5.6-mint-and-burn-protocol) - 엔드투엔드 민트/소각 워크플로우

## 5개의 시스템 컨트랙트

StableNet은 제네시스 블록 생성 시 미리 정해진 주소에 5개의 시스템 컨트랙트를 직접 배포합니다.\
이 컨트랙트들은 소유자 없이 배포되며, 일반적인 업그레이드 패턴(프록시 등)을 사용하지 않고 **하드 포크를 통해서만** 교체할 수 있습니다.

| Contract Name         | Address                                      | Primary Purpose                                | Version |
| --------------------- | -------------------------------------------- | ---------------------------------------------- | ------- |
| **NativeCoinAdapter** | `0x0000000000000000000000000000000000001000` | 네이티브 스테이블코인 잔액에 대한 ERC-20 래퍼, mint/burn 진입점    | v1      |
| **GovValidator**      | `0x0000000000000000000000000000000000001001` | 검증자 세트 관리, BLS 키 등록, 가스 팁(gasTip) 거버넌스         | v1      |
| **GovMasterMinter**   | `0x0000000000000000000000000000000000001002` | 승인된 민터 레지스트리 및 전역 최대 민터 허용량 상한 관리              | v1      |
| **GovMinter**         | `0x0000000000000000000000000000000000001003` | 증명 기반 민트/번 제안 생성·투표·실행                         | v1      |
| **GovCouncil**        | `0x0000000000000000000000000000000000001004` | 블랙리스트 및 Authorized 계정 세트 관리, AccountManager 연동 | v1      |

## 컨트랙트 배포 아키텍처

시스템 컨트랙트는 바이트코드와 초기화된 저장소를 모두 제네시스 상태에 쓰는 상태 전환 메커니즘을 통해 제네시스 블록 생성 중에 배포됩니다.

## 제네시스 구성 구조

시스템 컨트랙트는 제네시스 파일의 `config.anzeon.systemContracts` 섹션에 정의되며, 각 컨트랙트에 대해 주소·버전·초기화 매개변수를 지정합니다.

## 버전 관리 및 바이트코드 저장

컨트랙트 바이트코드는 컴파일 시 바이너리에 포함되며 컨트랙트 이름과 버전으로 인덱싱됩니다. `SystemContractCodes` 맵은 배포된 바이트코드에 대한 버전 제어 액세스를 제공합니다.

버전 검증 프로세스는 지원되는 컨트랙트 버전만 배포할 수 있도록 보장합니다.

## 컨트랙트 초기화 매개변수

각 시스템 컨트랙트는 제네시스에서 저장소 상태를 구성하기 위한 특정 초기화 매개변수를 필요로 하며, 매개변수는 컨트랙트별 초기화 함수에서 해석·검증됩니다.

## 컨트랙트 종속성 그래프

시스템 컨트랙트는 일부 컨트랙트가 다른 컨트랙트를 참조하는 종속성 계층 구조를 형성합니다. 이러한 종속성을 이해하는 것은 올바른 구성을 위해 중요합니다.

## 저장소 초기화 프로세스

각 컨트랙트의 초기화 함수는 미리 정해진 저장소 슬롯에 특정 값을 씁니다. 초기화는 Solidity 저장소 레이아웃 규칙을 사용하여 매핑 및 동적 배열에 대한 슬롯 주소를 계산합니다.

## 컨트랙트 업그레이드 메커니즘

시스템 컨트랙트는 소유자 없이 배포되며 일반 컨트랙트 메커니즘을 통해 업그레이드할 수 없습니다. 유일한 업그레이드 경로는 하드 포크를 통한 것입니다.
