Currency Standard
Coin과 Currency standard는 모두 fungible token을 생성하는 데 사용된다. 그러나 이들은 서로 다른 생성 방법을 사용하고 서로 다른 타입의 object에 metadata를 저장한다.
Coin은 coin::create_currency를 사용하여 asset을 생성하는 반면 Currency는 coin_registry::new_currency와 coin_registry::new_currency_with_otw를 사용한다.
Coin은 CoinMetadata를 사용하는 반면 Currency는 Currency object를 사용한다. Coin 또는 Currency standard를 사용하여 Sui에서 생성된 fungible token은 _coins_로 지칭된다.
Coin은 fungible asset에 대한 단일 object wrapper를 의미하는 반면, currency라는 용어는 currency의 속성과 설정을 설명하는 CoinRegistry에서 생성되는 object를 의미한다.
Closed-Loop Token standard를 사용하여 Sui에서 생성된 fungible token의 경우, 문서는 _tokens_라는 용어를 사용한다. 실제로는 이 두 object에 대한 용어가 종종 서로 바꿔서 사용된다.
Currency Standard는 Sui에서 코인을 생성하기 위해 Move 스마트 계약이 사용하는 기술 standard이다. sui::coin_registry 모듈은 standard를 정의하는 로직을 제공하며 metadata를 통합하고 supply tracking을 강화하며 regulatory feature를 개선한다.
Sui에서 코인 생성이 standardization되었다는 것은 지갑, 거래소, 그리고 다른 스마트 계약이 추가적인 처리 로직 없이도 SUI를 관리하는 것과 동일하게 Sui에서 생성된 코인을 관리할 수 있음을 의미한다.
SUI 네이티브 currency와 네트워크에서의 사용에 대해 더 알아보려면 Sui 토크노믹스를 참조한다.
Sui의 코인은 Currency Standard를 따르면서 특화된 ability를 제공할 수 있다. 예를 들어, creator가 특정 address를 deny list에 추가할 수 있게 하여 식별된 address가 transaction의 input으로 코인을 사용할 수 없도록 하는 regulated coin을 생성할 수 있다.
Fungible tokens
Currency<T> 타입은 open-loop fungible token을 나타낸다(closed-loop token은 Token<T> 참조). Currency는 타입 파라미터 T로 denominated되며, T는 모든 Currency<T> 인스턴스에 적용되는 metadata(이름, symbol, decimal precision 등)와도 연관된다. sui::coin_registry 모듈은 Currency<T>에 대한 인터페이스를 노출하여 이를 fungible로 취급하며, 이는 전통적인 fiat currency가 작동하는 방식과 유사하게 Currency<T>의 한 인스턴스에 보관된 T의 단위가 다른 어떤 T