brunch

You can make anything
by writing

C.S.Lewis

by 바이너리 May 05. 2022

NFT와 스마트컨트랙트

디지털 자산 관리의 새로운 패러다임



이번 글에서는 비트코인과 같은 가상화폐와 NFT와 같이 요 근래 가장 핫했던 녀석들의 기반이 되는 기술인 블록체인 기술 안에서 NFT 거래, 금융거래, 부동산 계약 등 다양한 계약을 디지털 형태의 계약으로 체결하고 이행하는 "스마트컨트랙트"에 관해 설명할 것이다.


스마트컨트랙트 관련 사전 지식이 전혀 없는 분들이나 전공자가 아닌 분들도 이해할 수 있도록 최대한 쉽게 글을 쓰려고 노력하겠지만 아무래도 한계가 있다 보니 스마트컨트랙트에 대해 좀 더 깊게 이해하고 싶은 분들은 이 글을 읽기 전에 내가 얼마 전에 올린 NFT(링크)블록체인(링크) 관련 내용을 설명하는 글을 먼저 읽고 오길 바란다.


자 그럼 이제부터 스마트컨트랙트가 탄생한 배경부터 개념 그리고  NFT와 같은 블록체인 생태계에서 스마트컨트랙트의 역할과 중요성 등을 설명하도록 하겠다.





1. 스마트 컨트랙트 탄생 배경


2009년 1월, 세상을 엄청난 변화와 광기로 물들게 만든 최초의 암호화폐가 세상에 첫 발을 내딛다.


( 이미지 출처 : https://bitcoinassociation.net/ )


최초의 암호화폐인 비트코인의 창시자 "사토시 나카모토"라는 가명을 쓴 사람이 2008년 11월에 <비트코인 : 개인 대 개인의 전자화폐 시스템> 이라는 9쪽짜리 논문을 작성해 수백 명의 암호학자 전문가들에게 전자우편을 통해 블록체인 기술을 적용한 전자화폐 시스템을 처음 제안하였고 2009년 1월, 사토시 나카모토는 자신의 제안(논문)을 구현한 블록체인 기술 기반 전자화폐시스템인 "비트코인"의 최초 블록(제네시스)을 생성하면서 세상에 첫발을 내디뎠다.


과거에 골드러시가 있었다면 현대엔 코인러시가 있다.

내가 굳이 설명 안 해도 비트코인이라는 존재와 파급력은 국내뿐만 아니라 전 세계 대부분의 사람들이 알고 있을 거라고 생각한다. 비트코인이 처음으로 상거래에 이용된 2010년 5월 22일, 비트코인 커뮤니티는 10,000 비트코인과 피자 두 판을 교환한 피자데이로 기념했던 시절도 있었지만 지금은 1 비트코인에 피자 4,000 ~ 5,000판 정도를 사 먹을 수 있게 되었다. 그야말로 대략 10년 사이 코인의 성장 속도는 광기, 그 자체였다.


모두가 화성(도지코인 떡상) 가즈아~를 외쳤던 그 당시 ( 이미지 출처:https://www.hankyung.com/ )


어느 순간부터 비트코인 이외에 여러 코인들이 등장하게 되었고, 가격이 하루에 수배~수십 배 왔다 갔다 하는 상식을 뛰어넘는 변동성을 보이며, 헬조선에서 살아가는 젊은이들에게 꿈과 희망을 불어넣어 주기에 충분한 요소를 갖추고 있었다.

이러한 이유로 나를 포함한 내 주변 90% 이상이 코인이라는 존재를 알고 있었고, 그중 절반 이상이 스마트폰에 코인 거래소 어플이 설치되어 있을 정도로 그 관심과 투자 열풍은 엄청났다.


블록체인 기술 기반으로 만들어진 비트코인과 모든 코인들

비트코인과 다른 코인들을 통칭해서 '암호화폐'라 부르고 나도 이제부터 암호화폐라고 표현하겠다.

암호화폐는 우리에게 일반적이고 너무 익숙하게 행하고 있는 '중앙집중화'된 거래형태에 엄청난 변화와 혁신을 제안했고 블록체인 기술로 이를 구현한 방식을 '탈중앙화'라 부른다.



우리가 돈을 거래할 때 은행을 이용하고, 집을 살 때 부동산 중개인을, 차를 구매할 때 자동차 딜러를 통해 구매하듯이 우리는 신뢰할 수 있는 제 3자(중개인)를 통해 거래를 진행해왔다.

우리에게 너무나도 익숙한 중앙집중화된 거래 방식은 몇 가지 문제점이 존재했다.


① 중개 비용이 든다. (코인 거래도 해당하지만 어쨌든..)
② 중앙 기관을 100% 신뢰할 수 있는가? (무능, 부패, 사기 등)
③ 해킹 위험(데이터가 한곳에 집중되어있으므로 해커들의 표적이 되기 쉬움)


중앙집중화된 구조는 신뢰를 보증하고 안정성을 유지할 수 있다는 가장 큰 장점이 있지만 반대로 이것이 가장 취약한 약점이 될 수도 있는 문제점이 존재한다. 인간이 모두 정의롭고 선하면 좋겠지만 이런 이상적인 사회는 기대할 수 없기 때문에 항상 리스크는 존재할 수밖에 없다.


그래서 중앙 기관 없이도 신뢰를 보증하고 안정성을 유지하면서 해킹의 위험이 전혀 없는 시스템이 고안되었고 이를 블록체인 기술로 구현을 할 수 있게 되었다. 이를 '탈중앙화' 시스템이라 부른다.


중앙기관 없이도 신뢰를 보증할 수 있는 블록체인 기반의 '탈중앙화시스템'

우리가 현재 정보를 습득하기 위해 인터넷 네트워크를 사용하여 정보를 공유한다.

인터넷과는 별개로 블록체인 또한 블록체인 네트워크가 존재하고 블록체인 네트워크에 참여한 사용자들 간 거래가 이루어진다.


현실 세계에서 돈거래가 발생하면 해당 거래 내역과 잔액 정보는 중앙기관인 은행에서 저장하고 관리한다. 하지만 블록체인에서 코인 거래 등 거래가 발생할 때, 그 거래내역은 블록체인 네트워크 사용자 모두에게 저장되는 구조이다.


모두에게 거래내역이 공유되고 다수의 거래장부가 일치해야만 거래가 이루어지는 구조이므로,

만약 해커가 거래 장부의 금액을 바꾸더라도 블록체인 네트워크 참여자 대다수의 거래내역을 수정해야만 금액 변경이 인정되므로 사실상 전 세계 모든 블록체인 사용자들의 컴퓨팅 파워와 연산력을 뛰어넘는 외계 기술로 완성된 슈퍼~ 슈퍼~초 슈퍼 컴퓨터가 나오지 않는 이상 이론상 해킹은 불가능한 구조이다.


그밖에 암호화 기법 등 다양한 블록체인 보안 기술이 있지만 이 글에서는 생략하도록 하겠다 (궁금하면 블록체인(링크) 관련 내 글을 참고)



암호화폐 거래에만 국한되었던 기존 블록체인 암호화폐의 무궁무진한 가능성을 어젖힌 이더리움과 스마트컨트랙트가 등장하다!


2009년, 비트코인을 시작으로 다양한 암호화폐가 우후죽순 생겨나기 시작하였고 '암호화폐'라는 이름에 걸맞게 이들은 화폐 거래를 위한 거래내역과 잔액 정보만을 취급하였다. 하지만! 2015년에 새로운 블록체인 플랫폼인 이더리움이 등장하게 되었고 이더리움이 '스마트 컨트랙트'라는 새로운 거래 방식을 제안하면서 기존 암호화폐 거래에만 국한되었던 블록체인 기술이 다양한 산업, 서비스와의 콜라보가 가능해지면서 블록체인의 무궁무진한 가능성을 활짝~! 열어젖혔다.


( 이미지 출처 : https://blog.pabii.co.kr/blockchain-smart-contract/ )


비탈릭 부테린(Vitalik Buterin)이라는 러시아 개발자가 비트코인의 여러 단점을 발견하고 이를 보강한 새로운 암호화폐를 구상하게 되었고, 2015년 7월에 '이더리움(Ethereum)'이라는 새로운 암호화폐를 론칭하게 되었다. (이젠 이더리움을 암호화폐라기 보다 블록체인 플랫폼이라고 불러야 할 것 같다)


그리고 현재, 기존 암호화폐 거래에 국한되었던 블록체인 기술을 개선하고 다양한 실험적 어플리케이션을 만들어 내면서 다양한 산업과 서비스로 영역 확장을 성공적으로 이뤄내고 있다.

내 개인적인 생각으로는 이더리움이 앞으로 범용성을 무기로 암호화폐의 가치로도 비트코인을 넘어설 높은 잠재성을 가지고 있으며, 미래의 블록체인 생태계를 주도할 플랫폼이 될 것 같다.

(가장 적절한 예로 NFT를 들 수 있겠다.)

비탈릭 부테린 (이미지 출처: https://news.coinsquare.com/digital-currency/ethereum-co-foun)


여기까지 스마트 컨트랙트의 탄생 배경을 설명했으니 이제부터 본격적으로 스마트 컨트랙트란 무엇인지 설명하도록 하겠다!




2. 스마트 컨트랙트 란?


Smart contracts digitize agreements by turning the terms of an agreement into computer code that automatically executes when the contract terms are met.

- 출처 : 이더리움 공식문서 (링크)


스마트 컨트랙트란 (기존 종이와 서면으로 진행했던) 계약을 컴퓨터 코드로 구현하고 특정 조건이 충족되었을 때 해당 계약을 자동으로 이행하는 일종의 블록체인상에서 진행되는 디지털화된 계약의 형태를 의미한다.


스마트 컨트랙트는 기존 블록체인의 블록 안에 담는 데이터에 암호화폐(비트코인 등) 거래내역만을 담는 것뿐만 아니라 전자 계약서를 포함한 계약 기능을 추가로 포함시킨 것을 뜻한다.

스마트 컨트랙트의 전자계약서는 계약 당사자가 사전에 합의한 내용을 미리 프로그래밍하여 저장한 후 계약 조건이 모두 충족되면 자동으로 계약 내용이 실행되도록 하는 기능이다.



비트코인의 경우 코인을 주고받는 정적인 내용만을 블록에 저장하는 반면, 이더리움 블록에는 코인을 주고받는 정적인 내용은 물론, 계약이 성사될 수 있는 모든 데이터를 포함할 수 있다.

스마트 컨트랙트에 어떤 프로그램 코드를 작성하여 저장하느냐에 따라 그 용도와 적용 범위가 다양해지고 무한대로 확장 가능하다.


이더리움이 스마트컨트랙트를 처음 고안한 플랫폼답게 스마트 컨트랙트를 활용한 블록체인 서비스의 거의 대부분은 이더리움 블록체인 플랫폼을 기반으로 한다. 이더리움 기반의 블록체인 플랫폼 서비스에서 특정 거래를 진행할 경우, 거래내용을 담은 코드 안에 다양한 거래 성립 조건을 설정하고, 거래조건을 만족하면 자동으로 계약이 체결되고 계약조건대로 거래가 실행되고 거래 완료 후 거래 결과를 이더리움 블록체인에 저장하는 방식이다.


솔리디티로 작성된  스마트 컨트랙트 [출금 관련] 예제 코드 중 일부 - ( 코드 출처 : https://solidity-kr.readthedocs.io/ )


스마트컨트랙트는 디지털화된 계약서답게 프로그래밍 코드로 작성된다. 다양한 언어를 지원하기도 하지만 대표적으로 이더리움에서 스마트컨트랙트 작성 및 블록체인 어플리케이션(Dapp) 개발용 언어인 Solidity(솔리디티)가 대표적이다. 솔리디티 언어로 스마트컨트랙트 코드 문서 안에 거래 성립 조건을 코드로 기술하고 블록체인 메인 네트워크로 배포하는 과정을 거친다. 코드 작성과 배포까지의 과정을 직접 하려면 (EVM, Transaction, Bytecode, ABI, Gas Fee, 프로그래밍 문법 등등) 다소 쉽지 않은 기술과 지식들을 요하긴 하지만 스마트컨트랙트를 직접 코드로 구현할 거 아니면 그냥 넘겨도 된다.


(혹시 스마트 컨트랙트를 구현하기 위해 필요한 로드맵을 알고 싶으면 내가 쓴 글(디앱 개발 로드맵)을 한번 참고하길 바란다)


이러한 방식으로 스마트컨트랙트는 부동산 계약, 자동차 매매, 디지털 작품 거래 등 데이터로 표현할 수 있고 저장할 수 있으며, 자동으로 거래가 이행될 수 있는 것이다. 이것은 그 어떤 거래든 웬만한 건 다 스마트 컨트랙트를 통해 구현될 수 있게 된다는 의미이다.

이렇게 스마트 컨트랙트가 도입되면서 블록체인을 기반으로 돌아가는 수많은 어플리케이션이 만들어졌다.

이런 어플리케이션을 '탈중앙화 분산 어플리케이션(Decentralized Application)'이라고 하며 보통 줄여서 디앱(Dapp)이라고 불린다.


( 이미지 출처 : https://coincode.kr/archives/9710/ )


디앱은 블록체인 위에서 개발된 어플리케이션이기 때문에 블록체인이 OS라고 생각하면 된다. 또한 디앱은 블록체인의 특성(분산화, 탈중앙화, 익명성 등)의 특성을 고스란히 가지고 있다.

현재 이더리움을 주축으로 이오스, 스팀 등 스마트 컨트랙트를 포함한 블록체인 플랫폼에서 개발되고 돌아가는 모든 디앱을 합하면 약 3,000 개가 존재한다고 한다.


어쨌든 이더리움의 스마트컨트랙트를 통해 단순 암호화폐 거래로만 국한되었던 블록체인 기술을 다양한 산업과 비즈니스에 적용시킬 수 있는 가능성을 열었으며, 그중 가장 활발하게 거래되고 급격하게 성장하고 있는 분야가 바로 NFT이다.




3. NFT 분야에서의 스마트 컨트랙트


(NFT의 기본 개념은 상세하게 다루지 않을 예정, NFT 의 기본 개념은 NFT 란 무엇인가? 참고하시길..)

NFT (Non-Fungible Token) 를 직접 만들고 발행하려는 창작자라면 스마트컨트랙트를 알아두는 것이 좋을 것 같다. (물론 NFT 작품을 사고팔기만 하는 사람도 알면 좋고...)


NFT(Non-Fungible Token)라는 대체불가 토큰의 개념이 등장하면서 디지털 자산에 희소성이라는 가치를 부여할 수 있게 되었다.


NFT의 반대 개념인 FT(Fungible Token) 대체 가능 토큰으로 말 그대로 하나의 토큰을 다른 토큰을 대체할 수 있다는 뜻이며 이는 비트코인, 도지코인 등 일반적인 암호화폐를 의미한다.

비트코인을 예로 들자면  총발행량이 2,100만 개로 정해져 있으며 현재 채굴이라는 행위를 통해 1,900만 개가 시중에 발행되어 거래가 이루어지고 있다. 그리고 당연하게도 1비트코인과 다른 1비트코인은 대체 가능한 동일한 가치를 지닌다.


하지만 NFT의 경우 NFT로 발행된 특정 하나의 토큰을 다른 것과 대체 불가능한 토큰(암호화폐)를 말한다.

즉, NFT는 토큰 하나하나에 고유함이 부여되는 토큰으로 이해하면 된다.

토큰 발행은 이더리움이 정의한 규칙(프로토콜)에 따라 'ERC-721'를 통해 NFT를 구현할 수 있고, 'ERC-20'을 통해 FT를 구현할 수 있게 된다.

대체 가능하냐, 불가능하냐 등 블록체인 생태계 내에서 그들이 만든 규칙일 뿐이지만 결국 모든 사회, 국가, 문화가 그렇듯 집단이 형성되고 집단 구성원들이 동의한 어떤 규칙이 생기면,  하나의 가치체계가 생기게 되고, 강력한 힘이 생기게 된다. 그들이 마케팅과 사람들을 현혹시키기 위한 말장난 같아 보일 수 있으나 결국 지금 하나의 트렌드가 되고, 산업이 되고, 패러다임이 되고 있는 상황이다.


(NFT) ERC-721 프로토콜과 (일반 암호화폐) ERC-20의 차이 - (자료 출처 : https://spri.kr)


NFT(Non-Fungible Token)가 미술계에서 핫한 이유

특히 NFT라는 개념의 출현은 기존 복사 + 붙여 넣기라는 단순한 방법을 통해 100% 동일한 복사본을 쉽게 만들 수 있어, 진품이라는 개념이 성립되기 어려운 디지털 콘텐츠와 가상 자산에 진품이라는 증명서를 발행하는 것으로 디지털 자산에 희소성이라는 가치가 부여되고, 원본 증명 및 추적이 가능해지고 스마트컨트랙트의 거래 성립 조건에 따라 거래가 발생할 때마다 창작자들에게 지속적으로 로열티가 제공되는 등 디지털 콘텐츠 및 작품 창작자들에게 새로운 비즈니스의 기회를 제공하게 되었다.

이러한 이유로 NFT는 미술(예술) 분야에서 가장 가파른 성장세를 이어가고 있다.


현재 NFT 작품 발행과 거래를 지원하는 대표적인 NFT 마켓 플레이스Opensea, Rarible, Niffty 등이 있으며, 스마트컨트랙트 작성과 같이 번거로운 절차 없이 해당 서비스 마켓 플레이스에서 자신의 창작물을 NFT로 발행할 수 있다.

디지털 자산 및 작품을 NFT로 발행하는 행위를 '민팅(Minting)'이라고 부른고 이는 '화폐를 주조하다'라는 뜻의 영어단어인 mint에서 유래된 용어이다.


세계적인 NFT 마켓플레이스중 하나인 오픈시(Opensea) 사이트 화면 - (https://opensea.io)


디지털 자산 및 작품을 NFT로 발행하는 2가지 방법

자신의 디지털 자산이나 창작물을 NFT로 민팅하는 방법은 크게 2가지가 있는데 하나는 그냥 단순히 Opensea, Rarible 과 같은 NFT 마켓 플레이스를 활용하여 각 마켓플레이스 자체에서 제공하는 등록 화면과 기능을 통해 SNS에 자신의 사진을 올리듯 손쉽게 자신의 작품을 민팅하는 것인데 단점은 당연하게도 내가 민팅하려는 작품이 NFT 마켓 플레이스에서 만든 스마트컨트랙트에 종속이 되어 창작자 본인이 원하는 거래 조건 및 다른 기능을 추가할 수 없다는 점이다.


그리고 다른 방법은 자신이 발행하려는 NFT 작품에 대해 원하는 거래조건 및 기능을 직접 스마트컨트랙트에 작성하고 블록체인에 민팅하는 방법인데 직접 자신의 디지털 자산 및 작품을 NFT로 민팅하고 나서 NFT 거래는 원하는 NFT 마켓플레이스에서 거래하는 것이다.


이 경우 블록체인과 NFT의 개념부터 프로그래밍 언어까지 많은 지식과 기술을 습득해야 하지만 효과적인 이윤 창출과 NFT에 대한 깊은 이해를 바탕으로 더 성장하기를 원한다면 한 번쯤은 시도해야 할 관문이 아닌가 싶다. 나 같은 경우도 간단하게나마 직접 캐릭터 디자인을 만들고 스마트컨트랙트를 작성해서 NFT로 발행하려는 계획이 있지만, 개발자로서 스마트컨트랙트 개발 기술은 빠르게 습득할 수 있겠지만 미적 감각이 제로이기 때문에 일러스트를 배우고 캐릭터를 그리는 것에 굉장히 큰 부담이 있고 자신도 없다. 최근 내가 제일 부러워하는 사람이 디자이너고 일러스트를 할 줄 아는 사람이다.


아마 그래픽 디자이너나, 디지털 창작자의 경우 나와는 반대로 스마트컨트랙트를 작성하는 프로그래밍 언어를 공부한다는 것에 큰 부담이 있을 것이다.

하지만 한 가지, 개발자로서 희망을 말해주자면 프로그래밍 언어 공부가 처음엔 어려울 수는 있으나, 블록체인과 이더리움에 대한 기본 배경지식이 있다면,  스마트컨트랙트용 언어인 솔리디티 공부는 다른 언어에 비해 상대적으로 공부할 거리가 적다는 것이다. 애초에 스마트 컨트랙트와 블록체인 어플리케이션(Dapp)용 개발에 최적화된 언어라 배워야 할 기능이 제한되어 있고 많지 않다. 충분히 노력하면 3개월 안에 배울 수 있을 것으로 생각된다.


앞으로 이 분야가 앞으로 세상을 어떻게 변화시키고 발전할지 알 수는 없으나 현재 전 세계 모든 사람이 나이, 성별, 인종과 상관없이 NFT 입문자의 입장인 것은 확실하다.

그래서 이 기회를 잘 살려서 새로운 변화의 파도 위에 올라타서 서핑을 즐기고 싶은 사람에게 '같이 화이팅 합시다'라고 말해주고 싶다.



모두 화이팅!

매거진의 이전글 NFT 성공 사례

작품 선택

키워드 선택 0 / 3 0

댓글여부

afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari