본문으로 건너뛰기
0%

Metaplex의 Fusion 툴이란?

2023년 1월 26일에 게시됨4분 읽기

Solana 런치패드로서 Metaplex는 크리에이터가 NFT를 출시하고 확장할 수 있도록 돕고 있으며, Fusion 프로그램은 이러한 비전을 바탕으로 구축되고 확장됩니다. Fusion은 Solana 블록체인 상의 크리에이터를 위해 NFT 관련 기능을 더 확대하려는 Metaplex의 시도 중 하나입니다. 이 글에서는 Fusion 프로그램의 작동 방식과 설정 방법을 자세히 설명합니다.

Fusion이란?

Fusion은 Trifle 프로그램을 기반으로 구축된 NFT 조합 기능으로, NFT를 개별 구성 요소를 기준으로 재조립하거나 재배열할 수 있게 해줍니다. Trifle 프로그램은 Token metadata라는 Metaplex의 가장 많이 사용되는 프로그램 중 하나를 확장한 것입니다. Trifle은 Token metadata에 유연성을 더하고, 복잡한 NFT 소유권 모델을 만들 수 있게 하며, 온체인 추적과 같은 기능을 NFT 프로젝트에 추가합니다.

조합 가능한 NFT란?

조합 가능한 NFT는 개별 NFT 구성 요소를 재배열하여 복잡한 모델을 만들 수 있게 하는 유연한 NFT입니다.

조합성의 대표적인 예로 레고 브릭을 들 수 있습니다. 레고 브릭은 다른 레고 브릭과 연결될 수 있는 구조를 가지고 있으며, 이를 통해 복잡한 모델을 형성할 수 있습니다. 즉, 조합성이란 구성 요소들이 서로 상호 관계를 지원하거나 허용하여 재조립되거나 재배열됨으로써 더 복잡한 구조를 형성할 수 있는 능력을 말합니다. 조합 가능한 NFT는 Trifle 프로그램을 기반으로 만들어집니다.

Metaplex의 Fusion은 어떤 사용 사례가 있는가?

Metaplex의 Fusion은 게이밍, NFT, 탈중앙화 금융 등 여러 크립토 생태계에서 사용 사례를 가지고 있습니다.

1. 게이밍

Fusion의 유연성과 조합성 기능은 현대 web3 게임의 자산 게임화에 적합합니다. 게임 내 자산은 실시간으로 조합되어 다른 토큰을 형성할 수 있습니다. 예를 들어, 게임 안에 별 2개가 있고 이 별 2개의 가치가 다이아몬드 1개와 같다면, 두 토큰을 조합하여 온체인에서 추적할 수 있습니다.

2. NFT

Fusion을 사용하면 호환되는 NFT 이미지들을 조합하여 새로운 이미지를 만들 수 있습니다. 예를 들어, 개별 NFT가 퍼즐 조각이거나 자동차의 부품일 수 있으며, 이들을 결합하여 완전히 새로운 NFT를 만들 수 있습니다.

3. DeFi

이제 NFT를 번들로 묶거나 조합하여 탈중앙화 거래소 플랫폼에서 판매할 수 있습니다.

Metaplex의 Fusion은 어떻게 작동하는가?

Fusion은 Token Metadata 프로그램의 확장으로 만들어진 NFT 조합 프로그램인 Trifle을 사용합니다. Fusion 프로그램은 Solana 위에 구축된 NFT에 더 많은 기능을 부여하기 위해 만들어진 여러 Metaplex 프로그램들로 구성되어 있습니다. Fusion은 과 NFT 마켓플레이스를 강화하는 데 사용될 수 있으며, 크리에이터가 NFT 거래 및 소유권에 대한 규칙을 지정할 수 있도록 해줍니다.

Trifle 프로그램이란?

Metaplex의 Token Metadata 프로그램을 확장한 Trifle 프로그램은 Creator-Owned Accounts를 사용하여 NFT 조합성을 구현합니다. 이는 Token metadata 프로그램을 확장한 일종의 NFT Escrow 계정입니다.

Escrow 계정에는 TOE(Token owned escrow)와 COE(Creator owned escrow) 두 가지 유형이 있습니다. Trifle 프로그램은 COE를 사용하며, Program Derived Address(PDA)를 NFT의 크리에이터로 지정합니다. 이를 통해 PDA는 크리에이터에게 부여되는 혜택과 기능, 그리고 온체인 추적과 같은 다른 기능들을 갖게 됩니다.

토큰 소유권 규칙이란?

크리에이터가 설정할 수 있는 토큰 소유권 관련 규칙과 제약에는 세 가지 유형이 있습니다 — none, Metaplex certified collections, Token set. 다른 모든 제약 조건은 이 세 가지 주요 유형에 속합니다.

1. None

이는 아무런 요건이나 규칙이 필요하지 않을 때 설정하며, 모든 토큰의 전송을 허용합니다. 입장권 없이 행사에 손님을 들이는 것으로 생각하면 됩니다.

2. Metaplex certified collections

이는 토큰이 특정 컬렉션에 속해야 할 때 설정합니다.

3. Token set

이는 발행된 토큰이 세트 내 특정 토큰 하나와 일치해야 할 때 설정합니다.

Fusion과 함께 사용되는 Solana 계정에는 무엇이 있는가?

Metaplex Fusion은 두 가지 계정을 사용합니다 — Token metadata 프로그램/컨트랙트를 확장한 escrow constraint model 계정, 그리고 Trifle 계정입니다.

Escrow constraint model 계정이란?

Escrow constraint model 계정은 Trifle 계정에 접근하기 위한 명령을 사용하기 전에 충족되어야 하는 요구 사항을 규정합니다. Escrow 계정은 해시맵을 사용하여 데이터 구조를 구현하며, 해시 함수를 통해 키를 값에 매핑합니다.

escrow model 계정에서 키는 Constraint/slot 이름이고, 값은 constraint 유형(None/Collection/TokenSet 중 하나만 가능)과 Token limit(escrow 계정에 담을 수 있는 최대 토큰 수)입니다.

constraint model 계정의 독특한 특징은 유사한 사용 사례를 가진 NFT들을 동일한 escrow constraint model에 연결할 수 있다는 점입니다. 또한 constraint model은 Trifle 사용자가 각 명령에 대해 지불한 수수료를 저장하는 뱅크로 사용될 수도 있습니다.

Trifle 계정이란?

Trifle 계정은 온체인에서 COE 계정에 저장된 토큰을 관리하고 추적하며, 실행 시 Escrow constraint 계정과 연결됩니다. Trifle 계정은 해시맵을 사용하여 이러한 토큰들을 관리합니다.

Escrow constraint 및 Trifle 계정과 관련된 명령어:

  1. Create Escrow Constraint Model Account - escrow model 계정을 생성합니다
  2. Create Trifle Account - Trifle 계정을 생성하는 데 사용됩니다
  3. Transfer In - Trifle 계정이 관리하는 COE로 토큰을 전송하는 데 사용됩니다
  4. Transfer Out - Trifle 계정이 관리하는 COE에서 토큰을 전송해 내보내는 데 사용됩니다

Transfer in 명령어는 전송될 토큰이 지정된 요구 사항을 충족하는지 constraint model을 통해 확인하며, transfer out 명령어는 전송되어 나갈 토큰이 지정된 요구 사항을 충족하는지 constraint model을 통해 확인합니다.

Metaplex Fusion 사용 방법

프로그램 레벨에서 Fusion을 사용하는 것은 세 단계로 이루어집니다: parent NFT 생성, NFT의 schema 정의, Trifle 계정 설정입니다.

1단계: parent NFT 생성

다음은 parent NFT를 생성하는 일반적인 코드 예제입니다.

이 코드가 하는 일은 다음과 같습니다:

A. 새 KeyPair 객체 생성

KeyPair 객체는 공개 키와 개인 키로 구성되며, 이를 nftMint 변수에 할당합니다. 이는 NFT의 mint(발행자)로 사용됩니다.

B. findTriflePda 함수 호출

다음으로, nftMint 객체의 공개 키와 updateAuthority 객체를 인수로 하여 findTriflePda 함수를 호출합니다. findTriflePda 함수는 해당 NFT의 Trifle 계정으로 사용될 프로그램 주소를 반환합니다.

C. NFT의 create 메서드 호출

다음 속성들을 가진 객체를 인수로 전달하여 Metaplex 객체의 NFTs 속성이 가진 create 메서드를 호출합니다:

  • URI - NFT의 정적 URI로 사용될 문자열
  • name - NFT의 이름을 나타내는 문자열
  • sellerFeeBasisPoints - basis point 단위로 NFT의 seller fee를 나타내는 숫자
  • useNewMint - NFT의 mint(발행자)로 사용될 nftMint 객체

참고: URI 문자열은 다음 항목들을 슬래시로 구분하여 연결해 구성됩니다:

  • METAPLEX_BUCKET 상수
  • TrifleAddress 배열의 첫 번째 요소
  • 문자열 ".json"

create 메서드가 호출되고 나면, parent NFT를 나타내는 값을 반환합니다.

2단계: schema 정의

schema는 데이터가 데이터베이스 안에서 어떻게 조직되는지를 나타내는 설계도입니다. Fusion에서 constraint model에는 schema라는 필드/슬롯이 있으며, 이는 NFT의 일부 속성이 어떻게 조직되는지를 결정합니다.

각 schema 속성이 나타내는 것:

  • type - 어떤 유형의 schema인지를 나타냅니다
  • layers - Trifle 계정 내의 다양한 슬롯을 나타냅니다
  • defaults - Fusion의 메타데이터를 비교하고 결합할 때 사용할 기본 메타데이터를 보여줍니다

3단계: Trifle 계정 설정

마지막 단계는 Trifle 계정을 설정하는 것이지만, Metaplex 문서에 따르면 Trifle 계정 설정을 위한 안내는 아직 제공되지 않고 있습니다.

오늘 Solana 개발을 시작하세요

Metaplex의 Fusion은 Solana에서 조합 가능한 NFT를 만드는 데 사용됩니다. Solana 개발을 시작하려면, 지금 Alchemy에서 무료 Solana RPC 노드 계정을 만들어 보세요!

Background gradient

블록체인 매직을 만드세요

Alchemy는 가장 강력한 Web3 개발자 제품 및 도구를 리소스, 커뮤니티, 그리고 전설적인 지원과 결합합니다.