For the complete documentation index, see llms.txt
Tokens on Midnight
Midnight에는 네이티브 토큰 NIGHT 하나와 네이티브 리소스 DUST 하나가 있습니다. NIGHT은 양도 가능하며 staking과 거버넌스에 쓰이고, 시간이 지나면서 DUST를 생성합니다. DUST는 양도 불가능한 shielded 리소스로, 네트워크가 트랜잭션 수수료를 지불하기 위해 소비합니다. 두 가지 모두 shielded(비공개) 상태와 unshielded(공개) 상태를 지원하는 이중 ledger 위에서 동작합니다.
이 섹션에서는 NIGHT, DUST, 그리고 여러분이 Compact로 만드는 custom token을 다룹니다.
NIGHT and DUST
- NIGHT: 네이티브 유틸리티 토큰입니다. staking, 거버넌스, DUST 생성을 위해 NIGHT을 보유합니다. 단위: STAR (1 NIGHT = 10^6 STAR).
- DUST: shielded이면서 양도 불가능한 수수료 리소스입니다(토큰이 아닙니다). 보유한 NIGHT 잔액이 상한까지 시간에 따라 DUST를 생성하고, 모든 트랜잭션이 이를 소비합니다. 단위: SPECK (1 DUST = 10^15 SPECK).
이 설계의 경제적 근거는 Dual-component tokenomics를 참고하세요. DUST의 기술적 아키텍처(생성, decay, 등록)는 DUST architecture를 참고하세요.
Shielded and unshielded
Midnight의 이중 ledger에서는 토큰이 두 가지 형태로 존재할 수 있습니다.
- Shielded: 지갑 주소와 트랜잭션 세부 정보가 비공개로 유지되는 private 상태입니다. DUST는 항상 shielded이며,
mintShieldedToken으로 mint한 토큰도 마찬가지입니다. - Unshielded: ledger에 공개되어 누구나 볼 수 있는 public 상태로, 투명한 블록체인과 비슷합니다. NIGHT은 항상 unshielded이며,
mintUnshieldedToken으로 mint한 토큰도 마찬가지입니다.
토큰의 프라이버시는 그 토큰을 보유한 주소가 아니라 토큰 유형에서 비롯됩니다. NIGHT은 unshielded 토큰이라 잔액과 전송이 항상 공개되며, shielded 주소에 NIGHT을 보유해도 비공개가 되지는 않습니다. 토큰을 shielded 상태와 unshielded 상태 사이로 옮기는 수단은 없습니다. shielded 토큰과 unshielded 토큰은 서로 다른 토큰 유형이며 별도의 풀에서 추적됩니다. Compact에서의 shielded·unshielded 토큰 전송 코드 예시는 Token transfers를 참고하세요.
Custom tokens
Compact로 직접 fungible 토큰과 non-fungible 토큰을 만들 수 있습니다. standard library는 새 토큰을 mint하는 mintShieldedToken(및 unshielded 대응 함수)과, 이를 전송하는 sendShielded / receiveShielded를 제공합니다. Midnight의 토큰 표준은 MIP(Midnight Improvement Proposal) 절차를 통해 마련될 예정입니다. 그때까지는 OpenZeppelin contracts for Compact 라이브러리가 Solidity 원본을 본떠 만든 재사용 가능한 access control·보안 primitive를 제공합니다.
직접 토큰을 만들고 전송하는 전 과정을 따라가려면 2부작 튜토리얼을 참고하세요. unshielded 토큰 만들고 전송하기와 shielded 토큰 만들고 전송하기입니다.
Fees
Midnight의 모든 트랜잭션에는 DUST가 필요합니다. 새 지갑에서는 NIGHT을 어떻게 등록하느냐에 따라 DUST 생성 방식이 달라집니다. 현재 대부분의 NIGHT은 cross-chain 경로(Cardano의 cNIGHT)를 통해 Midnight에 도달합니다. 이 등록은 Cardano에서 확정된 뒤 Midnight 노드까지 전달되어야 하며, 약 12시간이 걸립니다. 로컬 네트워크에서는 DUST가 약 5분이면 생성됩니다. 네이티브 mNIGHT이 출시되면 이 지연은 사라집니다. 시작하려면:
- Fund a wallet (faucet tNIGHT, Lace 등록, wallet SDK 경로)
- Manage DUST (파라미터, 잔액, 수수료 추정, 한 지갑에서 보내는 여러 트랜잭션)
Further reading
- Dual-component tokenomics: NIGHT과 DUST를 뒷받침하는 경제 모델
- DUST architecture: 생성, decay, 등록, 프로토콜 파라미터
- Ledgers: UTXO 기반 ledger와 이 모델이 토큰을 표현하는 방식
- Token transfers example: Compact의 shielded·unshielded 전송 코드
- Compact standard library: 토큰 관리 함수