NFT

From CS Wiki

Non-Fungible Token; 대체 불가능 토큰

특별한 의미가 부여된, 대체할 수 없는 유일한 항목을 토큰화하여 특정 토큰을 다른 토큰으로 대체하는 것이 불가능한 특성을 가진 가상 자산

일반 토큰과의 비교[edit | edit source]

구분 NFT(Non-Fungible Token) FT(Fungible Token)
개념도 대체 불가능 개념도.png 대체 가능 개념도.png
특성
  • 대체 불가능
  • 하나의 토큰마다 다른 가치 제공
  • 대체 가능
  • 동일한 가치 제공
예시
  • A 그림의 소유권을 증명하는 토큰과 B 그림의 소유권을 증명하는 토큰
  • 100원짜리 동전과 100원짜리 동전
표준
  • ERC-721
  • ERC-20

아키텍처[edit | edit source]

구조도 및 주요 요소[edit | edit source]

600x600픽셀

구분 주요요소 설명
On-Chain Area ERC-721
  • 이더리움 기반 NFT 표준
  • 소유자 정보 및 메타 데이터 정보를 보유한 토큰
ERC-721 Contract
  • ERC-721 기반에서 제공되는 스마트 컨트랙트
  • 소유자의 주소 정보 획득
  • Metadata와 연결을 위한 URL 정보 획득 등
Metadata
  • 토큰의 컨텐츠에 대한 상세 TAG
  • 실제 데이터는 블록체인 내부에 저장하기에는 용량의 한계 존재
Off-Chain Area Off-Chain
  • 토큰의 실제 데이터를 외부에 저장하기 위한 기술
IPFS
  • 분산 환경에서 데이터를 저장하기 위한 파일 시스템

ERC-721 구성[edit | edit source]

700x700픽셀

① balanceOf 해당 주소가 보유하고 있는 NFT 토큰들 개수
② ownerOf 해당 NFT 토큰을 소유하고 있는 주소 조회
③ approve 해당 주소에 NFT 토큰 전송 권한 부여
④ getApproved 해당 토큰의 전송 권한을 갖고 있는 주소 조회
⑤ setApprovalForAll NFT 토큰 소유자가 해당 주소에게 모든 NFT 토큰에 대한 전송권한을 부여/해제
⑥ isApprovedForAll setApprovalForAll의 권한이 있는지 참/거짓으로 리턴
⑦ transferFrom NFT 토큰 소유자로부터 해당 NFT 토큰을 자른 주소로 전송
⑧ safeTransferFrom 전송받는 주소가 ERC721 토큰을 받을 수 있는지 체크하고 전송