brunch

You can make anything
by writing

C.S.Lewis

by 뱅크샐러드 Jul 13. 2018

[EasyBlockchain] 이더리움이란?

비트코인과 양대산맥을 이루고 있는 이더리움의 시스템에 대해 알아보자! 

이 칼럼은 쉽게 설명하는 블록체인 : 비트코인 거래가 이루어지는 과정 에 이어 연재됩니다.  
  


비트코인과 이더리움 

 

비트코인은 암호화 화폐들의 대장이다. 가격도 가격이거니와 역사와 상징이 가져다 주는 가치도 크고 암호화 화폐에 대해 전혀 모르는 사람도 비트코인에 대해 한 번쯤은 들어 봤을 정도로 인지도가 높다.  


여기에, 비트코인과 더불어 코인계를 이끌어가는 양대 산맥인 이더리움이 있다. (아마 비트코인에 관심이 조금이라도 있다면 이더리움도 낯설지 않을 것이라고 생각한다.)  


사실 이더리움을 설명하자면 기술적인 부분이 많이 요구되고 내용도 굉장히 어렵다. 하지만 비트코인, 이더리움에 대해 겉핥기식으로 알고 있는 사람이 다수이고, 블록체인 뉴스나 소식에 대응하기 위해서는 어느정도 기술적으로 파고 드는 것이 필요하다.  


그래서 가장 쉽고 간단하게 이더리움이 지향하는 것과 어떤 시스템을 갖추고 있는지 알아보도록 하자.  
 
 


비트코인의 특징



1. 튜링 불완전성(Turing-incompleteness) 


비트코인의 스크립트 언어는 '비교적' 단순해서 비트코인이 '화폐'로서만 작동하게끔 한다.  


예를 들면, 현재 전 세계적으로 사용되고 있는 언어의 개수가 많이 있지만 비트코인의 스크립팅 언어는 원시시대 인류가 처음 등장할 때 사용했던 아주 단순하고 표현방법이 많지 않은 언어라고 비유를 들 수 있는데, 이를 비트코인의 '튜링 불완전성(Turing-incompleteness)'라고 한다.  
 

2. Lack of state(상태표현제한) 


비트코인의 UTXO(비트코인의 잔액덩어리)가 표현할 수 있는 상태는 사용했거나 안했거나 둘 중 하나인데 그렇기 때문에 이 두가지 상태 이외에 다른 어떤 조건에서 UTXO를 전부 사용하지 않고 나눠서 사용하는 계약을 할 수가 없다. 이를 'Lack of state(상태표현제한)'이라고 한다.  
 

3. Blockchain-blindness 

 

UTXO가 블록체인의 블록헤더 데이터들을 해독하지 못해서 화폐의 기능 이외의 다른 분야의 어플리케이션을 만드는데 한계가 있는데 이를 'Blockchain-blindness'라 한다.  
 


즉, 블록체인이라는 커다란 네트워크에서 비트코인은 '전자계산기' 정도의 역할을 하는 어플리케이션인 것뿐이다. 즉, 비트코인의 스크립트는 비트코인이 전자계산기로서만 역할을 할 수 있는 정도로 제한적이고 단순하다.  
 


 

그렇다면 이더리움은? 

 

이더리움의 개발자 비탈릭은 비트코인의 스크립트보다 더 세련된 언어(튜링 완전한 언어)를 구사하려고 새로운 블록체인 네트워크를 만들어 여러가지 '분산 어플리케이션(Decentralized Application; dApp)'을 이용할 수 있는 플랫폼을 만들기로 하는데 이것이 이더리움 플랫폼이다.  


※ 비트코인도 일종의 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의 아들에게 강제적이고 자동적으로 송금하게 된다.  


이 계약조건은 블록체인 위에 기록되면 처음 기록된 조건을 절대 바꿀 수 없고 조건을 만족시킬 경우에 실행이 되고 만다.  


 위의 내용을 정리하면 다음과 같다. 



하지만 이 내용은 이더리움에 대한 겉핥기 내용일 뿐이다.  
 


 

Ethereum이라 쓰고 World Computer라 읽는다. 

 

비트코인은 '화폐'의 역할 그 이상 그 이하도 하지 않는다. 그래서 '전자계산기'정도의 어플리케이션이라고 비유를 했었고 이더리움은 '컴퓨터'에 비유했다.  


실제로 이더리움은 전세계를 아우르는 거대한 하나의 '가상 컴퓨터'이다. 



위 그림처럼, 수만개의 노드가 똑같은 연산을 중복하며 똑같은 데이터를 가지고 항상 동일한 상태의 합의에 도달한다. 그렇기에 효율적인 면에서 본다면 엄청난 낭비가 될 수 있지만 이것이 계약에 없어서는 안될 '신뢰'를 구축한다.  


똑같은 연산을 하고 똑같은 성능으로 같은 데이터를 가지며 합의도 같기 때문에 일단 위•변조가 불가능하다. 또한 하나의 노드를 해킹한다 해도 전체를 무용지물로 만들 수 없고 DDOS공격 또한 위협적이지 않다.  


이렇게 구축된 신뢰를 기반으로 중복된 연산을 어떻게 유용하게 최적화 할 것인가가 이더리움의 제일 큰 숙제라고 할 수 있다.  
 
 


Front End code와 Back End code 

 

그리고 여기서 중요한 부분, Front End code와 Back End code라는 것이 있다. (어려울 수 있는데 보다 보면 별 거 아니다.)  


 - Front End Code : 웹사이트에서 대문의 클릭할 수 있는 메뉴들이나 아이콘등 사용자들이 앞에서 직접 맞닥뜨리는 부분  


 - Back End Code: 뒤에서 관리하는 사용자들의 신원을 포함한 데이터 



Front End Code는 중앙서버나 블록체인이나 사용자들이 직접 접하는 부분이기에 같다. 이 말은 그림처럼 웹사이트에서 클릭할 수 있는 메뉴들은 블록체인 기반으로 운영이 된다 하더라도 서버에서 관리가 가능하다는 것이다.  


그러나 Back End Code는 다르다.  


블록체인 시스템 기반으로 운영 되는 웹사이트에서 비밀번호나 신원관리는 중앙에서 통제가 되지 않기 때문에 회원이 비밀번호를 분실해도 웹사이트 운영진이 알려줄 방법이 없다.  


이것이 정부행정, 보험, 의료서비스, 금융 등 서로 다른 분야의 데이터를 공유하는데 이를 정부나 하나의 기관이 관리하는게 아닌, 분산화된 방식으로 투명하고도 민주적으로 운영이 된다는 것이 핵심이다.  
 


 

이더리움의 블록은 어떻게 구성되고 운영될까? 

 

설명에 앞서 우리가 중학교 때 배웠던 함수에 대해 간단히 개념을 짚어보자. 



x값을 집어 넣었더니 y가 나왔다는 이야기이다. 

이더리움의 블록도 마찬가지이다. 




그림처럼 124번 블록이 f(x)의 함수역할을 해서 상태 1에서 상태 2로 바꿔준다. 여기서 핵심은 1번부터 123번 블록까지 연결된 블록체인 데이터가 상태 1이라는 것이고, 124번이 추가되고 난 1번부터 124번 전체 블록데이터가 상태 2라는 것이다. (124번 블록 하나가 상태 2가 아님)  


이 이야기는 블록이 추가될 때마다 상태가 계속해서 변한다는 것이다.  


이런 상태변환을 수만개의 노드들이 똑같이 하나의 컴퓨터처럼 연산한다. 또한, 이런 연산력은 이더리움의 경우 GAS를 구입을 통해 제공받는다. 이 GAS가 비트코인과 이더리움의 차이점 중에 하나인데 이것보다 더 중요한 차이가 있다.  


비트코인은 계좌에 UTXO를 가지고 있고 그것을 소비하거나 말거나가 전부이다. 하지만 이더리움은 UTXO가 아닌 자체토큰인 '이더', 이더를 가지고 있는 '계좌', 'GAS'가 합쳐진 것이다. 


이더리움 = 이더 + 계좌 + 가스 




여기서 가장 핵심은 '계좌'이다. 

 

이더리움의 계좌를 다음과 같이 구분할 수 있다.

 


이더리움의 계약계좌는 GAS를 구입해 계약 코드를 걸어 놓으면 이 계약 코드의 조건이 만족될 때에만 계약계좌가 메세지를 받고 계약의 내용이 실행된다. 예를 들어, 과속을 했을 때 과태료로 1ETH를 부과하는 코드를 걸어 놓으면 과속을 했을 때 메세지를 받고 1ETH가 계약계좌에서 빠져나간다. 이 계약 코드는 이더리움 플랫폼에서 정해 놓은 '헌법'과도 같다. 그렇기에 어떤 강력한 정부가 와도 건드리지 못하고 비탈릭 뷰테린조차도 통제가 불가능하다.  


이것이 이더리움의 핵심 Smart Contract이다. 



<함께 보면 좋은 글>


가상화폐 개념 완벽 정리 A to Z : 1부


[핀테크 서비스 소비자 체험기] 가상화폐 투자, Coinone 거래소 


ISA계좌 알아보기 - 혜택, 가입조건, 주의사항까지


Written by EasyBlockchain
블록체인 분야 전문 블로거가 블록체인 기술의 기본에 대해 가장 쉽게 설명해드립니다.


매거진의 이전글 [펀드,ETF도전기] 펀드 기준가격이란?

작품 선택

키워드 선택 0 / 3 0

댓글여부

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