본문으로 이동

ERC-721

ERC-721은 이더리움의 대체 불가능 토큰(NFT) 표준 인터페이스로, 각 토큰을 별도로 식별하고 스마트 계약이 소유권과 전송 규칙을 기록합니다.

업데이트

교육 참고용이며 투자 조언이 아닙니다. 투자로 인해 손실이 발생할 수 있습니다.

직접 답변

ERC-721은 이더리움의 대체 불가능 토큰 표준 인터페이스입니다. ERC-721 컨트랙트는 교환 가능한 잔액 하나를 기록하는 대신 tokenId로 각 토큰을 따로 추적하고, 소유자를 공개하며, 토큰의 전송과 승인을 정의합니다. 토큰은 컨트랙트 주소와 tokenId의 조합으로 식별되며, 표준 자체가 가격, 진위, 희소성 또는 법적 권리를 정하지는 않습니다.

ERC-721이 ERC-20과 다른 이유는 ERC-20 단위가 대체 가능하여 한 단위를 다른 단위와 교환할 수 있기 때문입니다. ERC-721 토큰은 같은 컬렉션에 속해도 식별자와 메타데이터가 다를 수 있습니다. 지갑이나 마켓플레이스가 두 표준을 모두 지원할 수 있지만 전송 및 승인 호출은 다릅니다.

실제로 확인할 것은 프로젝트가 “ERC-721”이라고 말하는지 여부가 아니라 컨트랙트와 주변 시스템이 무엇을 하는지입니다. NFT를 자산으로 취급하기 전에 구현, 권한, 메타데이터, 마켓플레이스 승인, 유동성, 보유자에게 약속한 권리를 확인해야 합니다.

작동 방식

식별과 소유권

컨트랙트는 존재하는 각 tokenId의 소유자를 기록합니다. ownerOf는 해당 주소를 반환하고 balanceOf는 주소가 보유한 토큰 수를 셉니다. 민팅은 보통 새 식별자를 만들고 영 주소에서 전송되는 Transfer 이벤트를 발생시킵니다. 소각은 보통 영 주소로 전송되는 이벤트를 발생시킵니다. 이벤트는 색인에 유용하지만 기준은 컨트랙트 상태입니다.

전송과 승인

소유자는 transferFrom을 직접 호출하거나 approve로 특정 토큰에 대해 한 주소를 승인할 수 있습니다. setApprovalForAll은 소유자가 해당 컬렉션에서 보유한 모든 토큰을 운영자가 관리하도록 승인하므로 마켓플레이스에는 편리하지만 권한 범위가 넓습니다. 운영자는 컨트랙트 주소로 확인하고, 필요 없어진 승인은 온체인에서 취소해야 합니다. 서명된 주문과 온체인 승인은 별개이므로 하나를 취소해도 다른 하나가 취소되지는 않습니다.

safeTransferFrom은 컨트랙트 수신자가 IERC721Receiver를 구현하는지도 확인합니다. 토큰을 받을 수 없는 컨트랙트로 보내는 것을 막는 데 도움이 되지만 transferFrom에는 수신 콜백이 없습니다. 어느 함수도 마켓플레이스, 브리지 또는 지갑이 토큰을 올바르게 처리한다고 보장하지 않습니다.

메타데이터와 로열티

선택적 메타데이터 확장은 tokenURI를 제공하며 온체인 또는 외부에 저장된 데이터를 가리킬 수 있습니다. 변경 가능한 기본 URI, 업그레이드 가능한 컨트랙트, 관리자 또는 중앙화된 호스팅은 민팅 후 표시 내용을 바꿀 수 있습니다. 영구 저장과 탈중앙화 저장은 일부 의존성을 줄이지만 저자, 출처 또는 지식재산권의 귀속을 증명하지는 않습니다.

ERC-721은 유통 시장에 창작자 로열티 지급을 요구하지 않습니다. 컬렉션이 선택적 EIP-2981 로열티 인터페이스를 구현해도 마켓플레이스가 이를 따를지는 선택 사항이며, 해당 인터페이스가 지급을 정산하거나 강제하지도 않습니다. 공급 한도, 무작위성, 작품의 진위, 상표 라이선스 등은 코드, 배포 규칙 및 법률 문서로 별도 확인해야 합니다.

예시

어떤 컨트랙트가 토큰 #42를 Alice에게 민팅한다고 가정해 보겠습니다. 이 토큰은 42만으로 전 세계에서 식별되지 않으며 컬렉션의 컨트랙트 주소도 식별자의 일부입니다. Alice는 해당 토큰에 approve를 부여하거나 마켓플레이스 운영자에게 setApprovalForAll을 부여해 등록할 수 있습니다. 판매가 실행되면 마켓플레이스가 전송 함수를 호출하고 컨트랙트가 소유권과 승인을 확인합니다. 컬렉션 전체 승인이 더 이상 필요 없으면 Alice는 나중에 취소해야 합니다.

마켓플레이스에 표시되는 이미지는 별도의 메타데이터 문제입니다. Alice는 컬렉션의 tokenURI 동작, 변경 권한, 호스팅 방식 및 라이선스를 확인하고 토큰을 보유하는 것만으로 저작권이나 상업적 사용권이 이전된다고 가정해서는 안 됩니다.

위험

  • 컨트랙트 위험: 버그, 악의적인 업그레이드, 특권 관리자 또는 잘못된 전송 훅으로 토큰이 잠기거나 이동할 수 있습니다.

  • 승인 위험: 컬렉션 전체 setApprovalForAll 또는 침해된 마켓플레이스가 해당 컬렉션의 승인된 모든 토큰을 이동할 수 있습니다.

  • 메타데이터 및 법적 위험: 오프체인 파일은 사라지거나 변경될 수 있고 토큰 소유권이 저작권, 상표권 또는 다른 법적 권리를 자동으로 부여하지 않습니다.

  • 시장 위험: NFT 가격은 크게 변동할 수 있고 유동성이 얇을 수 있으며, 표시된 바닥 가격으로 특정 토큰을 실제로 매도할 수 있다는 보장은 없습니다.

온체인 작업은 일반적으로 되돌릴 수 없습니다. 서명하기 전에 컬렉션 컨트랙트, 수신 주소, 승인, 메타데이터 통제 및 거래 내용을 확인하고 홍보자나 커뮤니티의 주장은 보장이 아니라 검증할 주장으로 취급하세요.

흔한 오해

오해 1: ERC-721은 희소성을 보장한다

표준이 보장하는 것은 하나의 컨트랙트 안에서 토큰을 구별할 수 있다는 점입니다. 발행자는 토큰을 더 민팅하거나 유사한 컬렉션을 배포하거나 여러 식별자가 같은 매체를 가리키게 할 수 있습니다. 희소성은 공급 규칙과 이를 집행하는 권한에 달려 있습니다.

오해 2: NFT에 모든 지식재산권이 포함된다

블록체인이 기록하는 것은 토큰 전송입니다. 저작권, 복제, 상업적 이용, 수정 및 상표권은 컬렉션의 라이선스와 적용 법률에 따라 달라지며 ownerOf에서 추론할 수 없습니다.

오해 3: 마켓플레이스 등록을 취소하면 모든 권한이 사라진다

등록, 그 서명과 만료 시점, 온체인의 approve 또는 setApprovalForAll은 서로 다른 상태입니다. 더 이상 필요하지 않으면 온체인 권한을 별도로 확인하고 취소해야 합니다.

관련 주제

출처

탐색

위키 검색...