자습서: Solidity를 사용하여 3분 안에 자신만의 NFT를 생성하는 방법 알아보기
참조 기사: Solidity로 NFT를 생성하는 방법
패트릭 콜린스
편곡 및 편곡: Chen Zou
NFT(Non-Fungible Tokens,Non-homogeneous tokens)는 스마트 계약 분야에서 가장 밝은 별 중 하나이며 ERC20과 유사한 토큰 표준입니다. 2020년이 DeFi의 해라면 2021년의 대부분은 NFT에 속할 것입니다.
NFT(Non-Fungible)는 고유하다는 의미이며, 이는 모두 대체 가능한 토큰인 ERC20 토큰과 매우 다릅니다. 균질화의 예로, 어떤 지폐를 사용하든 상관없이 1달러 지폐는 1달러의 가치가 있습니다. 1달러 지폐의 일련번호는 다를 수 있지만 어쨌든 1달러의 가치가 있기 때문에 지폐를 교환할 수 있습니다.
첫 번째 레벨 제목
NFT의 개발 진행 상황
가장 먼저 분명한 것은 NFT가 무한한 잠재력을 가지고 있다는 것입니다. 올해 2월 Axie Infinity는 888.25 ETH에 9개의 플롯을 판매했습니다. (현재 가치 약 391만 달러)
첫 번째 레벨 제목
기준
위에서 언급했듯이 NFT는 ERC721 토큰 표준으로 시작하며 일부 조정을 통해 ERC20과 유사한 구문을 갖습니다.
계약이 시스템에서 NFT로 인식되려면 이 표준을 따르기만 하면 됩니다. 우리는 이 표준을 계약으로 가져오므로 새 계약을 체결할 때마다 바퀴를 재발명할 필요가 없습니다.
NFT에는 잠시 후에 논의할 tokenURI 변수가 있습니다. NFT에는 소유자에 대한 tokenId 매핑이 있으며 각 토큰에는 자체 토큰이 있습니다."소유자". 이는 잔액에 대한 주소 매핑만 있는 ERC20과 다릅니다. ERC721은 여전히 사람들이 토큰을 전송하고 토큰에 대한 권한을 설정하는 등의 작업을 허용합니다. 일반적으로 이것은 경량 표준이므로 우리가 원하는 모든 것을 만들 수 있습니다.
여기에서 상황이 정말 달라지기 시작합니다. 바로 메타데이터입니다. OpenSea(최고의 NFT 마켓플레이스)에 들어가면 많은 사진을 볼 수 있습니다. 따라서 NFT는 블록체인에 있으므로 모든 데이터는 체인에 있어야 합니다. 글쎄요.
데이터를 온체인에 저장하는 것은 매우 비쌀 수 있으며 아트웍의 파일 크기는 종종 너무 작지 않습니다. 이더리움과 스마트 컨트랙트 개발자들은 1MB의 이미지를 업로드하는 것만으로도 신속하게 업무를 중단할 수 있다는 사실을 깨달았기 때문에 많은 양의 데이터를 저장하지 않고도 작업을 표시할 수 있는 방법을 만들어야 했습니다.
해결 방법으로 대부분의 NFT에는 소위 tokenURI가 있습니다. 이것은 NFT의 가시성 분야에서 사용되는 전역적으로 고유한 식별자입니다. 이를 통해 NFT에 시각 효과를 더 쉽게 추가할 수 있습니다. URI는 HTTPS API 호출, IPFS를 통한 것 또는 다른 종류의 고유 식별자일 수 있는 Uniform Resource Identifier입니다. 이 메타데이터는 다음과 같습니다.
JSON 파일 구조는 다음과 같습니다.
name
description
image
attributes
이러한 파일은 일반적으로 API 또는 IPFS에 저장됩니다.
자, 갑자기 의심이 들 수도 있습니다."첫 번째 레벨 제목"
온체인 메타데이터 VS 오프체인 메타데이터
NFT가 상상할 수 있는 모든 흥미로운 것을 갖기를 원한다면 NFT의 온체인 속성이 필수입니다. 몇 가지 예를 들자면, 그들에게 포켓몬과 같은 전투 통계, 일종의 희귀도 통계를 제공하거나 온체인 암호화된 희소성을 부여하려는 경우입니다. 이러한 속성은 온체인이어야 합니다. (이것들은 추적 가능하고 위조 가능하며 대중에게 공개되어야 하기 때문에)
현재 NFT 플랫폼에는 온체인 속성을 시각화하는 좋은 방법이 없으므로 발행된 NFT로 tokenURI를 생성하기만 하면 됩니다.
tokenURI의 경우 가장 널리 사용되는 방법 중 하나는 IPFS를 사용하여 데이터를 저장하는 것입니다. 거기에 데이터를 업로드한 다음 고정 서비스를 사용하여 데이터가 영원히 유지되도록 합니다. 스마트 계약 플랫폼과 스토리지 측면 간의 더 많은 상호 작용을 기대합니다.
팁: 다음은 나 자신과 대화하는 시간입니다. 앞쪽에는 스마트 컨트랙트 플랫폼, 중간에는 체인링크, 뒤쪽에는 dStorage...하지만 그건 또 다른 주제입니다.
솔직히 처음에는 NFT가 멍청하다고 생각했습니다. 그 외에 예술은 바보들이 하는 짓이라고 생각했는데... 비주얼이 좋은 음악, 영화, 게임을 좋아하는 저로서는 위선적이라고 할 수 있겠네요. NFT는 로열티와 진정성을 둘러싼 예술계의 오랜 문제점을 해결합니다. 이제 분산 감사 서비스가 있습니다. 누군가의 작품을 사용하고 싶다면 해당 작품에 대한 모든 것을 온체인에서 볼 수 있습니다.
Nyan cat의 원래 제작자는 NFT 버전을 300 ETH에 판매했습니다. 이것은 디지털 희소성이 가치가 있음을 증명합니다.
놀라운 것을 창조하면 고유한 가치가 있습니다. 그렇기 때문에 매우 희귀한 수집품을 만들 수 있기 때문에 Chainlink VRF(Chainlink의 난수 생성 서비스) NFT를 소유하는 것이 매우 중요하다고 생각합니다. 나는 누군가가 이 플랫폼에서 Pokemon 유형의 게임을 만들기를 고대하고 있습니다. 이러한 NFT는 영원히 지속됩니다.
첫 번째 레벨 제목
간단한 NFT 계약
이것은 NFT 계약을 사용하는 가장 쉬운 방법입니다. 여기에는 Truffle, Hardhat 및 Brownie에 대한 문법이 포함됩니다. 저는 OpenZepplin 계약을 사용하는 것을 좋아합니다. 매우 잘 구조화되어 있고 일반적으로 바로 작업을 시작하는 데 필요한 모든 도구가 있기 때문입니다. 미리 설치해야 합니다.
npm install @openzeppelin/contracts
첫 번째 레벨 제목
NFT 계약의 고급 버전
이 NFT 계약에서 우리는 Chainlink VRF를 사용하여 NFT에 임의의 상태를 제공합니다. 이 경우 무작위성을 사용하여 개에게 무작위 품종을 부여합니다. 이번에 createCollectible을 호출하면 실제로 Chainlink Oracle에 암호로 입증된 난수를 반환하라는 요청을 보내는 것입니다. 이로써 게임의 공정성을 훼손할 수 있는 '블랙박스 조작'은 없을 것입니다. 이 요청은 비동기식이며 체인링크 오라클이 nonce로 두 번째 트랜잭션을 수행할 때까지 기다려야 합니다.
요약하다:
요약하다:
이 기사는 Bitpush.News의 승인을 받아 복제되었습니다.
이 기사는 Bitpush.News의 승인을 받아 복제되었습니다.


