목차
1. NFT란?
2. NFT 구조
3. IPFS
1. NFT란?
NFT는 Non-Fungible Token의 약자로 대체 불가능한 토큰으로 고유의 값을 갖는 것이 특징이다.
대체 불가능한 토큰이기 때문에 디지털 자산의 소유권을 보장할 수 있다.
'대체 불가능한'의 의미는 토큰 안에 있는 내용이 대체 불가능한 것이 아니라, 그 토큰 자체가 고유하다는 것을 의미한다. 조금 더 쉽게 말하자면 NFT는 객체이다.
javascript의 문법을 이용해서 이해해 보자면
const a = {}
const b = {}
console.log(a === b) // false
빈 객체 2개는 서로 같지 않다.
내용이 빈 값으로 같지만 두 개의 객체는 서로 다른 메모리 주소를 가지고 있기 때문에 같지 않다는 값이 나온다.
NFT는 위의 예시와 유사한 개념을 가지고 있다. 각각의 NFT는 각각 다른 객체의 형태를 가지고 있기 때문에 설령 안에 있는 내용이 같은 값이더라도 두 개는 다른 값을 의미한다. 그렇게 때문에 고유성을 갖고 대체 불가능하다는 의미를 갖게 되는 것이다.
2. NFT 구조
NFT로 많이 알고 있는 분야가 그림 분야이다. 하지만 NFT에는 어떠한 데이터도 포함될 수 있다.
그림을 포함하는 NFT의 구조를 보면
const nft = {
tokenId: "0x1234", // 고유 값
url: "https://example.com/data.json",
}
이런 식으로 간단한 구조로 되어있다. 이미지나 비디오, 음악 파일 등 어떠한 데이터도 들어올 수 있지만, 직접적으로 데이터를 객체에 포함시키면 한 번의 트렌잭션에 너무 많은 내용이기 때문에, 가스소비가 심하게 될 것이다. 그래서 다른 곳에 데이터를 저장하고, 그 저장한 데이터의 url을 포함하는 객체로 nft를 만든다.
데이터를 저장하는 곳은 일반적인 DB 같은 곳에서 저장하고 url만 가져와도 되지만 일반적인 DB를 이용하는 경우 탈중앙화라고 보기 어렵다. 그래서 분산 파일 시스템(IPFS)에 저장을 하고 url을 이용해서 요청하고 데이터를 가져올 수 있다.
3. IPFS
NFT에 들어갈 수 있는 여러 종류의 데이터를 직접적으로 nft객체에 담는 것이 아닌 외부 저장소를 이용하는데 IPFS를 이용하여서 해당 데이터의 URL 또는 해시값을 NFT객체에 담는다.
IPFS(분산 파일 시스템)을 이용해서 데이터를 저장하는데, IPFS는 데이터를 P2P 네트워크 상에 분산저장하는 프로토콜이다.
IPFS도 P2P 네트워크이기 때문에 P2P네트워크에 참여하기 위해서 직접 노드를 이용해서 참여해서 저장을 해야 한다.
하지만 블록체인과 비슷하게 관리를 위해서 많은 시간과 자원이 들기 때문에 블록체인의 infura와 비슷한 개념으로 IPFS Provider인 PINATA를 이용한다.
PINATA를 통해 파일을 업로드하고, IPFS네트워크에 저장할 수 있고, 고유한 URL을 생성하여 URL을 통해서 저장된 데이터에 접근할 수 있다. 이로 인해 탈중앙화된 데이터 저장과 공유가 가능하다.
'💠BlockChain💠' 카테고리의 다른 글
NFT(Non-Fungible Token) 기초 (0) | 2023.06.02 |
---|---|
ERC20 표준 메서드 종류 및 역할 (0) | 2023.06.01 |
Ethereum - 사과가게 만들기 (0) | 2023.05.30 |
Blockchain - Layer2 (레이어2) (0) | 2023.05.30 |
Solidity (솔리디티) 문법과 Smart Contract 생성자 함수 (2) | 2023.05.27 |
댓글