- 이더리움이라는 용어는 크게 세가지를 가리킴
(1) 이더리움 프로토콜
(2) 프로토콜을 사용하는 컴퓨터로 작성된 이더리움 네트워크
(3) 위 두가지 개발을 진행하기 위한 이더리움 프로젝트
- 비트코인의 뒤를 잇는 이더리움은 업계의 수많은 지지자와 엔지니어를 끌어들이는 하나의 소우주가 되었따. 문명이 가장 잔인한 불완전성 중 많은 부분이 블록체인의 킬러 애플리케이션 영역이 될 수 있으며, 비트코인에서 파생되고 확장된 이더리움 프로토콜은 이런 분산된 앱이 생겨나게 될 네트워크로 기대되고 있다.
- 이더리움, 비트코인과 같은 오픈소스 블록체인 네트워크는 소프트웨어를 통해 경제시스템을 표현하고, 계좌관리 및 계좌간 가치교환의 기본단위를 갖춘 일종의 키트로서, 모노폴리(브루마불) 게임과도 같다. 사람들은 이런 기본교환단위를 코인, 토큰, 암호화폐 등으로 표현하자만 본질적으로 다른 시스템의 토큰과 다르지 않다. 특정 시스템 내에서만 사용할 수 있는 돈, 즉 증서(script)가 곧 토큰이기 때문. 블록체인은 메시 네트워크 또는 LAN과 같은 방식으로 작동. 즉 동일한 소프트웨어를 실행하는 피어 컴퓨터에 연결됨. 웹 브라우저를 통해 이러한 P2P 네트워크 중 하나에 액세스 하려면 Web3.js와 같은 특수 소프트웨어 라이브러리를 사용하고, 자바스크립트 API를 통해 애플리케이션의 프런트엔드(브라우저에서 볼 수 있는 GUI)를 백엔드(블록체인)로 연결해야 한다. 이더리움에서는 시스템 내부의 다른 사용자와 금융계약을 쉽게 작성함으로써 이 개념을 한 단계 더 발전시킬 수 있다. 이런 금융계약을 스마트 계약이라 부름. 이 개념의 핵심요소는 바로 튜링 완전 블록체인이다. 이더리움은 비트코인과 동일한 데이터 구조를 갖고 작동하지만, 프로그래밍 언어를 내장하고 있다는 점이 가장 큰 차이점
- 블록체인이라고 불리는 기술은 이름이 알려지지 않은 창시자가 만든 세가지 기술의 조합이다.
(1) P2P네트워킹 : 비트토렌트 네트워크처럼 하나의 중앙 관리기관에 의존하지 않고 통신할 수 있는 컴퓨터 통신방식으로 구조상 단일 고정점이 없다는 장점
(2) 비대칭 암호화 : 컴퓨터가 특정 수신자에 대해 암호화된 메시지를 보내 모든 사람이 보낸 사람의 진위여부를 확인할 수 있지만, 의도된 수신자만 메시지 내용을 읽을 수 있는 방버이다. 비트코인과 이더리움은 비대칭 암호를 사용해 계정에 대한 자격증명 집합을 만들어, 토큰의 소유자만이 토큰을 전송할 수 있도록 한다
(3) 암호해싱 : 모든 데이터에 대해 고유의 작은 지문을 생성해 대규모 데이터셋을 신속하게 비교하고, 데이터가 변경되지 않았음을 확인하는 안전한 방법이다. 비트코인과 이더리움의 머클트리 데이터 구조는 거래의 정렬된 순서를 기록하는 데 사용되며, 이 순서는 네트워크 상의 컴퓨터에 대한 비교의 기초역할을 하는 지문으로 생성되고 신속하게 동기화 가능
- 위 세가지 요소의 결합은 90년대와 2000년대 초에 걸친 디지털 현금 실험을 통해 성장. 애덤 블랙은 2002년에 해시캐시를 선보였고, 채굴을 통한 트랜잭션 전송을 처음으로 구현. 아직 신원이 밝혀지지 않은 사토시 나카모토가 09년에 비트코인을 만들면서 이 혁신에 대한 공감대는 널리 전파되었다. 이 세가지 요소를 조합하면, 네트워크의 여러 노드에 분산되어 저장되는 간단한 데이터베이스를 모방할 수 있다. 비트코인은 마치 개미군집이 유기적으로 개미집을 구성하는 것과 같은 방식으로 하나의 기계를 이룬다. 이를 컴퓨터 용어로 가상머신이라고 부름
- 비트코인과 기타 유사 네트워크가 가지는 유일한 취약점은 최종 회수자가 없다는 점인데, 비트코인이나 이더를 현금으로 교환해줄 수 있는 신뢰할 수 있는 단체는 없다. 비트코인을 실제 가치의 무언가로 변환하는 유일한 방법은, 법정화폐와 비트코인 사이의 거래가 가능한 온라인 거래소에 접속해 다른 구매자를 찾는 방법 뿐이다. 비트코인 네트워크가 비트코인 토큰을 유통하는 것처럼, 이더리움 네트워크는 이더라는 토큰을 유통함. 이더는 비트코인과는 다르게 작동하는데, 통화보다는 암호재화에 가까움.
- 비트코인과 이더리움이 소프트웨어 프로그램 작성에 복잡성을 더하는 것은 사실이다. 하지만 다른 관점에서 보면 더 간단하게 보일 수 있다. 분산형 프로토콜 자체는 70년대 컴퓨터 작업방식과 유사. 당시 컴퓨터는 거대하고 값비싼 공유자원이었고, 개인은 컴퓨터를 소유하고 있는 대학이나 회사로부터 컴퓨터의 처리시간을 빌릴 수 있었다. 이더리움 네트워크는 프로그램을 엄격하게 실행하는 하나의 대형 컴퓨터와도 같다. 여러 기계의 네트워크에 의해 가상화된 하나의 기계인 셈이다. 많은 사설 컴퓨터들로 구성되는 이더리움 가상머신(Etherium virtual machine, EVM) 자체는 소유자가 없는 공유 컴퓨터라고 할 수 있다.
- 미스트는 때때로 지갑이라고도 불리며, 이는 비트코인 시스템에서 빌린 용어. 비트코인 애플리케이션이 지갑이라 불리는 이유는 뭘까? 지갑 앱을 사용하면 돈을 보내고 받을 수 있지만 지갑 자체가 실제로 돈을 가지고 있는 것은 아님. 이런 애플리케이션을 스마트폰에 설치하면 분산 데이터베이스에 데이터를 읽고 쓸 수 있는 암호화 키가 발급된다. 그래서 키체인(열쇠고리)이 더 나은 비유일 수 있지만, 실제로 지갑이라는 용어가 훨씬 널리 쓰이고 있다.
- 오늘날 기업, 보험회사, 대학 및 기타 대형기관은 직원 및 모든 사업부서에 소프트웨어 서비스 및 IT를 구축하고 유지보수하는데 많은 돈을 투자한다. 다양한 자금의 유입과 유출을 중재하는 곳은 보통 대형 상업은행으로 고유의 아키텍처, 정책, 코드베이스, 데이터베이스 및 인프라 계층을 갖고 있다. 물론 이러한 은행 시스템의 기저에는 연방 준비은행의 실시간 총체 정산 시스템인 페드와이어가 있다. 연방 준비은행은 미국 중앙은행이다. 페드와이어는 모든 연방준비은행 회원은행이 최종 지불금액을 전자 미국달러로 결제하는 데 사용됨. 공인된 주 정부 공인은행은 주식을 사는 방법으로 이 시스쳄의 회원이 될 수 있다. 페드와이어는 12개 연방 준비은행이 자체 소유하고 운영하며, 수수료를 부과하기는 하지만 이익을 위해 운영되지는 않는다. 이 시스템은 매일 수조달러에 이르는 엄청난 금액의 미국달러를 매일 처리함. 여기에는 기존계정과 승인된 계정을 모두 포함하는 당좌대월 시스템이 있으며, 해외송금도 처리할 수 있어 시스템의 안정성은 매우 우수. 그리고 그 형식은 달라졌지만 약 100년째 운영되어 오고 있다. 상상할 수 있겠지만 페드와이어 소프트웨어의 보안 및 안정성을 유지하는 데 극도로 높은 비용이 투입됨. 그리고 보안요구사항 때문에 RTGS 상단에 레이어를 만들고 유지하는 데 드는 비용 역시 여전히 높다. 궁극적으로 이런 비용부담은 수수료의 형태로 시중은행을 이용하는 기업에 전가됨. 이런 회사는 자체 IT 인프라 비용을 할당한다. 궁극적으로 이런 비용은 소비자가 치르게 되는 가격 및 수수료를 상승시킴
- 기억장치가 있는 기계, 즉 상태기계는 절대로 잠들지 않는다. EVM역시 상태기계이기에, EVM은 메모리 뱅크 내에 모든 트랜잭션에 대한 고정된 이력을 보관하고 모든 트랜잭션을 가지는 상태는 최초에 스위치가 켜진 이후에 컴퓨터 내부에서 일어난 모든 단일상태 변화들이 모여 이루어진 결과이다. 상태기계가 가지는 가장 최신의 상태는 해당 상태기계가 현실속에서 가지는 진정한 진실이라고 할 수 있다. 이더리움은 이 진실을 통해 각 계정의 잔고, 그리고 이러한 잔고상태를 만들어낸 일련의 트랜잭션을 담는다. 그러므로 트랜잭션 상태기계의 입장에서 볼 때 일종의 진술이다. 한 상태와 다른 상태를 연결하는, 계산적으로 유효한 연결고리인 것이다.
- 이더리움의 상태전이 함수는 아래 여섯 단계로 정의됨. 각 단계는 블록의 각 트랜잭션에 대해 EVM이 수행하는 절차다
(1) 트랜잭션이 올바른 형식인지 확인. 올바른 값이 포함되어 있는가? 서명이 유효한가? 트랜잭션의 논스(일종의 트랙잭션 카운터)가 계정의 논스와 일치하는가? 이들 중 하나라도 잘못되어 있으면 오류를 범한다.
(2) 필요한 작업량에 가스 가격을 곱해 거래수수료를 계산한다. 그런 다음 사용자 계정 잔액에서 수수료를 차감하고, 발신자의 논스를 증가시킨다. 계정에 이더가 충분하지 않으면 오류를 반환한다
(3) 가스지불을 초기화한다. 이 시점부터는 트랜잭션에서 처리된 바이트만큼 특정 양의 가스를 차감
(4) 트랜잭션 금액을 수신계정으로 보낸다. 수신자 계정이 아직 존재하지 않으면 새로 생성한다(오프라인 이더리움 노드도 계정을 생성할 수 있으므로, 트랜잭션이 완전히 끝날 때까지 네트워크가 해당 계정을 인지하지 못할 수 있다.) 수신계정이 계약계정이면 계약코드를 실행한다. 이것은 코드실행이 끝나거나 가스지불이 끝날 때까지 계속된다.
(5) 송신계정에 트랜잭션을 완료할 수 있을만큼 이더가 충분하지 않거나 가스가 소진되면 이 트랜잭선의 모든 변경사항이 롤백된다. 단, 채굴자에게 이미 지불된 수수료는 환불되지 않으므로 주의할 것
(6) 다른 이유로 트랜잭션이 오류를 던지면 송신계정에 가스를 환불하고, 채굴자가 사용한 가스와 관련된 비용만 채굴자에게 보낸다
- 가스는 이더리움 네트워크의 연산비용을 측정하는 데 사용하는 작업단위. 가스의 값은 소량의 이더로 지급됨. 가스의 목적은 두가지다. 첫째 어떤 이유로든 코드의 실행이 실패하더라도 코드를 실행하고 네트워크를 보호하는 채굴자에 대해 선불보상을 보장함. 둘째, 중단문제를 해결하고, 선불로 지불한 비용 이상으로 실행이 오래 지속될 수 없도록 한다. 가스는 일의 단위이다. 가스는 화폐단위가 아니며, 보유하거나 저장 불가. 가스는 단순히 계산의 각 단계가 얼마나 많은 일을 필요로 하는지 측정하는 단위일 뿐이다. 가스비용을 지불하기 위해서는 계정에 이더를 보유하기만 되며, 별도로 취득할 필요는 없다. 가스만을 위한 토큰은 없다. EVM에서 가능한 모든 작업에는 가스 비용과 관련되어 있다.
- 기존의 웹 애플리케이션에서는 네트워크를 이용해 데이터를 주고받고 공유하는 데이터베이스를 지닌 많은 개별 서버가 있다. 이 데이터는 다른 서버에 있는 애플리케이션에서 조작이 가능. 트래픽 수요를 감당하기 위해 더 많은 서버가 필요해지는 경우도 많음. 서버는 웹을 통해 사람들에게 제공하려는 특정 종류의 서비스의 일부로 지정된 역할을 수행하는 컴퓨터를 가리킴. 일부 서버는 데이터베이스라고도 불리우는 데이터(고객이름 및 주소 등으로 이루어진 스프레스시트와 유사)를 포함하며, 일부 서버는 다른 컴퓨터가 네트워크를 통해 액세스할 수 있는 애플리케이셔을 실행. 이더리움에서 네트워크가 곧 데이터베이스이며, 이 네트워크는 모든 사용자가 사용할 수 있는 애플리케이션을 실행. 그러므로, 이더리움을 배우면 세가지를 모두 꽤 많이 할 수 있게 된다.
- 모든 형태의 돈과 마찬가지로 토큰 자체를 사회적 계약이나, 사용자 그룹간의 합의로 볼 수도 있다. 토큰을 사용하는 그룹의 암묵적 동의를 다음과 같이 풀어서 표현할 수 있을 것이다. '우리 모두는 이 토큰이 우리 공동체에서 돈이라는 데 동의 합니다.' 이는 또한 해당 토큰을 위조함으로써 사회기반을 약화시키지 않겠다는 동의이기도 하다.
'IT' 카테고리의 다른 글
그림 한장으로 보는 최신 IT트렌드 (0) | 2018.05.26 |
---|---|
플랫폼 시장의 지배자 (0) | 2018.05.19 |
알기 쉬운 블록체인 (0) | 2018.04.07 |
핀테크 세상을 열다 (0) | 2018.02.11 |
비트코인이란 무엇인가 (2) | 2018.02.11 |