다이나믹 NFT 4(NFT structure)
NFT structure for dNFT
지난번 글을 통해서 NFT를 살펴보기 위한 ERC-721/1155 를 알아 봤고 ‘대체불가능’ 이라는 용어의 뜻 대해 좀더 살펴봤다.
아래의 그림을 보면서 한번 더 기억해보는걸로!
이제는 NFT의 뜻도 알아봤으니 NFT의 구성요소 (구조) 를 알아보자!
1. NFT의 구성요소(구조)
NFT는 스마트 컨트렉트와 그 스마트 컨트렉트 안에 포함하고 있는 여러 정보들로 구성되어있다. 그 정보들에는 소유자의 정보 뿐 아니라 특성과 이름 NFT 설명 그리고 이미지(uri)혹은 이미지 원본 등이 있다.
이렇게 NFT가 가지고 있는 정보들을 불러와 Opensea 와 같은 거래소에서 이미지, NFT 이름, 그리고 NF 설명들을 화면에 띄워 줄 수 있는 것이다.
ERC -721을 기준으로 만들어진 NFT의 구성요소를 살펴보자면
스마트컨트렉트 안에
소유자를 조회 할 수 있는 기능과 그리고 메타데이터가 있다 .
이는 오픈씨 스텐다드이며 이에 담긴 정보들을 기반으로 오픈씨에서 거래하는 NFT들을 불러올 수있는것이다.
메타데이터에 이미지URI나 이미지를 직접 올릴 수 있다고 했는데 우리가 알고 있는 대부분의 NFT 프로젝트들은 이미지 원본을 올리는게 아닌 URI 올려 놓고 이 URI 에 연결되어 있는 이미지를 불러오는 것이다.
그렇다면 왜 원본을 저장하지 않고 URI를 사용할까?
흔히 알려진 이유로는 이더리움 네트워크의 과부하와 비싼 가스비를 예방하고자 한다고 하는데 그럼 실제로 얼마 정도의 비용이 드는지 알아보자.
2. 이더리움과 블록체인의 한계?
실제로 블록체인 네트워크에서의 활동에는 수수료, 가스비와 같은 비용을 필요로 한다. 우리가 편하게 사용하고 있는 인터넷 수준의 속도와 비용을 기대하기에는 아직 무리가 있다.
NFT의 첫 붐을 이라고 할 수 있는 크립토 키티 같은 경우 이더리움 네트워크의 15%를 차지하면서 이더리움 네트워크를 과부하 시키는 문제? 도 일으킨 적이 있다. 지난번 ERC에 대해 살펴볼때 알게 된 각각의 NFT를 하나씩 컨트렉에 실어야 하는 단점을 해결하기 위해 ERC-1155가 등장 한것 처럼 이더리움 네트워크에서 가스비 감소와 효율성 증대 를 위한 노력은 계속되고 있다.
그런데 만약 NFT 이미지를 URI를 통해 불러오는 것이 아닌 직접 온체인에 업로드 한다고 하면 어떤 일이 발생할까?
산술적으로 아주 정확하고 맞아 떨어지는 계산은 아니지만 2023년 2월 을 기준으로 이더리움 네트워크에 8byte 용량의 이미지를 업로드 하기 위한 비용은 한화로 8천원 정도 든다.
이를 기준으로 80kb인 위의 이미지를 이더리움 온체인에 담는데 드는 비용은 무려 8000만원이다. 이러니 어떻게 이미지 원본을 이더리움 온체인에 올릴수 있다는 말인가…
URI가 아니라 원본을 올리는 방법은 아래와 같은데 참고
비용적인 측면 효율적인 측면을 생각했을때 요즘 NFT 프로젝트들은 이미지 원본을 온체인에 올리지 않는다.
그래도 일부 온체인에 직접 이미지를 올린 프로젝트들이 있긴 한데
바로 그 유명한 크립토 펑크이다.
2–1 크립토펑크
크립토펑크 시리즈는 24*24 사이즈의 8 비트(bits) 픽셀아트 이미지가 메타데이터에 직접 올라간다. 크립토 펑크도 이미지가 각각 블록체인에 저장되기에는 너무 크기 때문에 1만명의 펑크를 모두 포함한 1개의 이미지만 온체인에 업로드 했다.
크립토 펑크는 NFT가 아니다?
정확히 이야기 하자면 NFT가 아니라기 보다
ERC-721이 아니라는 점이다. 크립토 펑크는 ERC-20 으로 분류 된다.
애초에 크립토 펑크가 나올때는 ERC-721가 정의 되기 전 이었기 때문이다.
ERC-20으로 만들어진 NFT라고 생각할 수 있다.
크립토 펑크에 대해서는 나중에 기회가 될 때 자세히 다뤄보려고 한다.
2–2 URI (중앙서버/클라우드 스토리지 / IPFS)
URI로 불러온 이미지의 원본은 위의 그림처럼
중앙서버 , 클라우드 스토리지, 그리고 IPFS 를 통해 저장 되어 있는데 각자 장단점이 존재하겠지만
요즘은 블록체인의 ‘탈중앙화’ 라는 것에 위배되지 않도록 IPFS를 많이 활용하는 추세이다.
IPFS가 뭔지 까지 다루게 되면 6부작으로 늘어날거 같아서
탈중앙 스토리지 서비스? 정도다 라고만 설명하고 넘어가려고 한다.
중앙서버와 클라우드 스토리지의 단점을 보안해 주는 역할을 한다.
중앙서버에 올라와 있는 이미지 같은 경우
NFT에 있는 URI는 바꿀 수 없어도 URI에 올라와 있는 이미지 자체를 바꾸어 버리면 해당 NFT의 이미지가 바뀌는 일이 일어나게 된다.
클라우드 스토리지도 마찬가지로 해당 서비스에 접근 가능한 권한자가 URI에 있는 이미지를 바꾸거나 삭제 혹은 해당 프로젝트가 클라우스 서비스 요금을 미납해서 이미지를 더 이상 불러오지 못하게 될 수도 있다.
이미지 원본이 아닌
URI를 메타데이터에 넣어서 이미지를 불러올 경우
즉 중앙화된 서버를 통해서는 러그풀이 일어날 수도
이미지를 더이상 불러오지 못할 수도 있다.
그렇다고 이미지 원본 온체인에 올리자니 비용이 어마무시하고
그래서 선택 되는 방법이 IPFS 다.
아까 말했던 것 처럼 URI 를 중앙화된 서버나 클라우드를 이용할 때 에는 위의 그림처럼과 같은 문제가 발생할 수 도 있다.
실제 메타데이터속 URI의 이미지 변경사례
실타레라는 국내 NFT p2e프로젝트 에서 메타데이터를 이용해 카드 리빌전 높은 티어의 카드를 선취매 한 사례가 있다.
팀에서 이 사실을 인지한 이후 부정한 방법으로 취득한 NFT가 향후 비싼 가격에 시장에서 거래 될 것을 방지 하기 위해 해커가 선취매한 토큰 메타데이터 URI의 이미지를 높은 티어에서 낮은 티어로 바꿔 버렸다.
이는 블록체인의 탈중앙성을 저해 했다며 문제제기가 되기도 했다.
이제 진짜 dNFT를 알기 위한 사전지식이 다 끝났다고 생각한다.
이제 알게된 것들을 바탕으로 dNFT를 잘 이해할 수 있을 것 같다.
이번 글을 한번에 요약해주는 자료를 다시 보면서 이번글도 마무리 해보자.