본문 바로가기

Programmer Jinyo/Developing

실전압축NFT지식전달


투명한 기부를 하고싶다면 이 링크로 와보세요! 🥰 (클릭!)

바이낸스(₿) 수수료 평생 20% 할인받는 링크로 가입하기! 🔥 (클릭!)

본 글의 목적

NFT 관련 기술적인 이슈들을 재빠르게 훑는것이 목표입니다. 키워드에 대해서 실무자가 아닌 사람이 알아야 할 정도 까지만 빠르게 훑고 지나갑니다.

 

블록체인

블록체인이 기존의 것들을 어떤 개념으로 바꿨는지만 빠르게 알아봅시다. 쉽게 설명하기 위해서 개념적으로 엄밀히 말하면 틀릴 수 있는 내용들을 (그치만 몰라도 상관없는) 우다다다 써 놓겠습니다. 궁금하면 물어보십씨오.

기존의 보안은 특정 컴퓨터 한개가 모든 데이터를 들고있고, 그 컴퓨터에 외부에서 해킹이 되는 것을 방지하는 것으로 데이터 위/변조를 막았습니다. 쉽게 말해, 내 은행 잔고가 100만원 있다는 정보를 은행 안에 꽁꽁 숨겨진 컴퓨터 안에 저장 되게 만들어서 변경 불가능 하게 바꾸었습니다.

블록체인이 보안을 유지하기 위해 바꾼 것은 서로 다른 N개의 컴퓨터에 모든 정보를 복사하기로 합니다. 그리고 N개의 컴퓨터가 실시간으로 정보의 변화를 공유하고, 합의를 이뤄서 진실의 근원을 모두가 일치시킵니다. 즉, 내가 철수한테 10만원을 받았다는 사실을 N개의 컴퓨터가 모두 공유하고, 이 정보가 일치하는지 N개의 컴퓨터가 서로 확인 한 후에, OK! 하면 그걸 사실로 인정하기로 한 것입니다. 이를 통해서 우리는 N개의 컴퓨터를 동시에 해킹하지 못하면 정보를 변경할 수 없게 되었습니다. 

 

코인

이 과정을 통해 서로의 돈을 옮기려면 N개의 컴퓨터가 필요합니다. 사토시는 임의의 참여자들에게 정보를 복사해주고, 진실의 근원을 맞추는 행위를 한 노동자들(혹은 컴퓨터들)에게 비트코인이라는 보상을 주기로 합니다. 그래서 P만큼의 코인A라는 지갑에 들어가 있다 라는 개념이 생깁니다. 직관적으로 말하자면, 채굴자는 컴퓨팅 리소스를 제공하고 코인을 받습니다. 그냥 쉽게, 내 컴퓨터 갈아서 전기 쓰면 코인이 생깁니다.

 

NFT

NFT는 Non-Fungible Token의 줄임 말인걸 언급은 한번 하고 넘어가겠습니다. 대체 불가능 토큰이라는 건데, 기존 코인들은 블록체인 상에서 P만큼의 코인A라는 지갑에 들어가 있다. 라는 식으로 정보를 저장합니다. 이 때, P만큼이라는 수량을 가지고 있다는 정보는 저장하지만, 이것이 몇 번째로 만들어진 코인인지가 중요하지 않고 A라는 지갑의 코인 1과 B라는 지갑의 코인 1이 같은 가치를 가집니다. NFT는 코인 설계를 조금 다르게 합니다. 다음의 두가지 규칙을 따릅니다.

1. 코인은 쪼갤 수 없습니다.

2. 코인 한개 한개가 서로 구분이 가능합니다. (서로 다른 속성을 줄 수 있게 됩니다.)

이러한 속성 때문에 우리는 코인 A와 B가 서로 다름을 인식할 수 있습니다. 코인 A와 B에 서로 다른 정보를 집어넣을 수도 있습니다.

 

이를 통한 장점은

1. 유일성을 가지는 디지털 자산의 생성이 쉬워집니다. 따라서 누군가가 마음대로 내 디지털 자산을 복제를 할 수 없습니다.

2. 디지털 자산의 소유 또한 명확 해 지며, 전송이 확실하기 때문에 그 것들의 거래도 쉬워집니다. 

 

참고만 하세요~

 

여러 체인

우리가 위에서 제일 상징적인 비트코인을 예시로 얘기를 했는데, 사실 우리가 NFT를 발행하는 곳은 주로 이더, 솔라나, 클레이튼 등등의 체인 입니다. 체인이 다르다는 말은 무엇일까요? 아까 위에서 서로 다른 N개의 컴퓨터에 모든 정보를 복사하기로 합니다. 라고 말했습니다. 컴퓨터 1,2,3정보 A를 복사해 놓으면 그걸 체인 A라고 부르겠습니다. 그런데 만약 컴퓨터 4,5,6정보 B를 복사해 놓으면 그건 또 다른 체인B 라고 볼 수 있지 않을까요? 

정보를 복사하는 방법이나, 어떤걸 저장해놓느냐가 조금 다르긴 하지만 기본적으로 그렇게 만들어진 체인들을 우리는 Layer1 체인이라고 부르고 (사실 알 필요 없습니다) 그래서 이더리움 기반 NFT, 솔라나 기반 NFT, 클레이튼 기반 NFT가 서로 다른 지갑에 나뉘는 것입니다.

 

ERC-??? 

ERC-??? 는 Ethereum Request for Comments라는 단어의 약자라서 ERC라고 부릅니다. 이더리움 체인 위에서 어떤 정보를 저장할 때, 이 정보를 저장하는 것을 위해서 표준을 지킨 자료 형태들을 의미합니다. 뭔 소리인가 싶을텐데, 우리가 송금한 정보를 이더리움 체인 위에다가 "철수에게 500원 줬고, 가스비로 200원 지불함. 잔액 1400원 - (루피)" 이런식으로 저장 할 수도 있는 반면 "철수 +500, 루피 -200" 이렇게만 기록할 수도 있습니다. 컴퓨터는 여러가지 포맷을 수려하게 해석하는 법을 잘 모릅니다. 그래서 형식을 맞춰서 저장 해 주어야 합니다. 그 외에도 누가 누구한테 NFT를 어떻게 보냈는지, NFT 자체는 1개 단위로만 거래가 가능하다는 규칙이라던지, 이런 여러가지 규칙에 맞춘 자료 통신 방법들을 ERC 거시기 짜시기라고 부릅니다.

우리는 보통 3가지정도만 알면 되는데요, ERC-20, ERC-721, ERC-1155입니다.

우선 어떤 회사에서 그냥 토큰을 만들어서 거래하고 싶다고 해 봅시다. 그건 ERC-20 표준을 따릅니다.

그리고 개수가 1/1인 NFT를 만들 때는 ERC-721을 따릅니다.

그리고 개수가 여러개인 NFT를 만들 때는 ERC-1155를 따릅니다.

 

참고만 하세요~

IPFS

일반적인 사용자들이 NFT를 처음 구매할 때 착각하는 게 있는데, 내 지갑에 NFT의 '이미지'의 소유권 까지 같이 저장된다고 생각하는 것입니다. 그것은 사실이 아니고, (체인 위에다가는 너무 큰 용량을 저장할 수 없습니다. 공공재라서...) 거의 대부분의 경우 IPFS라는 것을 사용해서 이미지(를 포함한 자료들)를 업로드 하고 그 업로드 된 자료를 볼 수 있는 URL(이라고 하겠습니다) 을 체인에 저장합니다.

엄청 중요하지는 않으니까, 아래에 인용으로 남겨 놓겠습니다.

IPFS는 파일과 아이디(ID)로 처리되는 하이퍼 미디어 프로토콜로서, 동일한 파일 시스템으로 모든 컴퓨터 장치를 연결하려고 만든 분산 파일 시스템이다
http://wiki.hash.kr/index.php/IPFS

(꼭 IPFS가 아니어도 되고 그냥 구글 포토 같은 곳에 업로드 한 이미지를 쓰기도 합니다.)

 

 

마치며

궁금한거 더 없지요? (인자한 미소)

 

 

이미지 출처 : http://wiki.hash.kr/index.php/%EB%8C%80%EC%B2%B4%EB%B6%88%EA%B0%80%ED%86%A0%ED%81%B0