NFT 메타데이터

김민석·2022년 7월 22일
1

메타데이터

mata데이터는 일부 "주 데이터"를 설명하는 "보조 데이터"를 나타냅니다.

개발자들이 다양한 용도로 사용하는 모호한 용어이지만 NFT에 대해 이야기할 때 구체적인 의미를 담고 있습니다.

NFT 메타 데이터

NFT의 경우 사진 NFT, "주 데이터"는 이미지 파일입니다.
PNG와 같은 이진 파일 형식일 가능성이 높으며 일반적으로 일부 클라우드/분권 서버에 저장됩니다. 그러면 사진에 대한 matadata(보조 데이터)가 됩니다. 사진의 제목, 설명, 특성, 그리고 가장 중요한 것은 사진이 저장될 수 있는 위치에 관계없이 PNG 파일에 대한 링크입니다.

메타데이터는 다음과 같은 JSON 형식으로 저장됩니다.

지원되는 여러 메타데이터 스키마가 있습니다.
위에 표시된 형식은 OpenSea 메타데이터 표준에 설명된 형식 중 하나를 따릅니다.

토큰 URI

tokenURI 이전 섹션의 스마트 계약 기능을 기억 하십니까? 이 tokenURI 함수는 위에 표시된 것과 같은 메타데이터 JSON 파일의 URI를 반환합니다. 이것이 지갑, 마켓플레이스 및 기타 스마트 계약이 NFT에 대한 이미지를 찾을 위치를 알 수 있는 방법입니다. 먼저 tokenURL 메타 데이터 JSON 파일을 읽는 함수를 호출한 다음 image JSON 파일이 있습니다. 이는 10000개의 개별 JSON 파일을 의미합니다. 이 모든 것이 어디에 저장됩니까?

메타데이터 저장

일반적으로 메타데이터 파일이 저장되는 위치는 3곳입니다.

  • "온체인" - 스마트 계약의 일부로 블록체인이 직접
  • IPFS - 변경 불가능하고 분산된 파일 스토리지 솔루션, https://ipfs.io/
  • 사용자 정의 API - 임의의 데이터를 제공할 수 있는 중앙 집중식 서버

각 옵션을 살펴보면 다음과 같습니다.

온체인

메타데이터 JSON 파일은 스마트 계약의 일부로 저장하거나 생성할 수 있습니다. 일반적으로 블록체인에 데이터를 저장하는 것은 비용이 많이 들기 때문에 이 접근 방식은 그다지 일반적이지 않습니다. 그러나 메타데이터가 비교적 간단하고 즉석에서 생성할 수 있는 프로젝트(ex: root)의 경우 이 접근 방식이 훌륭한 옵션입니다.

함수 tokenURI JSON 파일을 나타내는 유효한 URI를 반환해야 합니다. 메타데이터 필드(제목, 이미지, 속성 등)를 생성한 후 해당 데이터를 base64로 인코딩된 JSON 파일로 변환해야 합니다.

예를 들자면, 이것은 EtherScan에서 Loot 스마트 계약 tokenURI의 토큰 10을 호출할 때의 모습입니다.

위의 데이터를 디코딩하면 다음이 제공됩니다.

uri는 image base64 SVG 파일로도 인코딩됩니다. 이미지조차도 스마트 계약의 일부로 생성됩니다.

IPFS

IPFS는 분산 스토리지 프로토콜입니다. 개념적으로는 Dropbox 또는 Google Drive와 같은 소비자 스토리지 서비스와 유사하지만 모든 파일을 단일 회사가 저장하는 대신 누구나 파일을 저장할 수 있습니다. 저장공간 제공자는 저장공간에 대한 파일 코인을 얻기 때문에 파일 저장에 대한 인센티브를 받습니다.

Dropbox와 비교할 때 IPFS를 NFT 관련 파일에 저장하게 만드는 몇 가지 기능이 있습니다.

  • 불변 - IPFS에 저장된 파일은 변경할 수 없습니다. IFPS uri는 항상 정확히 동일한 파일 데이터를 참조합니다. 파일을 저장하는 공급자가 없으면 파일이 잠재적으로 사라질 수 있습니다.
  • 무허가 - 블록체인과 마찬가지로 IPFS는 무허가 시스템입니다. 누구나 파일을 저장하고 네트워크의 다른 피어와 통신할 수 있으며, 중앙 집중식기관은 파일을 삭제할 수 없습니다. (NFT 수집가는 NFT가 검열되는 것에 대해 걱정할 필요가 없습니다)

또한 IPFS는 OpenSea와 같은 플렛폼에서 지원하는 자체 ipfs:// uri 체계를 도입합니다.
예를 들어 Bored Ape Yacht Club을 다시 살펴보면 다음과 같습니다. tokenURI 토큰 10에 대한 함수를 호출하면 ipfs:// uri가 반환됩니다.

브라우저 주소 표시줄에 ipfs://QmeSjSinHpPnmXmspMjwiXyN6zS4E9zccariGR3jxcaWtq/10를 입력하면 아무일도 일어나지 않을 것입니다. Brave와 같은 일부 브라우저는 기본적으로 IPFS를 지원하며 파일을 표시하지만 대부분은 그렇지 않습니다. 그러나 IPFS 뒤에 있는 조직은 https:// 브라우저에서 파일에 액세스하기 위한 서버를 호스팅 합니다.
(이 경우 https://ipfs.io/ipfs/QmeSjSinHpPnmXmspMjwiXyN6zS4E9zccariGR3jxcaWtq/10)
그렇게 하면 친숙한 JSON 형식을 볼 수 있습니다.

또한 이 uri가 숫자 "10"으로 끝나는 것을 알 수 있습니다. 0에서 9999 사이의 다른 숫자로 변경할 수 있습니다. URI가 동일한 문자열로 시작되도록 하기 위해 10000개의 모든 메타데이터 파일이 단일 폴도의 IPFS에 함께 저장됩니다.

profile
web development 주니어

0개의 댓글