지난 25일 비탈릭 뷰테린이 방한했다. Meet-up을 발표하자마자 선착순 1000명 자리가 순식간에 동났고 언론에서 취재열기도 뜨거웠다.
비탈릭이 Meet-up에서 주로 다뤘던 내용은 확장성 문제였지만, 사람들에게 가장 강조했던 내용은 현재 암호화화폐 시장의 거품현상은 사람들이 블록체인에 대한 기술적 이해없이 몰려들기 때문이기에 일반 투자자들이 조금 더 이더리움이나 ICO들의 기술적인 내용을 이해하고 투자를 하길 바랐던 부분이었다.
투기 광풍은 그만큼 돌아 오는 후폭풍이 크기에..... 기술적인 부분을 알고 암호화화폐 분야에 뛰어 든다면 이 후폭풍에 흔들리지 않는 강력한 뿌리를 생성하는 것이라고 필자도 확신한다.
또한, 어차피 비트코인 이더리움에 대해 겉핥기 식으로만 알고 있다면 이야기 할 내용도 한정적일 뿐더러 뉴스에 어떻게 대응할지도 대책이 서질 않아 결국엔 기술적 내용을 어느정도는 파고들어야 한다고 느낄 때가 올 것이다.
그래서! 이더리움에 대해 이해하게 껄끄럽지 않게 이더리움 플랫폼이 지향하는 바를 핵심을 딱 짚어 알고 복잡할 수 있는 기술적 부분이 도대체 무엇인지 짚고 넘어가보자.
이더리움을 떠올릴 때 가장 먼저 떠오르는 것은 'Smart Contract'인데
그렇다면 과연 비트코인과 이더리움의 가장 결정적 차이는 무엇일까?
비트코인의 스크립트 언어는 비교적 단순해서 비트코인이 '화폐'로서만 작동하게끔 한다. 예를 들면, 현재 전 세계적으로 사용되고 있는 언어의 개수가 많이있지만 비트코인의 스크립팅 언어는 원시시대 인류가 처음 등장할 때 사용했던 아주 단순하고 표현방법이 많지 않은 언어라고 보면 된다. 이를 비트코인의 '튜링 불완전성(Turing-incompleteness)'라고한다.
두번째로는 비트코인의 UTXO(비트코인의 잔액덩어리)가 표현할 수 있는 상태는 사용했거나 안했거나 둘 중 하나인데 그렇기 때문에 이 두가지 상태 이외에 다른 어떤 조건에서 UTXO를 전부 사용하지 않고 나눠서 사용하는 계약을 할 수가 없다. 이를 'Lack of state(상태표현제한)'이라고 한다.
또한 UTXO가 블록체인의 블록헤더 데이터들을 해독하지 못해서 화폐의 기능 이외의 다른 분야의 어플리케이션을 만드는데 한계가 있는데 이를 'Blockchain-blindness'라 한다.
정리하면 비트코인은 블록체인이라는 커다란 네트워크에서 비트코인은 '전자계산기' 정도의 역할을 하는 어플리케이션인 것 뿐이다. 즉, 비트코인의 스크립트는 비트코인이 전자계산기로서만 역할을 할 수 있는 정도로 제한적이고 단순하다.
그렇다면 이더리움은?
이더리움의 개발자 비탈릭은 비트코인의 스크립트보다 더 세련된 언어(튜링 완전한 언어)를 구사하려고 새로운 블록체인 네트워크를 만들어 여러가지 dApp(분산 어플리케이션)을 이용할 수 있는 플랫폼을 만들기로 하는데 이것이 이더리움 플랫폼이다.
(cf. 비트코인도 일종의 dApp이다. VISA나 Master Card 또는 금융기관들의 역할을 분산화된 블록체인 네트워크에서 하는 어플리케이션이므로 dApp이라고 할 수 있음)
이것은 쉽게 말해 비트코인이 전자계산기라면 이더리움 플랫폼은 하나의 거대한 컴퓨터 또는 최신 스마트폰인 셈이고 그 안에서 전자계산기(화폐) 기능만 실행하려는 것이 아니라 여러 어플리케이션들(금융, 신원관리, SNS, 의료, 예술, 정부행정, 보험 등)을 실행하려 한다는 것이다.
비트코인이 튜링불완전한 '스크립트'를 사용했다면, 이더리움은 튜링 완전한 언어인 'Solidity(JAVA script)'와 'Serpent(Python)'을 사용한다. 이것이 복잡한 다중계약인 Smart Contract를 가능하게 하고 분산 어플리케이션을 구현한다.
GAS란 무엇인가?
이더리움 생태계에서 구현되는 여러가지 알트코인들이 있다. 더 정확히 말하면 dApp인데, 그 중 반드시 필요한 GAS라는 어플리케이션이 있다.
이더리움 플랫폼에서는 이더(ether)라는 자체 화폐토큰이 있고 이더를 가지고 가스(GAS)라는 어플리케이션을 구입해 이더리움이 Smart Contract를 하는데 연산력과 저장공간 제공의 '연료'로서 쓰이게 된다. 그렇게 되면 명령어에 따라 특정 조건에서 자동적이고 강제적인 계약이 실행된다.
Smart Contract란?
많이 들어봤을 Smart Contract는 온라인상에서 특정계약조건을 실행하는 것이다.
예를 들어, Bob이 중환자실에 입원하게 될 경우 병원비로서 10ETH를 Bob의 아들의 지갑으로 송금한다는 조건을 세우면 Bob이 중환자실에 입원하는 상황이 생겼을때, '상태변환함수'를 생성해 특정 조건을 만족하게 되어 10ETH를 Bob의 아들에게 강제적이고 자동적으로 송금하게 된다.
이 계약조건은 블록체인 위에 기록되면 처음 기록된 조건을 절대 바꿀수 없고 조건을 만족시킬 경우에 실행이 되고 만다.
다시 말하자면 비트코인은 화폐의 기능만 하고 있고 화폐로서의 가치만 추구하도록 업데이트도 진행되고 있다. 하지만 이더리움은 다양한 종류의 서비스를 제작고 그것이 분산화된 방식으로 운영되도록 만든 '플랫폼'이다.
최대한 쉽게 설명하려고 하지만 모르시는 분들을 위해 언제든지 어떤 내용이든 댓글로 질문을 받습니다.질문의 내용이 길 경우는 jsralphh@gmail.com으로 보내주시면 감사하겠습니다.