Non-Fungible Token; 대체 불가능 토큰
특별한 의미가 부여된, 대체할 수 없는 유일한 항목을 토큰화하여 특정 토큰을 다른 토큰으로 대체하는 것이 불가능한 특성을 가진 가상 자산
일반 토큰과의 비교
구분
|
NFT(Non-Fungible Token)
|
FT(Fungible Token)
|
개념도
|
|
|
특성
|
|
|
예시
|
- A 그림의 소유권을 증명하는 토큰과 B 그림의 소유권을 증명하는 토큰
|
|
표준
|
|
|
아키텍처
구조도 및 주요 요소
구분
|
주요요소
|
설명
|
On-Chain Area
|
ERC-721
|
- 이더리움 기반 NFT 표준
- 소유자 정보 및 메타 데이터 정보를 보유한 토큰
|
ERC-721 Contract
|
- ERC-721 기반에서 제공되는 스마트 컨트랙트
- 소유자의 주소 정보 획득
- Metadata와 연결을 위한 URL 정보 획득 등
|
Metadata
|
- 토큰의 컨텐츠에 대한 상세 TAG
- 실제 데이터는 블록체인 내부에 저장하기에는 용량의 한계 존재
|
Off-Chain Area
|
Off-Chain
|
- 토큰의 실제 데이터를 외부에 저장하기 위한 기술
|
IPFS
|
- 분산 환경에서 데이터를 저장하기 위한 파일 시스템
|
ERC-721 구성
① balanceOf
|
해당 주소가 보유하고 있는 NFT 토큰들 개수
|
② ownerOf
|
해당 NFT 토큰을 소유하고 있는 주소 조회
|
③ approve
|
해당 주소에 NFT 토큰 전송 권한 부여
|
④ getApproved
|
해당 토큰의 전송 권한을 갖고 있는 주소 조회
|
⑤ setApprovalForAll
|
NFT 토큰 소유자가 해당 주소에게 모든 NFT 토큰에 대한 전송권한을 부여/해제
|
⑥ isApprovedForAll
|
setApprovalForAll의 권한이 있는지 참/거짓으로 리턴
|
⑦ transferFrom
|
NFT 토큰 소유자로부터 해당 NFT 토큰을 자른 주소로 전송
|
⑧ safeTransferFrom
|
전송받는 주소가 ERC721 토큰을 받을 수 있는지 체크하고 전송
|