서로서로 공유해요(6) - 외계어 없이 이더리움 이해하기
블록체인 위에 다른 것도 올릴 수 없을까?
비트코인의 성공을 본 사람들은 이런 생각을 하기 시작했다. 블록체인이 데이터의 신뢰를 보증하는 기술이라면, 블록체인 위에 다른 종류의 데이터를 올릴 수는 없을까?
그래서 초기에는 많은 프로젝트들이 비트코인 블록체인을 활용해 화폐 이상의 것을 만들어내려는 시도를 했다.(네임코인, 컬러드 코인, 마스터 코인 등등)
하지만 이 시도들은 대부분 성공하지 못했다. 그 이유는 비트코인 블록체인 자체의 디자인 때문이었다.
비트코인은 시작부터 돈거래를 기록하기 위해 설계된 블록체인이다. 그렇다 보니 거래에 필요한 정보 이외에 다른 정보를 기록하는 것이 어렵고, 거래 안에 담을 수 있는 코드도 매우 한정적이다.
자유도와 안정성의 문제는 우열의 문제라기보다는 선택의 문제다. 더 많은 정보와 기능이 가능할수록, 안정성은 떨어질 수밖에 없다. 사토시 나카모토는 안전성을 위해 단순함을 선택했다.
무지 노트를 만들고 싶었던 비탈릭
비트코인 커뮤니티에서 활발하게 활동하던 젊은 개발자 비탈릭 부테린(Vitalik Vuterin)은 비트코인 블록체인이 가진 한계를 깨달았다. 그는 비트코인과 달리, 어떤 목적으로도 자유롭게 사용 가능한 완전히 새로운 블록체인을 만들고자 했다.
블록체인이 노트라고 생각해보자. 비트코인 블록체인은 오직 돈거래만 기록할 수 있도록 내지가 이미 디자인되어있는 회계 장부다. (돈을 기록하는 노트이니까)
그런데 비탈릭은 이미 정해진 양식이 있는 회계 장부가 아니라 아무런 제약이 없는 무지 노트를 원했다. 이 무지 노트는 사용하는 사람이 어떻게 쓰느냐에 따라서 용도가 바뀐다. 일기장도 될 수 있고, 그림책도 될 수 있고, 시나리오를 쓰는 노트가 될 수도 있다.
'블록체인이 ‘화폐’를 넘어서 무한한 가능성을 가지게 하자!'
이것이 바로 이더리움의 시작이었다.
[참고] 비탈릭 부테린
암호화폐의 세상에서 가장 유명한 사람을 딱 2명만 뽑자면, 비트코인을 만든 사토시 나카모토와 이더리움의 창립자 비탈릭 부테린일 것이다. 사토시 나카모토는 누구인지 밝혀지지 않았지만, 비탈릭은 이더리움 재단의 수장으로서 굉장히 활발히 활동하고 있다. 비탈릭과 그가 생각하는 이더리움에 대해 자세히 알고 싶다면 이 영상을 보자. https://www.youtube.com/watch?v=WSN5BaCzsbo
이더리움의 특징
이더리움은 기존까지 우리가 논의해왔던 암호화폐들과는 완전히 다른 특징을 지닌다. 그중에서도 이더리움의 가장 중요한 특징인 스마트 컨트랙트, 탈중앙화 애플리케이션(DApp), ICO(initial coin offering), 그리고 이더(ether)에 대해 알아보자.
1. 스마트 컨트랙트
블록체인에 걸고 약속합시다
스마트 컨트랙트란 블록체인 위에 ‘약속’을 올려놓는 것이다. 어떤 조건을 만족하면 어떤 행동을 하라는 코드를 거래에 추가한다. 예를 들면, ’ 내일 기온이 20도 이상이면 에어컨을 틀어라’ ‘내가 좋아요를 누른 글은 복사해서 메일로 보내라’ 같은 명령이다.
블록체인 위에 ‘약속’을 올리면 무엇이 다를까?
첫 번째, 블록체인이 이 계약의 진위성과 실행을 보장한다. 단순한 약속이 아니라 ‘계약’이 된다. 블록체인에 기록되면 그 내용을 누구도 부정하거나, 위조할 수 없기 때문이다. 법이 아니라, 블록체인이 보증하는 계약이다.
두 번째, 블록체인 내부에 기록된 코드에 의해서 특정 조건을 만족할 경우, 정해진 행동이 자동으로 실행된다.
실제 문서 상으로 이루어지는 계약은 사람이 직접 실행하고, 법에 의해서 강제되지만 스마트 컨트랙트는 블록체인이 유효성을 보증하고 컴퓨터가 자동으로 실행한다.
이더리움은 스마트 컨트랙트를 만들고 실행할 수 있는 블록체인이다.
비트코인 블록체인에는 거래 안에 코드를 담는 것이 매우 제한적이었다. 하지만 이더리움은 기능에 제한이 없는 자체 프로그래밍 언어를 개발했다. 이 프로그래밍 언어로 스마트 컨트랙트를 써서 거래에 포함시키면, 블록체인 내부에 영구히 저장된다.
[참고] 이더리움 내에서 가장 많이 사용되는 자체 언어는 'Solidity'다. 그리고 스마트 컨트랙트를 실행하는 장치를 이더리움 가상 머신(Ethereum virtual machine, EVM)이라고 한다.
스마트 컨트랙트로 중고 거래를 해보자
가장 단순한 형태의 스마트 컨트랙트인 ‘에스크로 계좌’를 예로 들어서 실제로 어떻게 스마트 컨트랙트가 구현되는지를 알아보자. 에스크로 계좌란 서로 간의 신뢰가 없는 두 사람이 거래를 할 때, 제3의 계좌에 돈을 넣어 놓고 특정 조건이 만족되면 돈을 지급해주는 것을 의미한다. 아마 중고 거래를 해본 사람이라면 한 번쯤은 사기를 방지하기 위해서 에스크로 서비스를 써봤을 것이다.
A가 B와 중고거래를 한다고 하자. 스마트 컨트랙트가 구현되는 방식은 다음과 같다.
1) A가 ‘받는 주소 없이’ 1이더를 전송한다. 받는 주소가 없는 대신 거래 안에 ‘스마트 컨트랙트를 만들어라’, ‘스마트 컨트랙트가 발동되는 조건(If)은 A가 약속한 물건을 받았다고 인증했을 때’ ‘조건이 만족되면(then) B에게 1이더를 보낸다.’라는 코드를 작성해서 전송한다. (이를 컨트랙트 생성(contract creation)이라고 한다.)
2) 블록체인에 거래가 기록되면, 모든 참여자들이 안에 담긴 코드를 실행한다. 이더리움 블록체인 상에서 코드에 의해 운영되는 컨트랙트 계정(contract account)이 생긴다. 1이더가 컨트랙트 계정에 보관된다.
[참고] 이더리움 내의 계정은 사용자가 통제하는 외부 소유 계정(Externally owned account)과 내부 코드에 의해서 통제되는 컨트랙트 계정(contract account)이 있다.
3) B는 1이더가 담긴 컨트랙트 계정과 담겨있는 코드의 내용(‘조건이 만족되면 B에게 돈을 준다’)을 보고 물건을 택배로 보내준다.
4) 물건을 택배로 받은 A는 컨트랙트 계정을 받는 사람으로 해서 소량의 이더를 보낸다. 그 거래 안에는 ‘X조건이 만족되었음’이라는 코드를 써서 보낸다.
5) 이 거래가 블록체인에 기록되고 실행되면, 컨트랙트는 주어진 조건에 반응하게 되고, 정해진 대로 B에게 돈을 전송한다.
이 과정을 통해 어떤 제 3자의 개입도 없이 두 사람은 안전한 거래를 할 수 있게 되며, 이 과정은 모두 투명하게 블록체인에 기록된다.
스마트 컨트랙트의 의미
스마트 컨트랙트는 돈에 ‘조건’을 걸 수 있게 해준다. 에스크로는 단순한 예 중 한가지일뿐이다.
스마트 컨트랙트를 활용하면, 블록체인 위에서 단순히 돈을 주고받는 것 이상의 수많은 응용이 가능해진다. 다양한 금융 상품을 구현할 수 있으며, 수많은 서비스를 스마트 컨트랙트 기반으로 자동화시킬 수 있다. 스마트 컨트랙트는 제 3자의 개입이 필요 없는 서비스, 블록체인 위에서 돌아가는 애플리케이션을 만드는 기초가 된다.
2. 탈중앙화 애플리케이션(Decentralized Application)
이더리움은 스마트 컨트랙트를 기반으로 개발자들이 자신이 원하는 애플리케이션을 만들 수 있도록 지원한다. 즉, 이더리움이 스마트폰의 안드로이드 OS와 같은 운영체제 역할을 한다. 안드로이드 OS가 스마트폰 내에서 유저들이 쓰는 모바일 애플리케이션의 기반이 되듯이, 이더리움 또한 블록체인 위에서 돌아가는 다양한 애플리케이션의 기반 기술이 된다.
블록체인은 상당히 복잡하고 구현하기 어려운 소프트웨어이다. 개발자들이 블록체인 애플리케이션을 만들기 위해서 매번 자체적인 블록체인을 만들기는 힘들다. 그 대신 이더리움 블록체인의 규칙과, 다양한 개발 도구들을 사용하여 자신들의 필요에 맞춤화된 애플리케이션을 만들 수 있다. 블록체인 위에서 구현되는 이런 애플리케이션을 통틀어서 탈중앙화 된 애플리케이션(Decentralized application), 줄여서 Dapp이라고 한다.
쉽게 이해하기 위해 블록체인이 하나의 오프라인 매장이라고 해보자.
비트코인은 처음으로 블록체인을 사용해서 누구도 통제하거나 소유하지 않는 무인 은행을 열었다. 그 후로 같은 기술을 사용해서 무인 은행들이 생겨나기 시작했다. 라이트코인은 보안 절차를 줄여서 좀 더 빠른 기계를 갖춘 무인 은행을 열었다. 모네로는 고객의 프라이버시를 최우선으로 하는 무인 은행을 열었다. 리플은 외환 송금 전문 은행을 열었다.
비트코인, 라이트코인, 모네로, 리플
'나는 은행이 아니라 쇼핑몰이야!'라고 말하면서 나타난 것이 이더리움이다. 이더리움은 ‘무인 은행’ 개념을 넘어서 세상의 모든 것들이 거래되는 하나의 거대한 쇼핑몰을 목표로 한다. 그리고 이 쇼핑몰 안에는 다양한 상품/서비스를 파는 무인 매장, Dapp들이 입점하게 된다.
이더리움은 쇼핑몰처럼, 매장들이 들어올 수 있는 건물 공간과 기반 시설을 제공한다. Dapp들은 건물 전체를 지을 필요 없이 이더리움 내의 공간을 빌려 매장을 오픈할 수 있다.
이 매장들에서는 스마트 컨트랙트라는 로봇들이 매장을 운영한다. PC방, 슈퍼마켓, 카지노, 환전소 등 모든 매장이 누구도 소유하지 않고, 통제하지 않는 상태로 운영된다.
이더리움이 제시한 ‘Dapp을 위한 플랫폼’은 암호화폐에 사용되는 기술로만 여겨졌던 블록체인을 한 단계 진화시킨 새로운 패러다임이었다. 이더리움의 등장은 수많은 Dapp들이 생겨나는 기점이자, 블록체인의 제 2 전성기를 여는 계기가 된다. Dapp에 관해서는 알아야 할 내용이 많지만 나중에 자세히 알아보기로 하고, 여기서는 이더리움이 Dapp을 세상에 최초로 구현해낸 블록체인이라는 것만 기억하자.