본문 바로가기

투자 정보/블록체인

이더리움(ETH) 완벽정리!

이더리움(ETH) 완벽정리!

 

비탈릭 부테린

비탈릭 부테린은 이더리움의 창시자이자, 이더리움 재단의 공동 창업자입니다. 부테린은 러시아 모스크바에서 태어났으나 6살때 부모님을 따라 캐나다로 이민을 간 것으로 알려져 있습니다. 그가 대략 10살 정도였던 초등학교 3학년때, 이미 프로그래밍과 경제, 미술 및 수학에 뛰어난 두각을 나타내며 천재라는 소리를 들었습니다. 

 

부테린은 이후 캐나다 토론토에 있는 사립 고등학교에 진학하는데, 그때 이런말을 했다고 알려져 있습니다. "I noticed my attitude and my results almost immediately and drastically change. Education is ultimately much more than simply memorizing individual facts, or even learning individual concepts. [What] matters most: learning how to think, learning how to reason and learning how to learn."( 나는 나의 태도와 모든 결과물들이 매우 즉각적이고 드라마틱하게 변한것을 느꼈다. 교육이라는 것은 결국 단순히 무엇인가를 기억하는것도, 그렇다고 어떤 각각의 컨셉에 대해 배우는 것도 아니다. 교육에 있어서 가장 중요한건, 어떻게 생각하고, 인과관계를 정의하고, 그리고 어떻게 배울것인지를 배우는 과정이다.)

 

그에게 있어서 배움이란 단순하게 기존에 있던 지식을 외우고 숙달하는 것이 아니었습니다. 되려 그 지식을 사용하여, 또다른 지식을 발견하고, 이것을 통해 현실세계의 문제를 어떻게 해결할지 고민하는 사람이었습니다. 2012년 아버지에게 처음으로 비트코인에 대해 알게 된 이후로, 비트코인과 관련한 글을 쓰고, 여러 오픈소스 프로젝트에 참여하면서 블록체인 지식과 기반기술을 습득하였습니다. 이렇게 쌓인 지식을 토대로 이더리움의 백서를 쓰게 되는데, 이렇게 공유된 백서를 보고 많은 이로부터 동업을 권유받았고, 이렇게 이더리움 프로젝트가 시작됩니다. 

 

보통 창업자에대해 이렇게 까지 자세히 알아보진 않지만, 부테린을 이렇게 자세히 기술하는 이유는 그가 제안한 이더리움의 스마트컨트랙트라는 개념으로 인해 블록체인 산업이 르네상스 시대를 맞이할 수 있었기 때문입니다. 비트코인의 창시자 나카모토 사토시 만큼 블록체인 업계에서 굉장히 중요한 인물로 손꼽힙니다. 

 

블록체인 2.0

그렇다면 왜 이렇게 다들 이더리움을 중요하게 생각하는걸까요? 비트코인과 어떤 차이점이 있길래 블록체인 2.0이라 불리는 걸까요? 차근차근 알아보도록 하겠습니다. 비트코인은 모두가 아시다시피 작업증명 합의방식을 사용한 분산원장 기반 블록체인 입니다. 뭔가 굉장히 긴데요, 개념 자체는 사실 그렇게 어렵지 않습니다. 

 

보통 네트워크라 함은 클라이언트(개인 PC, 서버, 스마트폰 그 무엇이든 될 수 있고, 참여자라고 할수 있습니다.)와 클라이언트가 연결되어 통신할 수 있는 망을 의미하고, 그물망처럼 엮여 있다 해서 ‘네트(Net)’, 함께 일한다는 의미의 ‘워크(Work)’가 합쳐진 단어입니다. 이 네트워크에는 클라이언트들이 존재하는데, 블록체인 네트워크에서는 이를 노드라고 부릅니다. 문제는 이러한 블록체인 네트워크가 어떤 중앙의 서버에 의해 만들어 진 것이 아니다 보니, 각각의 노드가 없다면 네트워크 자체가 성립이 안됩니다. 다르게 말하면 이 블록체인 네트워크를 유지하기 위해 무조건 노드가 필요하고, 이 노드들 중 블록을 생성하는 노드들을 ‘채굴자’, 블록을 생성하는 행위 자체를 ‘채굴’ 이라 합니다. 이러한 채굴자들이 일할 수 있도록 인센티브가 제공되는데 그게 바로 블록, 즉 비트코인 인겁니다. 

 

그렇다면 도대체 분산원장은 무엇일까요? 보통 우리가 장부, 원장이라 하니까 뭔가 굉장히 어려워 보이지만 간단하게 집에서 쓰는 가계부를 떠올리시면 됩니다. 우리는 보통 가계부에 월급이 들어오면 수입으로, 마트에 가서 물건을 사면 지출로 기입을 하는데, 이러한 행위를 보통 우리는 거래내역이라 부릅니다. 이미 눈치 채셨겠지만 분산원장은 이렇게 거래내역이 기록된 동일한 원장을 여러 노드가 나눠서 가지고 있다는 의미입니다. 만약 원장이 하나의 노드에만 기록, 관리된다면 그 노드가 원장의 거래내역을 수정하거나 바꿔치기 해도 다른 노드들이 알 길이 없습니다. 하지만 모두가 나눠 가지고 있다면 누군가가 거래내역 일부를 수정해도 금방 발견 해 낼 수 있는 것입니다. 

 

비트코인은 이렇게 블록체인과 분산원장이라는 기반기술 위에서 제3자의 개입 없이 운영되는 시스템을 구현하였고, 이 위에서 거래가 이루어 질 수 있도록 만들었습니다. 하지만 그 한계점도 분명했습니다. 거래 내역을 서로가 볼 수 있어서 굉장히 신뢰도가 높았지만 그 행위 자체가 실질적으로 우리 삶에 큰 도움이 되지 않았기 때문입니다. 모두가 함께 관리하는 가계부를 통해 옆집 A가 아이스크림을 사먹고, 친구 B에게 10만원을 보냈다는걸 안다고 해서 제 인생에 큰 변화가 없는 것처럼 말입니다. 

 

하지만 만약, 이렇게 공동으로 관리하는 가계부가, 공동으로 관리하는 컴퓨터로 바뀐 다면 어떨까요? 가계부 위에서는 그저 거래내역 정도만 기록하고 공유 할 수 있지만 컴퓨터 위에서는 계산기, 달력, 지도, 채팅 프로그램과 같은 어플리케이션을 만들어 공유 할 수 있습니다. 가계부가 1차원적 적인 거래내역 정보만을 공유 했다면, 컴퓨터 위에서는 정보와 조건, 그리고 실행을 통해 특정 서비스를 만들고 공유할 수 있습니다. 이게 바로 이더리움이 블록체인 2.0시대를 열었다고 하는 이유입니다. 이더리움은 그것의 핵심기능인 ‘스마트컨트랙트’와 엔진인 ‘EVM(Ethereum Virtual Machine)’이라는 개념으로 블록체인의 새로운 가능성을 전 세계에 알립니다.



핵심 기능 - 스마트컨트랙트

스마트컨트랙트라는 개념은 사실 비탈릭에 의해 제안되지 않았습니다. 스마트컨트랙트라는 개념은 1994년 닉 샤보에 의해 처음 제안되었습니다. 그는 “Formalizing and Securing Relationships on Public Networks”라는 논문을 통해 스마트 컨트랙트의 기본 개념을 설명하고, 이러한 스마트 컨트랙트가 기존 계약의 거래 비용을 획기적으로 줄일 것이라고 설명하였습니다. 부테린은 이러한 스마트 컨트랙트의 개념을 블록체인에 구현한 최초의 사람으로서, 블록체인의 가능성을 진일보 시켰다고 평가되고 있습니다. 

 

스마트 컨트랙트는 일종의 코드의 집합이라고 생각하시면 됩니다. 그렇다면 왜 스마트 컨트랙트라는 명칭을 붙였을까요? 그건 바로 계약의 특성때문입니다. 계약은 거래의 주체들이 합의한 약속을 명시해둔 문서입니다. 이러한 계약을 토대로 계약 주체들은 합의된 약속이 이행될 것이라고 기대할 수 있는데, 그렇다고 모든 약속이 그대로 이행되지는 않습니다. 계약 주체들이 약속을 어기게 되는 상황이 생깁니다. 그렇기 때문에 계약서에는 보통 약속 불이행시 얻게될 불이익 등을 명시해 두고, 최악의 상황에서는 소송등을 통해 약속 불이행에 대한 법적인 절차를 밟습니다. 반면 이더리움의 스마트 컨트랙트에서는 조건이 맞으면 무조건적으로 약속이 이행됩니다. 

 

이러한 전자계약과 무조건적인 약속의 이행은 생각보다 많은 문제를 해결할 수 있습니다. 예를들어 실생활에서 쓰이는 계약이 실제 법적인 증거로서 사용되기 위해서는 ‘공증’이라는 절차를 거칩니다. 공증기관으로서 허가받은 법률사무소나 법무법인을 통해 진행 할 수 있는데, 시간과 비용이 소요됩니다. 뿐만 아니라 계약서에 명시된 약속이 이행되지 않을 경우 보통 ‘소송’을 거쳐 약속 불이행에 대한 책임과 이에대한 보상을 요구하게 되는데 이 과정 역시 오랜 시간과 비용을 동반합니다. 스마트 컨트랙트는 특정 조건이 충족되지 않으면 해당 계약 자체가 성립되지 않기 때문에 거래 주체들의 명백한 합의를 요구합니다. 또한 실행 이후에, 조건에 따라 모든 약속은 자동으로 이행되기 때문에 불필요한 비용을 발생하지 않고 효율적입니다.

 

다시 한 번 말씀 드리지만 스마트 계약은 하나의 코드 덩어리인 것입니다. 중요한건 누구나가 신뢰 할 수 있는 코드 덩어리인 것이죠. 스마트컨트랙트 프로그래밍 언어인 솔리디티를 통해 스마트컨트랙트를 작성하면, 이는 이더리움의 블록중 일부에 기록되어 전체 네트워크에 전파가 됩니다. 일종에 코드 라이브러리 처럼 말이죠. 이 스마트컨트랙트는 각 노드의 EVM을 통해 실행이 가능한데, 한번 등록된 스마트컨트랙트라면 이론적으로 모든 노드에서 실행이 가능 합니다. 

 

생태계 확장 요인 - 디앱(Dapps)

 

디앱은 분산화된 어플리케이션 (Decentralized Application)의 약자로, 이더리움 플랫폼 위에서 스마트컨트랙트를 기반으로 만들어진 어플리케이션을 의미합니다. 디앱 이라고 하면 머릿속에 어떤것을 의미하는지 잘 그려지지 않습니다. 좀 더 나은 이해를 위해 현재 사용하고 계시는 컴퓨터를 가지고 어플리케이션의 뜻을 살펴보고, 동시에 DApp을 확인해 보도록 하겠습니다. 

 

모든 시스템은 크게 하드웨어와 소프트웨어로 나누어 집니다. 이 중 소프트웨어는 운영체제와 어플리케이션으로 나뉘는데, 운영체제는 하드웨어와 어플리케이션 사이에 중재자의 역할을 합니다. PC를 예로 들어보겠습니다. PC의 하드웨어는 메인보드, CPU, 메모리 등 실체를 가진 모든것들로 이해하시면 됩니다. 

컴퓨터의 하드웨어들은 0과 1로 이루어진 2진수로 통신을 하며 유기적으로 움직이는데 2진수의 바이너리 코드는 사람이 이해할 수 있는 언어가 아닙니다. 그렇기 때문에 운영체제가 필요합니다. 운영체제는 사람이 이해할 수 있는 언어로 명령을 내리면, 이걸 2진수의 바이너리 명령어로 바꿔 하드웨어를 통제할 수 있게 만들어 줍니다. 뿐만 아니라 운영체제 위에서 만들어 지는 어플리케이션들이 하드웨어와 유기적으로 동작 할 수 있도록 중간지대 역할을 해준다고 보시면 됩니다. 

 

스마트폰도 기존의 PC와 동일한 구조를 갖습니다. 스마트폰의 기계 위에, 윈도우나 맥OS 대신 우리가 아는 안드로이드 또는 iOS가 운영체제로 올라가고, 그 위에는 카카오톡과 은행 앱, 게임같은 어플리케이션이 올라갑니다. 굉장히 단순화해서 설명드리고 있지만 큰 관점에서 모든 ‘시스템’은 이러한 기본적인 구성을 가지게 됩니다. 이때 어플리케이션은 두가지 형태를 가지게 되는데, 스마트폰 또는 PC에 모든 코드들이 저장되어 인터넷 없이도 플레이 가능한 형태가 그중 하나입니다. 또다른 하나는 웹 서버상에 대부분의 코드가 저장되어 있고, 스마트폰 또는 PC를 일종의 클라이언트 장비로 사용하여 서버에 접속하여 어플리케이션을 구동하는 방식입니다. 요즘엔 인터넷 속도가 빨라지고, 데이터 요금제가 저렴해 짐에 따라 두번째 방식의 어플리케이션이 많아지고 있습니다.

 

DApp은 대부분의 코드가 블록체인 상에 올라가 있고, 지갑이나 웹클라이언트등을 통해 블록체인상에 기록되어 있는 코드에 접속하는 형태입니다. 위에서 설명드렸을때 스마트 컨트랙트의 가장 큰 특징 기억 하시나요? 맞습니다. 스마트 컨트랙트는 기록된 조건에 따라 약속이 자동으로 이행된다는 점이었습니다. 사용자들이 디앱을 통해 하는 행위 모두는 일종의 이벤트로서, 스마트 컨트랙트의 조건에 맞는다면 그에 해당하는 결과값을 자동으로 받아 볼 수 있게 됩니다. 이더리움 디앱중 가장 유명했던 크립토 키티를 예로 들면, A라는 고양이와 B라는 고양이를 교배하는 이벤트를 보낼때, 스마트컨트랙트 상에 명시된 확률로 새로운 고양이가 태어난다고 이해 하시면 됩니다. 

 

크립토키티가 유명한건 또다른 이유가 있습니다. 바로 이더리움의 전체 네트워크를 마비시켰던 이력 때문이죠. 크립토키티는 그 당시 직관적인 UI와 익숙한 게임 패턴으로 많은 유저들을 끌어 모았고, 동시에 교배를 통해 태어난 고양이들중 새로운 유전형질을 갖고 태어난 희소성 있는 고양이들은 꽤 비싼 가격에 판매가 되기도 했습니다. 그 엄청난 인기로 인해 많아진 사용자는 이더리움 네트워크 자체에 큰 부담을 주었고, 결과적으로 이더리움 네트워크 자체를 멈춰버리게 됩니다. 이더리움이 디앱 플랫폼으로서 가지고 있는 태생적 한계성을 보여준 사건으로, 이더리움의 제한된 확장성과 느린 속도가 모든 사람들에게 알려진 사건이었습니다.

 

이더리움 인기 요인 - ICO와 ERC-20

이더리움ICO에도 큰 영향을 끼쳤습니다. ICO는 Initial Coin Offering의 약자로 우리가 아는 IPO (Initial Public Offering)에서 따왔습니다. 1세대 암호화폐인 비트코인만 하더라도 안전하게 ‘거래내역’을 공유할 있다는 점 이외에는 크게 활용도가 떨어졌습니다. 하지만 이더리움은 스마트 컨트랙트와 EVM을 통해 여러 유용한 어플리케이션을 블록체인 위에 올릴 수 있는 가능성을 보여주었습니다. 심지어 이더리움은 이러한 스마트컨트랙트와 EVM을 모두 사용할 수 있는 정형화된 토큰 생성 프로토콜을 만드는데, 이게 바로 ERC-20입니다. 아마 블록체인쪽에서 가장 많이 들어본 단어중 하나일 것이라 생각이 됩니다.

 

ERC는 Ethereum Request for Comment의 줄임말로, 이더리움 위에서 스마트컨트랙트 개발자들이 정한 일종의 약속으로서 이더리움의 생태계에 바로 사용되기 위해서는 꼭 지켜야 하는 규칙들입니다. ERC-20은 이더리움의 스마트컨트랙트와 EVM을 사용하기 위한 규칙입니다. 이더리움 이후 블록체인 기술에 관심을 가지기 시작한 업체들은, ERC-20 토큰을 활용해 쉽게 토큰을 생성할 수 있었고, 그 안에 탑재된 스마트 컨트랙트 기능을 사용해 투명하게 자금을 모을 수 있었습니다. 

 

하지만 문제도 발생했습니다. 여러 프로젝트들이 ERC-20 토큰을 활용하여 ICO에 성공하다 보니, 이렇게 모금된 돈만을 노리고 프로젝트를 시작하는 업체들이 우후죽순처럼 생겨났습니다. 재무재표 같은 공시자료를 통해 회사의 상황을 확인 할 수 있는 주식과는 다르게, ICO의 경우 웹사이트와 백서, 그리고 그 프로젝트에서 배포된 기사등을 통해서만 프로젝트의 내용을 확인 할 수 있었습니다. 많은 프로젝트들이 약속한 로드맵의 기일을 넘기고, 실제 프로젝트를 포기하거나 해킹을 빌미로 프로젝트를 중단하였습니다. 이에 따른 모든 피해는 선의의 투자자들이 입게 되었으며, 블록체인 업계에 규제에 대한 목소리가 나오게 된 계기가 되기도 했습니다. 

 

좌절된 위대한 실험체 - The DAO

탈중앙화 자율조직을 의미하는 다오는 Decentralized Autonomous Organization의 줄임말로 인공지능을 활용한 분산화된 자율 회사를 의미합니다. 다오는 이더리움의 백서에도 명시되어 있는 스마트컨트랙트의 활용 방법중 하나였는데, 부테린에게는 이더리움의 튜링완전성을 증명해줄 중요한 프로젝트 였습니다. 그때 당시 돈으로 약 2천억원 가량을 성공적으로 모금하면서, 크라우드펀팅 역사상 가장 큰 금액을 모은것으로 기록되기도 했습니다. 

 

개념은 간단합니다. 이더리움의 스마트컨트랙트로 자동으로 운영되는 법인을 만들었다고 생각하시면 됩니다. 이 법인의 경영권에 참여할 수 있는 DAO 토큰을 발행하고, 크라우드 세일을 통해 판매하여 조직을 운영할 이더를 모금합니다. 다오의 기능중 하나는 크라우드 세일때 받은 토큰을 돌려주고, 지불해던 이더를 환불 받는 기능이었는데, 해커는 이점을 공격합니다. 이더를 환불받으면서 다오 토큰을 돌려줘야 하는데, 돌려주지 않도록 코드를 추가함으로써 무제한으로 이더를 환불받습니다. 2016년 6월 17일에 발생한 해킹으로 인해 총 243만 이더가 탈취됩니다. 

이후 이더리움에 대한 신뢰도는 바닥을 치고, 가격 역시 이를 반증이라도 하듯 폭락합니다. 실질적으로 다오 프로젝트는 취소되고, 이를 위한 해결책으로 아래의 4가지 방안이 제시되었습니다. 

 

  1. 소프트포크로 해커의 계정을 동결 - 동결된 이더를 본래의 주인들에게 돌려 줄 수 없음

  2. 하드포크로 해킹 이전 시점으로 되돌리기 - 해킹 이전시점으로 돌리는 행위 자체가 제3자의 개입이 되기 때문에 블록체인의 탈중앙화에 정면으로 대치

  3. 아무것도 하지 않는다 - 이러한 해킹 자체도 블록체인 생태계의 일부로서, 블록체인의 가치를 지키기 위해 제3자의 개입 자체를 막는다. 

  4. 다오 내에서 알아서 해결 - 이더리움 자체의 해킹이 아니라 다오라는 디앱상에서 발생한 사건이므로, 다오의 커뮤니티에서 알아서 해결하게 만든다.

 

탈취된 이더의 양과 피해자가 너무 많았습니다. 결국 커뮤니티의 여론에 따라 이더리움의 블록체인은 하드포킹을 통해 나뉘고, 해킹 이전 시점부터 다시 블록체인을 시작합니다. 커뮤니티 내 일부에서는 이러한 제3자의 개입이 블록체인의 기본정신을 정면으로 배척했다면서 이더리움 재단을 비난했습니다. 항상 탈중앙화를 외쳤던 이더리움이지만 결국 본인들 스스로 그 한계성을 인정해 버린 것입니다.

 

원래대로라면 자연스럽게 없어졌어야 할 이더리움의 본래 체인이 코드가 법(Code is law)이라는 기치하에 기존 체인을 이더리움 클래식이란 이름으로 하여 폴로닉스에 갑자기 상장이 됩니다. 이 사건으로 인해 하드포킹을 통한 체인분리가 하나의 비지니스 모델처럼 변질되어 비트코인 캐시, 골드, 다이아몬드 등 굉장히 여러 버전의 비트코인이 나중에 생성됩니다. 다오 사건은 블록체인의 한계성과 앞으로 나아갈 방향에 대해 많은 화두를 던진 사건으로 회자됩니다.

튜링완전성 언어 - 솔리디티

이더리움에 대해 공부하다 보면 가장 많이 듣는 단어가 바로 솔리디티라는 프로그래밍 언어와 튜링완전성이라는 단어입니다. 튜링이란 단어는 천재적인 수학자 앨런 튜링을 의미합니다. 2차 세계대전 당시 독일의 암호 애그니마를 해독했던 그 사람 입니다. 그는 이 세상의 모든 문제를 풀 수 있는 기계인 튜링머신을 상상하고, 그 기계의 알고리즘을 구현하는 언어를 ‘튜링완전언어’라고 명명합니다. 튜링완전 언어는 프로세스를 충분히 분할할 수 있을 만큼 작은 단위로 표현이 되어야 하고 조건문과 반복문이 존재해야 합니다. 그 이유를 설명 드릴께요.

 

물을 마시는 행위는 사실 굉장히 복잡한 단계에 의해 이루어 집니다. 한번 이 단순한 행위를 나눠 보겠습니다. 

  1. 수분이 부족하여 목이 마름을 뇌가 느낀다.

  2. 뇌는 뉴런을 통해 손으로 신호를 보낸다.

  3. 신호를 받은 손이 물컵에 손을 얹는다.

  4. 만약 물컵이 비어 있다면 물을 채운다.

  5. 물컵을 입 가까이 댄다.

  6. 입을 벌리고 물을 마신다.

  7. 빈 컵을 내려둔다. 

  8.  

이렇듯 모든 과정을 쪼개고, 이것을 알고리즘화 합니다. 이때 중요한 것이 조건문과 반복문인데, 만약 반복문이 없게 된다면 위의 알고리즘은 계속적으로 동작하지 않을 것입니다. 이 세상의 모든 문제를 자동으로 푸는것이 튜링머신인데, 한가지 문제만 풀고 멈춰버리면 그건 튜링완전하지 않게 되는 것이기 때문에 반복문이 중요합니다. 같은 맥락으로 조건문이 없다면 평생 물만 마시게 될텐데, 만약 중간에 목이 마를경우 라는 조건을 배가 고플 경우로 바꿔 준다면 간단히 물을 음식으로만 바꿔줘도 우리는 배고픔 이라는 문제를 해결 할 수 있게 되는 것이지요. 

 

정확히는 이더리움의 솔리디티만 튜링완전언어인것은 아닙니다. 단지, 비트코인의 스크립트 언어는 안정성을 위해 반복문 자체를 없앴고, 이때문에 튜링완전언어가 아니었던 것이지요. 하지만 그 이후에 나온 이더리움의 경우 블록체인을 통해 이론상으로는 ‘거의’ 무제한적인 저장용량을 확보할 수 있었고, 조건문, 반복문과 작은 단위로 나눌 수 있는 솔리디티 언어를 사용함에 따라, 비트코인에서 이룰 수 없었던 튜링완전성을 확보 할 수 있었던 겁니다. 그때 당시는 비교대상이 비트코인밖에 없었기 때문에 매우 훌류한 마케팅 포인트였지만 지금은 굉장히 다양한 솔루션이 제시되었기 때문에 그렇게까지 큰 의미를 가지진 않습니다. 

 

디앱의 연료, GAS

이더리움은 네트워크가 사용될때마다 수수료가 발생하도록 설계되었습니다. 가장 큰 이유는 바로 분산서비스 거부공격, 다른말로 디도스 (Distributed Denial of Service Attach, DDOS) 공격을 방지하기 위함입니다. 수수료가 있는게 어떻게 디도스 공격을 방지하냐구요? 디도스 공격의 기본 방식은 네트워크 안에 수없이 많은 가짜 트랜잭션을 만들어 내면서, 네트워크 자체를 마비 시킵니다. 하지만 만약 트랜잭션을 만드는데 수수료가 든다면 디도스 공격에 큰 비용이 발생하게 되고, 이는 곧 디도스 공격에 대한 기회비용이 됩니다. 결과적으로 해커들이 디도스 공격을 못하게 만드는 효과가 있는거죠. 뿐만아니라 이렇게 쌓이게 되는 수수료는 네트워크를 유지하는 노드들에게 보상으로서 주어지기 때문에 전체 네트워크의 안정성 확보에도 긍정적인 영향을 끼칩니다. 

 

이더리움 네트워크의 수수료는 GAS와 wei로 정해집니다. GAS는 어떤 작업을 수행함에 있어서 필요한 작업량의 단위일 뿐 그에대한 금전적인 가치가 정해져 있진 않습니다. Wei는 이더리움보다 더 작은 단위로서 이더를 1달러 지폐라고 생각한다면 Wei는 1센트 동전이라고 생각하시면 이해가 쉽습니다. 일반적으로 우리는 wei 대신 gwei라는 단위를 더 많이 쓰는데, 1wei = 0.1^18 이더로 그 단위가 너무 작기 때문이죠. 대신 1gwei는 10^9 wei로서 0.1^9이더에 해당하는 단위이기 때문에 수수료를 책정하는데 가독성이 훨씬 높습니다. 

 

이미 복잡하다구요? 역시 이해를 위해 예를 들어보겠습니다. 지금 여러분은 차를 한대 가지고 있습니다. 여러분이 해야할 작업은 두가지이고 아래와 같은 조건들이 있습니다.

 

작업 1

내용: A -> B로 운전

필요한 기름(GAS)양: 1리터

기름 가격: 1500원/1리터

 

작업 2

내용: B -> C로 운전

필요한 기름(GAS)양: 2리터

기름 가격: 1000원/1리터

 

A에서 B로 갈때, 필요한 기름 양이 1리터이고, 리터당 금액은 1500원이면 작업1을 완료할때 얼마의 비용이 드는걸까요? 맞습니다. 1500원의 비용이 듭니다. 작업 2도 동일하게 2리터의 기름이 필요한데, 주유할때 리터당 1000원에 기름을 넣을 수 있다면 작업2에 들어가는 비용은 2000원이 되는 것입니다. 이더리움은 이거와 비슷하게 모든 작업마다 GAS 책정하고, GAS당 가격을 스스로 정하게 함으로서 그 작업에 필요한 수수료를 이더로 표현합니다. 

 

만약 A->B를 갈때 실제로 필요한건 1리터 이지만 비용을 아끼고자 0.5리터만 주유를 하면 어떻게 될까요? 맞습니다. 차가 중간에 서버리게 되고 작업을 완료하지 못하게 됩니다. 이더리움에서도 동일하게 GAS를 너무 적게 책정해버리면 중간에 실행이 멈춰 버립니다. GAS는 그 작업량을 의미 하는 것이므로 적정량을 책정해야하는데, 이더리움은 자동으로 이를 제안합니다. 보통은 제안받은 GAS 양보다 조금 더 높은 GAS를 책정하는데, 다 쓰여지지 않은 GAS는 돌려받기 때문에 문제가 없습니다. 

 

GAS는 작업량을 의미하기 때문에 특정값이 정해져 있다고 보시면 됩니다. 그런데 만약 우리가 GAS의 가격인 gwei값을 낮게 설정하면 수수료를 아낄 수 있으니 좋은게 아닐까요? 이론적으론 맞습니다. 하지만 이더리움 네트워크의 동작 방식을 조금 더 이해하신다면 그렇게 생각 안하실 겁니다. 이더리움은 아직까진 POW 방식으로 노드가 블록을 생성합니다. 그리고 그 블록 안에 자신의 트랜잭션이 포함 되어야지만 블록체인 네트워크에 등록이 가능하며, 최종적으로 트랜잭션이 확정됩니다. 

 

만약 gwei가격을 너무 낮게 책정하면 노드는 해당 작업의 순번을 뒤로 돌려 버립니다. 불공평 하다고 느낄 수 있지만 수수료의 가격을 시장논리에 맡긴다고 이해하시면 될 것 같습니다. 만약 본인의 작업을 좀 더 빠르게 처리 하고 싶다면 GAS 가격인 gwei를 높게 책정하시면 됩니다. 최근 기사에서 비탈릭은 가스비용에 대한 초기 설계때문에 POS 기반의 이더리움 2.0을 앞두고 고통스러운 수정작업들이 진행되고 있다고 토로하기도 했습니다. (https://kr.coinness.com/news/650838)




한계성

크립토키티에서도 언급된 내용이지만 이더리움의 확장성과 느린 속도는 이더리움 기반의 모든 디앱 프로젝트에게 동일하게 적용됩니다. 혹자는 블록체인이 가져다 주는 안정성을 고려한다면 이러한 확장성과 상대적으로 느린 속도는 이해 할 수 있다고 얘기하기도 합니다. 하지만 기술적 이해가 없는 일반 사용자에게 이러한 제한적인 확장성과 속도를 강요할 수는 없습니다. 카카오톡을 블록체인 위에 올리고 서비스를 운영한다고 가정해 보겠습니다. 여러분이 친구에게 사진 한장을 보내는데 대략 7분이 걸리고, 그와중에 가스를 적게 책정해서 중간에 취소가 되버린다면 그러한 불편함을 받아들이실 수 있겠습니까? 

 

여기에서 굉장히 근본적인 의구심이 생깁니다. ‘우리는 과연 어플리케이션을 꼭 분산원장에 올려야만 하는것이가’ 라는 의구심 말입니다. 우리가 살고 있는 현재는 생각보다 많은 기술적 발전을 이루었습니다. 스마트폰의 데이터 전송 속도는 5G기술에 의해 1기가 정도 되는 영상을 1초에 받을 수 있습니다. 뿐만 아니라 메모리를 설계하는 방식은 2d에서 3d 형태로 발전하여 이전에 없던 용량을 이전과 동일 한 가격으로 확보할 수 있게 되었습니다. 

 

이러한 기술발전에 힘입어 우리는 실시간으로 영화나 드라마를 보고, 휴대폰으로 찍은 사진을 스마트폰의 어플리케이션으로 편집 또는 효과를 넣는 후작업을 합니다. 이러한 모든 서비스들은 매우 빠른 속도로 통신하면서 인간에게 전에 없던 편리성을 주고 있습니다. 그렇다고 이러한 서비스들의 보안성이 떨어질까요? 꼭 그렇지 만도 않습니다. 가상머신 기술과 클라우드 서비스들의 발전, 그리고 데이터 센터등을 통한 통합 관리에 의해 보안기술 역시 발전하였고, 현재 우리는 매우 안전하게 이러한 서비스를 빠른 속도로 누리고 있습니다.

 

이더리움위에서 만들어지는 디앱의 실질적인 경쟁 상대는 기존에 우리가 사용하고 있던 어플리케이션 및 서비스들입니다. 아무리 기술적으로 더 나은 안정성과 함께 중계자를 없앰으로서 비용을 낮춘다고 한들, 사용자들의 불편이 동반된다면 시장 경쟁에서 자연스럽게 밀리게 될 것입니다. 안정성 못지 않게 확장성과 속도는 사용자 입장에서 매우 중요하며, 이때문에 DAG와 같은 새로운 알고리즘을 사용한 헤데라 해시그래프와 같은 플랫폼들이 지속적으로 생겨나는 것입니다. 

 

극복방안

POW -> POS

이더리움 역시도 이러한 한계성을 너무나 잘 알고 있습니다. 하드웨어를 통해 블록을 생성하는 POW 방식은 그에대한 비용으로 막대한 전기비가 발생합니다. 또한 이러한 높은 비용때문에 큰 자본력을 가진 대형 채굴업체들을 중심으로 네트워크가 중앙화 되며, 이때문에 네트워크 전체에 대한 안정성이 낮아집니다. 또한 블록을 확정짓는데까지 오랜 시간이 걸리기 때문에 이중지불 또는 51% 어택같은 보안상의 문제에도 노출되어 있습니다. 그렇기 때문에 이더리움은 기존 POW합의 기반의 이더리움에서 POS 합의 기반으로의 전환을 앞두고 있으며, 이를 이더리움 2.0이라고 표현하고 있습니다. 

 

샤딩

이더리움은 속도와 확장성 문제를 해결하기 위해 샤딩이란 기술을 접목시킬 계획입니다. 샤딩이란 기존에 데이터베이스(DB)를 효과적으로 관리하기 위한 방법이었는데, 하나의 데이터베이스를 여러개의 데이터베이스로 수평분할하여 저장하고 처리하는 것입니다. 이렇게 분할된 데이터베이스들은 병렬로 동시에 처리될 수 있고, 노드별로 나누어진 데이터베이스만 처리하면 되기 때문에 보관 및 처리하는 데이터가 가벼워져 처리속도가 빨라집니다. 뿐만 아니라 이러한 수평적 분할은 동시에 처리될 수 있는 데이터 양을 늘려 줌으로서 확장성에도 도움이 됩니다. 



로드맵과 하드포크

1단계 - 프론티어 (Frontier)

프론티어라는 단어 자체는 개척이라는 의미를 가지고 있습니다. 이더리움 네트워크를 형성하는 단계이며, 새로운 블록체인 세상을 개척한다는 의미라고 보시면 됩니다. 2015년 7월 30일, 제네시스블록을 시작으로 프론티어는 시작되었으며 9월 8일 20만번째 블록에서 아이스에이지 하드포크가 있었습니다. 

 

2단계 - 홈스테드 (Homestead)

홈스테드는 정착과 경작이라는 의미가 있습니다. 이더리움이 시작된 이후 성장하는 단계로 보시면 되고, 여러 기능적인 업데이트들이 단행되었습니다. 2016년 3월 15일, 하드포크를 통해 시작된 홈스테드 직후, 2016년 6월에 다오 사건이 터지면서 계획에 없던 다오 포크가 2016년 7월 20일에 있었습니다. 

 

3단계 - 메트로폴리스 (Metropolis)

메트로폴리스는 거대 도시라는 의미입니다. 뉴욕을 메트로폴리탄이라고 표현하는 이유이기도 합니다. 이더리움이 본견적으로 성장할 발판을 마련하고, 고도화 되는 단계라고 보시면 됩니다. 메트로폴리스에서는 비잔티움과 콘스탄티노플 두단계를 거쳐서 완성되는데, 비잔티움은 2017년 10월 16일 437만번째 블록을 기점으로 실행되었습니다. 비잔티움 단계의 두번째 하드포크인 콘스탄티노플은 2019년 2월 28일 728만 블록을 기점으로 실행되었으며 POS단계로 넘어가기 위해 POW의 보상을 낮추는 난이도폭탄과 POS 네트워크로의 전환을 의미하는 캐스퍼 단계가 제안되었습니다. 

4단계 - 세레니티 (Serenity)

세레니티는 평화, 안정이라는 의미가 있습니다. 고도의 발전 이후 이제는 모든 것들이 안정화 되고는 단계를 나타냅니다. 세레니티 업그레이드에서는 기존의 POW 방식 체인과 POS 방식 체인을 중간에서 연결해주는 비콘체인을 소개하고, 샤딩기술의 도입과, 사용자 친화적이지 못했던 EVM을 eWASM으로 업그레이드 함으로써, 사용자들이 본인이 원하는 언어로도 스마트 컨트랙트를 작성 할 수 있도록 만듭니다. 현재 세레니티 업그레이드는 지속적인 설계와 검증 과정이 진행중입니다. 



총평

이더리움이 현대 블록체인 산업의 새로운 장을 열었다는 점에 대해서는 그 누구도 의심하지 않습니다. 블록체인을 지렛대 삼아 암호화폐 세계에서 비트코인이 0에서 1을 창조했다면 이더리움은 그 1에서 무한대의 가능성을 연 셈입니다. 하지만 동시에 속도와 확장성 문제로 인해 현재로서는 디앱플랫폼으로서의 기능을 못하고 있다는 점 역시 모두가 아는 사실입니다. 중요한 것은 앞으로의 이더리움의 행보라고 생각합니다. 처음 이더리움이 스마트 컨트랙트를 세상에 내놓았듯이, 그 어떤 프로젝트도 시도해 보지 못한 프로젝트 도중에 POW에서 POS로의 업그레이드를 진행하고 있습니다. 다른 사람이 진행중이던 프로젝트를 중간에 맡아서 해 보신 분이라면 아마 공감하실텐데요, 기존 설계에서 완전히 새로운 방향의 설계로 변경하는것은 상당히 어려운 작업입니다. 차라리 새로운 설계로 새로운 제품을 만드는게 훨씬 효율적일 겁니다. 그럼에도 불구하고 이더리움을 응원하는 이유는 현재 직면한 문제에 대해 도망치기 보다는, 마주하고 해결하기 위해 최선을 다하는 모습 때문일 겁니다. 

 

 

 

네오코인(NEO coin) 완벽정리!(클릭)

 

네오코인(NEOcoin) 완벽정리!

네오코인(NEOcoin) 완벽정리! 대륙의 코인 NEO 네오는 2015년 10월 중국 기업 온체인 CEO 다오 홍페이가 발행한 중국 최초 블록체인 기반 암호화폐입니다. NEO는 ‘중국의 이더리움’혹은 Ethereum's Killer

ddolssoo.tistory.com

퀀텀코인(큐텀 Qtumcoin) 완벽정리!(클릭)

 

퀀텀코인(큐텀 / Qtum coin) 완벽정리!

퀀텀코인 (큐텀 / Qtum coin) 완벽정리! 큐텀 소개 중국의 이더리움이라고 불리는 큐텀에 대하여 알아보도록 하겠습니다. 큐텀은 비트코인과 이더리움의 장점을 결합한 하이브리드 분산형 블록체��

ddolssoo.tistory.com

 

스텔라코인(STELLAR coin) 완벽정리! (클릭)

 

 

카르다노에이다(ADA coin) 코인 완벽정리! (클릭)

 

카르다노 에이다(ADA coin)코인 완벽 정리!

카르다노 에이다(ADA coin)코인 완벽 정리! 카르다노, 에이다 안녕하세요, 오늘은 카르다노 플랫폼에 대해 알아보겠습니다. 일반 투자자들에게는 에이다 (ADA)로 더 많이 알려진 코인 입니다. V 카르

ddolssoo.tistory.com

 

알고랜드(ALGO coin) 코인 완벽정리! (클릭)

 

알고랜드(Algorand ALGO coin) 완벽정리!

알고랜드 ALGO 코인 완벽정리! 알고랜드는 컴퓨터 공학계의 노벨상인 튜링상을 수상한 암호학 분야의 권위자인 실비오 미칼리가 설립한 플랫폼으로 블록체인 상용화를 위한 기술적 트릴레마(보�

ddolssoo.tistory.com

크립토닷컴(MCO) 크립토닷컴체인(CRO) 완벽정리!

 

크립토닷컴(MCO) 크립토닷컴체인(CRO) 완벽정리!

크림토닷컴(MCO) 크립토닷컴체인(CRO) 완벽정리! 크립토닷컴(MCO) 및 크립토닷컴체인(CRO) 두 가지의 암호화폐 모두 Cryto.com에서 발행하였습니다. 먼저, 크립토닷컴(MCO)은 실물경제 지불(Payment) 솔루

ddolssoo.tistory.com