2022 07 01
2022-07-01¶
IPFS¶
- 참고: http://wiki.hash.kr/index.php/IPFS
- 참고: https://www.lgcns.com/blog/it-trend/31193/
- InterPlanetary File System
- 분산형 파일 시스템에 데이터를 저장하고 인터넷으로 공유하기 위한 프로토콜
- P2P 방식으로 대용량 파일과 데이터를 공유하기 위해 사용함
- HTTP 방식은 데이터 위치한 주소로 가서 받아오는 방식
- IPFS는 데이터의 내용을 변환한 해시값을 이용해 전 세계 여러 컴퓨터에 분산 저장되어 있는 컨텐츠를 찾아 데이터를 조가으로 잘게 나눠 빠른 속도로 가져온 후 합치는 방식
- vs HTTP
- 위치 기반의 중앙화 구조
- 데이터는 특정 기업이나 주체가 관리
- 중앙화 방식의 구조적 단점과 검열 문제를 극복하고자 ipfs 등장
- IPFS
- 데이터를 수많은 노드에 호스팅하고 백업할 수 있는 P2P 분산 네트워크
- 수많은 공간에 데이터가 분산/복제/저장
- HTTP를 대체할 수 있는 아이디어
- IPFS에 저장된 데이터 작게 분할되어 여러 컴퓨터와 저장 공간 등에 분산됨
- IPFS에서 시스템이 요청 받으면 노드가 응답을 시작하는 네트워크로 해당 요청 보냄
- 네트워크 전체에서 사용 가능한 데이터를 전달할 수 있는 노드의 응답 받음
- "SHA-256" 해시를 사용해 데이터 보호
- IPFS에서 저장 공간은 완전히 분산되어 있고 높은 확장성과 효율성을 보여줄 수 있음 => 기존 구조의 단점을 보완할 수 있다
- 항상 데이터에 접근해 불러올 수 있고, 보안 관련 공격에도 강함
- Questions
- 얼마나 많은 사용자가 노드를 다운로드하고 운영하려고 할런지?
- 친숙하고 표준적인 기존의 웹 URL 대신 투박한 식별자 링크가 선호가 될런지?
NFT at Klaytn¶
- 참고: https://www.youtube.com/watch?v=_9EyLqGmQYw
- NFT 발행의 과정
- JSON, image 조합을 통해 nft 메타데이터를 제작한다
- 해당 정보를 ipfs에 저장
- smart contract KIP-17 (ERC-721)에 배포
- 여기에 화이트리스트, 민팅, 에어드랍 등의 기능을 커스텀 코드로 제작할 수 있음
- Klaytn에 배포
- Minting 하기
- Opensea 규격에 맞게 NFT가 블록체인에 올라와있다면, 이를 Opensea에서 판매/구경 가능
- NFT 저장소 with IPFS
- NFT Storage: https://nft.storage/
- Pinata: https://www.pinata.cloud/
- NFT 민팅?
- "발행"
- NFT가 먼저 민팅 된 후에 판매되던 초창기... => 현재는 NFT 민팅 과정에 구매자가 참여하여 민팅 가격 지불하고 개인지갑으로 NFT 받음
- "발매 당시 NFT 구매"
- 요즘
- ①: NFT 민팅(발행)에 구매자가 비용을 지불하며 참여 ②: NFT 민팅(발행)과 동시에 민팅 참여자에게 NFT 전송
- 초창기
- ①: 판매자가 NFT를 우선 민팅(발행) ②: 민팅된 NFT를 판매 등록 ③: 구매자가 해당 NFT 구매
- NFT 컨트랙트 배포
- Klaytn IDE: https://ide.klaytn.foundation/
- 컨트랙트 작성하기: KIP17 규격 따를 것
NFT 메타데이터¶
- 참고: https://docs.opensea.io/docs/metadata-standards
- 개요
- 디지털 자산은 token_id와 같은 unique indentifier로 대표된다
- 또 다른 프로퍼티들 name, description, image 등을 가진다
- token URI
- HTTP 혹은 IPFS URL을 가질 것
- 해당 URL은 JSON blob을 반환할 것
- Metadata 구조
- 오픈씨에서 지원하는 메타데이터의 정보들
- image: 이미지 URL
- image_data: Raw SVG 이미지 데이터
- external_url: 자산의 이미지를 오픈씨를 통해 볼 수 있도록 하는 URL
- description: 아이템 설명
- name: 아이템 이름
- attributes: 아이템 속성 (오픈씨에서 나타남)
- background_color: 오픈씨의 배경색
- animation_url: GLTF, GLB, WEBM, MP4, M4V, OGV, OGG, MP3, WAV, OGA 등등
- youtube_url: youtube 비디오에 대함
- Attributes