이더리움
이더리움(Ethereum)은 블록체인 기술을 기반으로 스마트 계약 기능을 구현하기 위한 분산 컴퓨팅 플랫폼이다. 이더리움은 비트코인을 기반으로 만든 가장 대표적인 알트코인으로서, '비트코인 2.0'이라고도 부른다. 이더리움이 제공하는 이더(Ether)는 비트코인과 마찬가지로 암호화폐의 일종으로 거래되고 있다. 엄밀한 의미에서는 '이더리움'은 플랫폼이고, '이더'가 암호화폐이지만, 일반적으로 양자를 구별하지 않고 '이더리움'을 암호화폐의 이름으로 사용하기도 한다. 이더리움의 화폐 단위는 ETH이다. 2015년 7월 비탈릭 부테린(Vitalik Buterin)이 C++과 고(Go) 언어로 개발했다. 이더해시(Ethash) 알고리즘 기반의 작업증명(PoW) 방식으로 채굴 중이지만, 앞으로 작업증명 방식을 벗어나 지분증명(PoS) 방식으로 변경할 예정이다.[1]
개요
이더리움은 초기에 이시리움 또는 에테리움 등 다양한 이름으로 불리다가 시간이 지남에 따라 이더리움으로 표기가 통일되고 있다. 영어로 Ethereum의 정확한 발음은 미국식으로 이씨리엄([iˈθɪɹiəm])이고, 영국식으로는 이씨어리엄([iˈθɪəɹiəm])이다. 중국어로는 이타이팡(以太坊, 이태방, yǐ tài fāng)이라고 한다.
이더리움은 디앱(DApp)을 배포할 수 있는 분산 응용 애플리케이션 플랫폼이며 스위스를 거점으로 하는 이더리움재단(Ethereum Foundation)에서 개발하고 있는 오픈소스 프로젝트이다. 이더리움 이전의 블록체인 기반 기술은 전자화폐에 특화된 기능을 구현했기 때문에, 암호화폐 이외의 영역에서 사용하기에는 어려움이 있었다. 반면 이더리움은 비트코인과 비슷한 전자화폐의 기능과 더불어 솔리디티(Solidity) 등의 튜링완전성(Turing-Completeness)을 갖춘 확장용 언어를 이용해 스마트 계약을 작성함으로 여러 분야에 접목할 수 있다. 덕분에 블록체인 기술을 다양한 비즈니스 분야로 확장할 수 있게 되었다.
역사
- 2013년 11월 : 당시 19세의 비탈릭 부테린(Vitalik Buterin)은 이더리움 백서를 작성하여 이더리움 개발을 제안했다.
- 2014년 07월 ~ 09월 : 비탈릭 부테린이 주도하여 이더리움재단을 구성하고, 크라우드펀딩 방식의 ICO를 통해 비트코인 3만 1천개를 개발 자금으로 모았다.
- 2015년 05월 09일 : 이더리움의 퍼블릭 테스트넷인 '올림픽 테스트넷'을 공개했다.
- 2015년 07월 30일 : 이더리움 서비스를 정식으로 시작했다. 이더리움 최초의 블록, 즉 제네시스 블록이 생성되었다. 이더리움 프론티어 단계가 시작되었다.
- 2015년 09월 07일 : 이더리움 200,000번째 블록에서 하드포크를 수행했다.
- 2015년 11월 09일 ~ 13일 : 이더리움 데브콘 1 행사를 진행했다.
- 2016년 03월 14일 : 이더리움 1,150,000번째 블록에서 홈스테드 단계로 이행했다.
- 2016년 04월 ~ 05월 : 이더리움 블록체인 기반의 더 다오 펀드(The DAO Fund)를 구성하고, 1.5억 달러에 해당하는 투자자금을 모았다.
- 2016년 06월 : 더 다오(The DAO)에 대한 해킹 사건이 발생했다.
- 2016년 07월 20일 : 이더리움 1,920,000번째 블록에서 하드포크를 진행하여 이더리움이 두 가지 버전으로 분리되었다. 이 중 구 버전을 이더리움 클래식(Ethereum Classic, ETC)이라고 부르고, 신 버전을 이더리움(Ethereum, ETH)이라고 부른다.
- 2016년 09월 19일 ~ 21일 : 이더리움 데브콘 2 행사를 진행했다.
- 2016년 10월 18일 : 이더리움 2,463,000번째 블록에서 EIP 150 하드포크를 수행했다.
- 2016년 11월 22일 : 이더리움 2,675,000번째 블록에서 스퓨리어스 드래곤(Spurious Dragon) 하드포크를 진행했다.
- 2017년 05월 : 삼성SDS㈜가 기업형 이더리움 연합체인 EEA에 회원사로 가입했다.
- 2017년 06월 : 이더리움의 시장 규모가 약 20조원을 돌파했다.
- 2017년 10월 16일 : 이더리움 4,370,000번째 블록에서 비잔티움 하드포크를 진행했다.
- 2017년 11월 01일 ~ 04일 : 이더리움 데브톤 3 행사를 진행했다.
- 2018년 01월 비탈릭 부테린이 기존 ICO의 문제점을 해결하고자 새로운 방식의 다이코(DAICO)를 제시했다.
- 2018년 10월 13일 : 이더리움의 콘스탄티노플 하드포크를 시도했으나 실패했다.
- 2018년 10월 30일 ~ 11월 02일 : 이더리움 데브콘 4 행사를 진행했다.
- 2019년 01월 16일 : 이더리움 7,080,000번째 블록에서 이더리움 콘스탄티노플(Ethereum Constantinople) 하드포크를 재시도할 예정이다.
특징
이더리움은 기존 비트코인의 핵심 기능인 블록체인 기술을 그대로 계승하였을 뿐 아니라, 기존 비트코인을 뛰어넘은 혁신적인 기술로 평가되고 있다.
스마트 계약
비탈릭 부테린은 비트코인에 사용된 핵심 기술인 블록체인에 화폐 거래 기록뿐 아니라 계약서 등의 추가 정보를 기록할 수 있다는 점에 착안하여, 스마트 계약 기능을 구현했다. 스마트 계약(smart contract)이란 블록체인 기반으로 금융거래, 부동산 계약, 공증 등 다양한 형태의 계약을 체결하고 이행하는 것을 말한다. 블록체인 2.0이라고도 한다. 1996년 닉 재보(Nick Szabo)가 처음 제안했으나 실제 구현하지는 못하였다.
2013년 비탈릭 부테린이 비트코인의 블록체인 기술을 이용하여 대금결제, 송금 등 금융거래뿐 아니라 모든 종류의 계약을 처리할 수 있도록 기능을 확장하면서 스마트 계약이 구현되었다. 부테린은 원래 새로운 암호화폐를 만들지 않고, 기존 비트코인의 소스 코드를 일부 수정하여 스마트 계약 기능을 구현하고자 하였다. 그러나 비트코인 커뮤니티에서 자신의 요구가 받아들여지지 않자, 비트코인을 포크하여 새로 이더리움이라는 암호화폐를 만들고 스마트 계약 기능을 구현하였다.
스마트 계약은 코드에 적힌 계약 조건이 만족되면 그 즉시 계약이 성사된다. 이때 계약 상대방이 믿을만한 사람인지, 중간에 신뢰를 보증할 제3자가 필요한 것은 아닌지, 계약이 안전하게 처리됐는지를 고민할 필요가 없다. 모든 과정은 자동으로 이뤄진다. 즉, 스마트계약은 어떠한 다운타임, 검열, 사기 행위, 제3자 간섭 없이 프로그래밍된 대로 정확히 실행되는 프로그램이다. 코드로서 블록체인에 기록되기 때문에 누구도 처음에 명시된 조건을 바꿀 수 없다. 이더리움은 블록 안에 거래 기록뿐 아니라 조건문과 반복 명령어 등 실행 코드를 포함하는 것이 가능해 금융 결제뿐만 아니라 다양한 분야에서 사용할 수 있다. 그래서 비트코인과는 달리 이더리움에서는 각 비즈니스 로직에 따른 복잡하고 다양한 계약 패턴을 소화할 수 있다. 스마트 계약 기능을 사용하면, 개발자가 직접 계약 조건과 내용을 코딩할 수 있기 때문에, 원칙적으로 인간이 상상할 수 있는 모든 종류의 계약을 이더리움 플랫폼을 이용해 구현할 수 있다.
플랫폼
이더리움은 다른 탈중앙 분산 애플리케이션인 디앱(DApp)을 개발하고 운영할 수 있는 플랫폼이다. 모든 암호화폐는 기본적으로 매우 유사한 방식으로 작동하기 때문에, 프로그램 소스 코드의 상당 부분이 동일하게 재사용될 수 있다. 새로운 암호화폐를 개발할 때마다 매번 반복하여 새로 프로그램 소스 코드를 작성하지 않고, 기존 암호화폐를 기반으로 몇 가지 차이점에 해당하는 부분만 새로 개발하는 것이 효율적이다. 비탈릭 부테린은 이런 특징을 고려하여, 여러 가지 암호화폐에서 공통적으로 사용할 수 있는 특징들을 모아 이더리움 플랫폼을 구성했다.
개발자는 이더리움 플랫폼 위에 다양한 분산형 애플리케이션(DApp)을 구축할 수 있다. 이 디앱은 익명성, 무국적성, 탈중앙화, 분산화 등 블록체인의 특성을 고스란히 가지고 있어서 국가에서 직접적으로 통제하는 것이 불가능하고, 스마트 계약을 통해 각 사물 그리고 수많은 주체들과 계약을 체결하여 자동화된 경제 생활도 누릴 수 있는 등 많은 가능성을 안고 있다. 현재 무수한 소규모 블록체인 디앱이 이더리움 위에서 운영되고 있고, 그 수는 점차 늘어나고 있는 추세다. 경제뉴스 사이트인 파이낸스 매그닛(Finance Magnate)의 보도에 따르면, 2017년 기준으로 총 1,090개의 분산 앱(DApp)과 700개 이상의 암호화폐 토큰이 이더리움 플랫폼 기반으로 개발되었다고 한다. 덕분에 이더리움은 비트코인 다음 가는 블록체인으로 꼽히지만, 과거에 비해 전송 속도가 느려졌다.
ERC-20은 이더리움 내에서 만들어지는 토큰의 표준이다. 호환성 및 관리를 쉽게 하기 위해 토큰도 일정한 표준을 따른다. 표준을 따름으로써, 디앱들간의 상호작용을 증진시키고 다른 토큰 간 통합 시 오류와 버그 가능성을 줄일 수 있다. ERC-20은 대체 가능한 암호화폐를 지원한다.
ICO 도입
비탈릭 부테린은 초기 이더리움 개발에 필요한 자금을 모으기 위해 ICO 방식을 도입했다. ICO는 Initial Coin Offering의 약자로서, 새로운 암호화폐를 만들기 위해 불특정 다수의 투자자들로부터 초기 개발 자금을 모집하고 그 대가로 코인을 나눠주는 '초기코인공개' 행위를 말한다. ICO는 크라우드펀딩(crowdfunding)의 일종으로서, 주식 공개 모집을 의미하는 IPO에서 나온 말이다. 투자자들은 기업이 제공하는 웹사이트, 백서, 개발 결과물들을 살펴보고 그들이 새롭게 발행하는 암호화폐의 추후 가치를 판단함으로 투자 여부를 결정할 수 있다.
크라우드펀딩의 장점은 제품이나 서비스의 아이디어를 구현하는 기업이 자금을 조달하기 위해 인터넷에서 공모하면, 투자자가 소액으로 부담 없이 쉽게 참가할 수 있다는 것이다. 개인이나 기업이 자금 조달을 위한 프로젝트 정보를 스마트 계약으로 만들어 투자자를 모집하고, 투자자는 암호화폐를 사용해 자금을 제공한다. 투자한 프로젝트가 이익을 낸다면 배당금은 암호화폐로 돌려받을 수 있다.
ICO를 처음 도입한 것은 마스터코인(옴니레이어)이었고 그후 몇 차례 ICO가 진행되었으나 모금된 액수도 작고 큰 관심을 끌지 못하였다. 하지만 이더리움에 도입된 ICO 방식은 대성공을 거두어, 이후 다양한 암호화폐 개발에서 ICO 방식의 자금 모집이 널리 확산되었다. 이더리움이 도입한 ICO 방식은 이후 다이코(DAICO) 방식으로 한 단계 발전하였다. ICO에 대해 자세히 보기 다이코에 대해 자세히 보기
주요 기술
이더리움은 기존 비트코인에서 볼 수 없었던 다양한 새로운 기술을 개발·도입했다.
솔리디티 언어
비탈릭 부테린은 이더리움을 이용한 스마트 계약 기능을 구현하기 위해 솔리디티(Solidity)라는 프로그래밍 언어를 채택했다. 솔리디티는 이더리움 플랫폼 안에 내장돼 있는 프로그래밍 언어로서, 튜링 완전 언어이다. 특정 프로그램 언어가 '튜링 완전 언어'로 평가받는다는 것은 이 프로그램을 이용하면 어떠한 애플리케이션도 개발할 수 있고, 어떤 계산식도 풀 수 있다는 것을 의미한다. 솔리디티는 튜링 머신에 들어갈 알고리즘을 만들 수 있는 언어이다. 튜링 완전 언어인 솔리디티를 이용해 어떠한 종류의 스마트 계약도 코딩할 수 있다.
솔리디티는 2014년 8월에 개빈 우드(Gavin Wood)에 의해 처음으로 제안되었고, 이후 이더리움 프로젝트의 크리스천 라이트위스너(Christian Reitwiessner)가 이끄는 솔리디티팀에 의해 개발되었다. 솔리디티는 이더리움 가상머신(EVM)을 목표로 설계된 4가지 언어 중 하나이다. 서펜트(Serpent)와 엘엘엘(LLL) 언어가 있고, 실험용 언어인 바이퍼(Viper) 및 미사용 언어인 뮤탄(Mutan)이 있었는데, 이 중에서 솔리디티가 이더리움의 주요 언어가 되었다. 솔리디티는 이더리움과 경쟁 중인 텐더민트를 합의 알고리즘으로 사용하는 모낙스(Monax)나 하이퍼레저(Hyperledger) 등 다른 프라이빗 블록체인 플랫폼에서도 동작한다. 스위프트(SWIFT)는 개념증명(PoC)에 솔리디티를 사용하기도 하였다.
코넬 대학교의 한 연구원은 솔리디티가 부분적으로 2016년에 일어난 더 다오(The DAO) 해킹 사건에 책임이 있다고 말했다. 그는 "해킹 사건은 실제로 더 다오(The DAO) 계약 스스로의 결함이나 부당 이용이 아니며, 기술적으로 이더리움 가상머신(EVM)은 의도대로 작동을 했다. 하지만 솔리디티가 보안 허점을 나타냈는데, 이는 커뮤니티만의 실수가 아닌 언어 자체의 설계자들의 실수이다."라고 말했다.
솔리디티는 정적타입(statically-typed)의 프로그래밍 언어로 이더리움 가상머신 위에서 작동하는 스마트 계약을 개발하기 위해 설계되었다. 솔리디티는 이더리움 가상머신에서 작동 가능한 바이트코드로 컴파일된다. 개발자는 솔리디티를 통해서 스스로 실행되는 비즈니스 로직을 스마트 계약에 담아서 애플리케이션을 구현할 수 있다. 스마트 계약에 기록된 사항은 부인할 수 없으며, 강제적으로 수행된다. 솔리디티와 같은 구체적인 스마트 계약용 언어를 사용한 스마트 계약의 작성은 프로그래밍 기술을 보유한 사람들에게는 어렵지 않은 것으로 보인다.
솔리디티는 개빈 우드(Gavin Wood)의 설계대로 ECMA 스크립트(ECMAScript) 문법을 기반으로 하였는데, 이는 기존 웹 개발자들로 하여금 친숙하게 만든다. 하지만 솔리디티는 ECMA 스크립트와 달리 정적 입력과 지정 및 가변적인 반환 유형이 있다. 서펜트와 뮤탄(Mutan) 같은 당시의 다른 이더리움 가상머신 타깃팅 언어와 비교할 때, 솔리디티에는 몇 가지 중요한 차이점이 있다. 솔리디티는 임의의 계층적 매핑을 포함하는 계약을 지원하기 위한 복잡한 멤버 변수가 지원된다. 또한 계약은 상속을 지원하는데, C3 선형화 다중상속 기능을 포함한다. 하나의 계약 내에서 다중 타입의 안전한 함수가 가능하게 하는 응용 이진 인터페이스(ABI) 또한 솔리디티에 소개되었다. 이 기능은 추후 서펜트에 의해 지원되었다. 메소드 호출의 진행 상태에 대해서 사용자 중심으로 명세하기 위한 문서화 시스템과 관련된 내용이 자연언어 상세사양으로 제안서에 포함되었다.
이더리움 가상머신
비탈릭 부테린은 이더리움 가상머신(EVM, Ethereum Virtual Machine)이라는 새로운 기술을 도입했다. 이더리움은 프로그래밍이 가능한 블록체인으로서, 사용자에게 사전 정의된 일련의 작업을 제공하기보다 사용자가 원하는 복잡성을 따라 직접 작업을 만들 수 있도록 한다. 좁은 의미에서 이더리움은 디앱을 위한 플랫폼을 정의하는 일련의 프로토콜을 의미한다. 그 중심에 이더리움 가상머신이 있다. 이더리움 가상머신은 임의의 복잡한 알고리즘 코드를 실행할 수 있다. 개발자는 자바스크립트 및 파이썬과 같은 기존 언어를 모델로 한 친숙한 프로그래밍 언어를 사용하여 이더리움 가상머신 위에서 실행되는 응용 프로그램을 만들 수 있다. 즉, 이더리움은 이더리움 가상머신이라고 하는 블록체인에서 실행 환경을 구현한다. 네트워크에 참여하는 모든 노드는 블록 검증 프로토콜의 일부로 이더리움 가상머신을 실행한다. 네트워크 내 모든 노드는 이더리움 가상머신을 구동하는 것이다. 모든 노드는 이더리움 가상머신을 사용해 스마트 계약을 가리키는 모든 트랜잭션을 실행하므로 모든 노드는 동일한 계산을 수행하며 같은 값을 저장한다. 이렇게 이더리움 가상머신(EVM)을 통해 모든 노드들의 컴퓨터에서 동일한 연산을 수행함으로 동일한 상태(state)에 합의한다. 이더리움은 전 세계 모든 참가자가 동일한 하나의 컴퓨터를 돌리는 것과 같기 때문에 '세계 컴퓨터'(world computer)라고 불리기도 한다.[2]
스마트 계약에 기반한 디앱은 모두 이더리움 가상머신(EVM) 환경에서 동작하며, 솔리디티라는 이더리움 고유의 프로그래밍 언어로 작성된다. 이것을 solc로 컴파일해서 생성된 이더리움 바이트코드는 geth를 통해 블록체인에 등록된다. 블록체인에 저장된 바이트코드는 결국 이더리움 가상머신(EVM)에서 실행된다. geth와 이더리움 가상머신은 하나의 프로세스로 동작하고, 솔리디티로 작성된 스마트 계약은 이더리움 가상머신에서 동작하기 때문에 특정 운영체제에 종속되지 않는다.
이더리움 가상머신은 앞으로 웹어셈블리(WASM) 언어 기반으로 변경될 예정이다. 이더리움 가상머신은 내부적 일관성도 있고 광범위한 명령어를 사용할 수 있는 장점이 있지만, 현실 세계에서 프로그램을 구현하려고 하면 상당이 불편하고 제약이 많다는 비판을 받고 있다. 이더리움의 핵심 개발자인 닉 존슨은 "이더리움 가상머신은 상용화보다는 순수 이론에 적합하다"고 말했다.[3] 반면, 웹어셈블리 코드는 처음부터 대량생산을 염두에 두고 개발되었기 때문에 프로그램 작업이 매우 효율적이며, 하드웨어 명령어를 정교하게 다룰 수 있고, 솔리디티가 아닌 다른 여러 언어를 사용하여 자유롭게 코딩할 수 있다. 웹어셈블리를 사용하면 시스템 업그레이드를 할 때마다 굳이 번거로운 하드포크를 하지 않고도 스마트 계약만으로 연산을 간단히 작성할 수 있다는 장점이 있다.
피어 검색
이더리움은 비트코인과 마찬가지로 피투피(P2P) 네트워크상에서 거래 이력을 블록체인에 기록하는 한편 스마트 계약이나 실행 이력도 기록할 수 있는 특징이 있다. 비트코인과 마찬가지로 블록이 생성되면 블록에 저장된 스마트 계약이나 송금이 실행된다. 노드가 네트워크의 일부가 되기 위해서는 네트워크 내 다른 노드와 연결돼야 한다. 네트워크에 있는 모든 노드와 연결될 필요는 없으며 대신 몇 개의 다른 노드와 연결하면 된다. 그리고 이 노드들도 다른 몇 개의 노드와 연결된다. 이러한 방식으로 전체 네트워크가 서로 간에 연결된다.
중앙 서버가 없는데도 네트워크 내 다른 노드를 쉽게 찾을 수 있는 이유는, 카델리마(Kadelima) 프로토콜에 기반을 둔 자체적인 노드 검색 때문이다. 이러한 노드 검색에는 부트스트랩(bootstrap) 노드라고 불리는 특별한 종류의 노드가 있다. 부트스트랩 노드는 일정 기간 동안 연결했던 모든 노드 목록을 유지한다. 피어가 이더리움 네트워크에 접속될 때, 마지막 지정된 시간 내에 연결됐던 피어의 목록을 공유하는 부트스트랩 노드에 먼저 연결된다. 연결된 피어는 이제 다른 피어들과 연결되고 동기화된다. 그밖의 다른 노드는 디스커버리 프로토콜을 사용해 발견할 수 있다.
모든 피투피(P2P) 커뮤니케이션을 블록체인상에서 실행하는 것은 비용이 많이 들기 때문에 이더리움은 3개의 커뮤니케이션 프로토콜을 구축했다. 메시지 확산을 위한 스웜(swarm) 프로토콜, 안전한 메시지 통신을 위한 위스퍼(whisper) 프로토콜, 그리고 트랜잭션과 블록 해시의 커뮤니케이션을 위한 Eth 프로토콜을 구현했다.[4]
트랜잭션
이더리움에서 트랜잭션(transation)이라는 용어는 외부 소유 계정에서 블록체인의 다른 계정으로 보낼 메시지를 저장하는 서명된 데이터 패키지를 나타내기 위해 사용한다. 트랜잭션은 다음 사항을 포함한다.
- 메시지 수신자
- 발신자를 확인할 수 있는 서명
- 전송할 이더의 양
- 계약서로 전송된 메시지를 포함할 수 있는 선택적 데이터 필드
- 트랜잭션 실행을 위해 허용되는 최대 연산 단계 개수(가스 한도)
- 트랜잭션 발신자가 각 연산 단계를 위해 지불하는 비용(가스 가격)
이 중에서 처음 세 항목은 암호화폐에서 거의 표준처럼 사용되는 값이다. 데이터 필드는 이렇게 모든 거래에는 가스(gas)라고 불리는 거래 수수료의 한도와 가격이 포함되어야 한다. 평균 15초마다 가장 최근에 처리된 트랜잭션과 함께 새로운 블록이 블록체인에 추가되고, 이 블록을 생성한 컴퓨터에는 3개의 이더가 보상으로 주어진다.[5]
가스 수수료
가스(gas)는 이더리움 블록체인에서 이루어지는 모든 작업에 대해 코인을 보내는 사람이 지불해야 하는 수수료이다. 가스라는 이름은 이 수수료가 스마트 계약의 움직임을 주도하는 암호 연료의 역할을 한다는 점에서 영감을 받아 만들었다고 한다. 자동차가 움직이려면 연료인 가스가 필요하듯이, 이더리움 네트워크가 작동하려면 수수료인 가스가 필요하다는 의미이다.
코드를 실행하는 채굴자로부터 이더로 사용할 가스가 구입된다. 가스 가격은 최소 한도보다 더 낮은 가스 가격으로 거래하려는 것을 거부할 수 있는 채굴자에 의해 결정된다. 가스를 얻으려면 계정에 이더를 추가하기만 하면 된다. 가스 유닛(gas unit)은 가장 작은 유형의 거래이다. 가스 유닛은 수행해야 하는 작업량의 측정값이지 금전적인 가치를 나타낸 값이 아니다. 이더리움은 일정 시간 동안 제한된 가스만 처리할 수 있다. 채굴자들 역시 수많은 거래 요청들을 조절해야 한다. 속도를 조절하지 않으면 과도한 사용이나 스팸 트랜잭션들로 네트워크에 과부하가 걸릴 수 있다. 따라서 채굴자들은 가스 가격(gas price)이나 가스 한도(gas limit)에 의존해 작업을 선택한다.
가스 가격은 일종의 급행 수수료와 같다. 채굴자에게 가스를 더 많이 지불하면 먼저 거래를 수행하게 할 수 있다. 만약 가스 가격을 0으로 설정한다면 거래가 계속 뒤로 밀려나게 된다. 가스 한도는 요청하는 작업량의 추측이다. 한도를 너무 낮게 설정하면 작업이 완료되지 않고 거래가 실패해 그 시점까지 사용된 이더가 손실된다. 가스 한도는 작업 중단 시점을 보장함으로써 무제한으로 이더를 사용하는 것을 방지한다. 가스는 스마트 계약의 코드가 복잡할수록, 저장 공간을 많이 사용할수록 더 많이 지불해야 한다. 따라서 가스는 네트워크의 과부하를 막으며, 이더리움 플랫폼이 계속 운영되도록 하는 인센티브 역할을 한다.[6]
이더리움 표준
이더리움은 다양한 서비스 플랫폼 또는 프로젝트들이 이더리움의 오픈소스 프로토콜 ERC-20, ERC-223, ERC-621, ERC-721, ERC-1155를 토대로 서비스 사이트를 만들고 토큰을 발행할 수 있는 플랫폼이다. ERC는 Ethereum Request for Comment의 약자로서, 이더리움 RFC, 즉 이더리움 기능 개발을 위한 요구사항을 담은 문서 규약이라는 뜻이다.[7]
- ERC-20: 현재까지 가장 대중화된 표준이다. 개발도 용이하고 많은 암호화폐 거래소에서 지원하는 표준이다.
- ERC-223: ERC-20의 문제를 개선한 차세대 표준이라 알려져 있지만, 널리 쓰이고 있지는 않다.
- ERC-621: 토큰 공급량을 증가시키거나 감소시킬 수 있는 표준으로서, 예측할 수 없는 공급 유통량에 대하여 토큰으로 구현하는 경우에 유용하다.
- ERC-721: 고유성을 가지는 수집형 토큰에 사용되는 표준이다. 가장 대표적인 케이스는 크립토키티라는 블록체인 고양이 게임이다.
- ERC-1155: ERC-20과 같은 고유성이 없는 토큰과 ERC-721처럼 고유성이 있는 토큰을 무한히 생성할 수 있는 표준이다.
이더리움 2.0 (세레니티)
이더리움 2.0은 세레니티(Serenity)로 명명되며 핵심 이더리움 프로토콜의 다음 주요 업그레이드를 나타낸다. 이더리움의 핵심 프로토콜인 "Layer 1"에 대한 몇 가지 개선 사항이 결합하였다. 이더리움 2.0 업그레이드를 통해 샤딩(Sharding), PoS, 새로운 가상 머신(eWASM) 등이 제공된다. 이 업그레이드는 단일 시점에서 이루어지는 것이 아니라 단계적으로 진행될 것이라는 점을 이해하는 것이 중요하다.
자주 업데이트되는 이더리움 2.0 로드맵 및 단계
- 디자인 목표
이더리움 연구원 Danny Ryan은 이더리움 2.0에 대해 5가지의 서로 다른 디자인 목표를 명시했다.
- 분산 (Distribentation) : O(C) 리소스가 있는 일반 소비자용 랩톱에서 O(1) 파편 (비컨 체인과 같은 시스템 수준 유효성 검사 포함)을 처리 / 검증할 수 있다.
- 탄력성 : 주요 네트워크 파티션을 통해 라이브 상태를 유지하고 노드의 매우 많은 부분이 오프라인 상태가 될 때.
- 보안 : 전체 및 단위 시간당 유효성 검사기의 많은 참여를 허용하는 암호화 및 디자인 기술을 활용한다.
- 단순성 : 효율성을 다소 상실하더라도 비용을 최소화하면서 복잡성을 최소화한다.
- 수명 : 모든 부품을 양자 보안으로 선택하거나 가능한 경우 양자 보안 대응 부품으로 쉽게 교체할 수 있다.
- 0단계-신호 체인
단계 0은 비컨 체인의 출시에 주어진 이름이다. Beacon Chain은 자체 및 모든 샤드 체인에 대한 Casper Proof of Stake 프로토콜을 관리한다. 벤에 딩턴(Ben Edgington)은 "유효성 검사자와 스테이크를 관리하는 것, 각 단계에서 각 샤드에 대해 선택된 블록 제안자를 지명, 검증자를 위원회에 편성하여 제안 된 블록에 투표, 합의된 규칙을 적용한다. 유효성 검사자에게 보상과 벌칙을 적용, 파편이 교차 샤드 거래를 촉진하기 위해 주 정부를 등록하는 앵커 포인트가 되어야한다.
비컨 사슬의 주요 하중 원은 "증명"이다. 입증은 파편 블록에 대한 가용성 표이며, 동시에 비콘 차단에 대한 확률 투표의 증거이다. 동일한 샤드 블록에 대한 충분한 수의 증명은 해당 샤드 블록까지의 샤드 세그먼트를 비컨 체인으로 확인하는 "크로스 링크"를 생성한다. 단계 0은 최종성을 위해 Casper the Friendly Finality Gadget (FFG)를 사용한다. 최종성은 매우 느슨한 용어로, 특정 작업이 완료되면 역사상 영원히 새겨지게 될 것이고 그 어떤 것도 그 작업을 되돌릴 수 없음을 의미한다.
- 1단계-샤드 체인
샤드 체인은 병렬 트랜잭션 처리량을 허용하므로 향후 확장성의 핵심요소이다. 1단계는 주로 이러한 샤드 체인의 데이터에 대한 구성, 타당성 및 합의에 관한 것이다. 1단계에서는 샤드 체인 상태 실행 또는 계정 잔액을 지정하지 않는다. 샤드를 사용하려는 시도보다는 샤딩 구조에 대한 시운전과 같을 것이다. 비콘 체인은 샤드 체인 블록을 구조나 의미가 없는 간단한 비트 모음으로 취급한다.
- 2단계-주 정부의 집행
2단계에서는 기능이 함께 시작된다. 샤드 체인은 간단한 데이터 컨테이너에서 구조화된 체인 상태로 전환되며 스마트 계약이 다시 도입된다. 각 조각은 eWASM을 기반으로 가상 컴퓨터를 관리한다. 그것은 우리가 잘 알고 있는 계정, 계약, 주 및 기타 추상화를 견고하게 지원한다. 트러플,solc,ganache와 같은 익숙한 도구가 2단계 전 또는 도중에 eWASM을 지원하도록 이식될 수 있다. 스테이트 렌트(State Rent)는 2단계에 포함될 가능성이 매우 높으며 개발자에게 도전과제가 된다. 코드와 데이터를 무한정 저장할 수 있는 대신 주 계약자는 계약 개발자와 사용자가 eWASM 스토리지에 대해 시간을 들여 지급해야 한다. 이렇게 하면 사용하지 않은 정보가 시간이 지남에 따라 상태에서 벗어나게 된다. 현재 이 단계에 대한 정보는 많지 않으며, 사용할 수 있는 것이 무엇이든 시간이 지남에 따라 확실히 변할 것이다.[8]
차세대 이더리움을 구축하기 위해 8개 팀이 전속력을 발휘
이더리움 블록체인에 대한 두 가지 개별 업그레이드 (이더리움 2.0 및 다른 이더리움 1x)에 대한 개발자의 보완 노력에 대해 Raul Jordan은 짧은 시간 내에 이더리움 1x에 포함될 업그레이드가 지속적인 연구에 도움이 될 것이라고 주장한다. Jordan은 현재 이더리움 2.0용 소프트웨어 클라이언트를 구축 중인 8개의 개발자 팀 중 하나의 공동 리더이다. 클라이언트는 이더리움 네트워크에 연결하고 참여하기 위해 사용자가 배포하는 다른 프로그래밍 언어로 작성된 소프트웨어 구현이다. 요르단은 CoeDesk와의 인터뷰에서 이더리움 1x 내에서 제안된 "증분 향상"이 블록체인의 장기적인 로드맵에 영향을 미치지 않는다는 것을 유지하면서, 현재 두 업그레이드에 대해 사양이라고도 하는 기술 지침은 여전히 많은 부분을 차지한다. 마지막에 이더리움 개발자들 사이에서 본격적으로 논의된 주 커플, 이더리움1배는 현재 이더리움 네트워크 향상에 초점을 맞추고 중간 업그레이드될 것이다. 반대로 이더리움 2.0은 2014년으로 거슬러 올라가야 할 야심찬 계획을 특징으로 하며 블록체인 플랫폼의 근본적인 변화로 구성된다. 초창기에 프로젝트 이름 "Serenity"로 알려진 이더리움 2.0의 현재 사양은 세 가지 주요 구성 요소의 조합으로 요약할 수 있다.
- 작업 증명 (poW)으로 알려진 현재의 에너지 집약적인 합의 프로토콜에서 poS로의 전환
- 샤딩이라는 네트워크 차원의 스케일링 솔루션 구현
- 블록 셀에 분산 응용 프로그램(dapps)을 배포하는 엔진인 Ethereum Virtual Machine(EVA)을 수정하여 WebAssembly(WASM)이라는 새로운 프로그래밍 코드를 실행한다.
또한 이러한 구성 요소 중 하나인 이더리움의 WASM 구현은 이더리움 1x의 초기 로드맵에서 테스트 될 가능성이 있지만, 이더리움 2.0을 빌드하는 대부분의 작업은 별도의 프로젝트로 계속 진행된다. 그리고 그 작업은 전 세계에 퍼져있는 8개의 다른 팀에 의해 수행되고 있다. 8개의 팀으로는 ChainSafe 시스템, PegaSys, 하모니, 패리티 기술, Prysmatic 연구소, 시그마 프라임, 상태, 삼위일체가 있다.
스테이크의 증거가 자주 업데이트 된다
- 스테이크 증거 개요 : 스테이크의 증거는 유효성 검사가 다음 블록에 투표하는 합의 알고리즘의 클래스를 나타내며, 투표에 가중치는 스테이크의 크기에 따라 다르다. 전력 소비 감소, 중앙 집중화 위험 감소, 다양한 유형의 51% 공격에 대한 보안 등으로 인해 Proof of Work(PoW)보다 향상된 것으로 간주한다.
- 스테이크의 증거란? : 스테이크 증명(Stake of Stake,Pos)은 네트워크의 검증자의 경제적 지분에 의존하는 공개 블록체인에 대한 합의 알고리즘의 범주이다. 작업 증명(PoW) 기반 공개 블록(예 : Bitcoin 및 현재 이더리움 구현)에서 알고리즘은 트랜잭션을 검증하고 새로운 블록(즉, 마이닝)을 생성하기 위해 암호화 퍼즐을 해결하는 참가자에게 보상한다. PoS 기반 공용 블록(예 : 이더리움의 Casper 구현)에서는 일련의 유효성 검사기가 차례대로 다음 블록을 제안하고 투표하며 각 유효성 검사기의 투표 무게는 보증금 크기(예 : 스테이크)에 따라 다르다. PoS의 중요한 장점은 보안, 중앙 집중화 위험 감소 및 에너지 효율성이다. 일반적으로 PoS 알고리즘은 다음과 같다. 블록체인은 일련의 유효성 검사기를 추적하며, 블록체인의 기본 암호 해독성(ETH)은 ETH를 보증금으로 잠그는 특별한 유형의 트랜잭션을 전송하여 유효성 검사기가 될 수 있다. 새로운 블록을 만들고 동의하는 과정은 모든 현재 유효성 검사기가 참여할 수 있고 참여할 것으로 예상되는 합의 알고리즘을 통해 수행된다. 컨센서스 알고리즘에는 여러 종류가 있으며, 컨센서스 알고리즘에 참여하는 유효성 검사기에 보상을 할당하는 여러 가지 방법이 있으므로 PoS의 많은 "맛"이 있다. 알고리즘 관점에서 두 가지 주요 유형이 있다 : 체인 기반 및 BFT 스타일 PoS.
체인 기반 poS에서 알고리즘은 각 시간 슬롯(예 : 10초마다 시간 슬롯이 될 수 있음) 동안 유효성 검사기를 의사 무작위로 선택하고 해당 유효성 검사기에 단일 블록을 만들 수 있는 권한을 할당하며 이 블록은 일부 이전 블록 (일반적으로 이전에 가장 긴 체인의 끝에 있는 블록)이므로 시간이 지남에 따라 대부분의 블록은 지속해서 성장하는 단일 체인으로 수렴된다. BFT 스타일 PoS에서 유효성 검사기는 블록을 제안할 수 있는 권한이 무작위로 할당되지만, 정식 블록에 동의하는 것은 여러 라운드 프로세스를 통해 이루어지며 모든 유효성 검사기는 각 라운드 동안 특정 블록에 대해 "투표"를 보내고 프로세스의 끝에서 모든 (정직하고 온라인인) 유효성 검사기는 주어진 블록이 체인의 일부인지 여부에 영구적으로 동의한다. 블록은 여전히 함께 묶일 수 있다. 주요 차이점은 블록에 대한 합의가 한 블록 내에 올 수 있고 그 후에 체인의 길이 또는 크기에 의존하지 않는다는 것이다.
- 작업 증명 증서의 장점
- 블록체인을 확보하기 위해 대량의 전기를 소비할 필요가 없다. (비트코인과 이더리움은 합의 메커니즘의 일환으로 매일 전기 및 하드웨어 비용 1백만 달러 이상을 소비하는 것으로 추산된다.)
- 높은 전력 소비 여건이 없기 때문에 참가자들이 네트워크에 지속해서 참여하도록 동기를 부여하기 위해 많은 새로운 동전을 발행할 필요가 없다. 이론적으로는 거래 수수료의 일부가 "태워서" 시간이 흐르면서 공급이 감소하는 부정적인 순 발행이 가능할 수도 있다.
- Stake of Stake는 중앙 집중식 카르텔이 형성되는 것을 보다 효과적으로 방지하고 네트워크에 유해한 방식으로 행동하는 것을 이기기 위해 게임 이론적 메커니즘 설계를 사용하는 다양한 기술에 대한 문호를 개방한다. (이기적 작업 증명에서 광업)
- 규모의 경제가 문제가 되지 않으므로 중앙 집중화 위험이 줄어든다. 1000만 달러의 동전은 더 높은 수준에서 더 나은 대량 생산 장비를 살 수 있기 때문에 추가적인 불균형한 이득없이 1백만 달러의 동전보다 정확히 10배 더 많은 이익을 얻을 수 있다. 이는 노동 증명을 위한 이점이다.
- 경제적 형벌을 사용하여 다양한 형태의 51% 공격을 노동 증명보다 수행하는데 훨씬 비싸다. Vlad Zamfir의 말을 바꾸려면 "마치 ASIC 농장이 51%의 공격에 참여했다면 불에 타 버린 것 같다."
샤딩이 자주 업데이트 된다
- 개요 : DCS 삼각형으로 알려진 삼각형 형태로 시각화할 수 있는 블록체인 시스템에는 3가지 유형의 트라이앵글이 있다. "세 가지 분산화, 일관성 및 확장성을 모두 동시에 달성하는 것은 불가능하다. 샤딩은 이러한 문제를 해결하기 위한 시도이다. 단순히 큰 체인(데이터베이스)을 더 작고 빠른 파티션으로 분할하여 전체 시스템의 확장성을 높이는 것을 의미한다. 각 샤드는 자체 관리하고 자체 트랜잭션 기록을 가지고 있으며 일부 샤드의 트랜잭션 영향은 해당 샤드에만 제한된다.
- 확장성(Trilemma) : 확장성(Trilemma)는 블록체인 시스템은 다음의 세 가지 속성 중 두 가지를 가질 수 있다고 주장한다.
- 지방 분권화 (각 참가자가 O (c)) 자원에만 액세스할 수 있는 시나리오에서 실행할 수 있는 것으로 정의된다, 즉 일반 랩톱 또는 소형 VPS)
- 확장성 (많은 트랜잭션을 처리할 수 있는 것으로 정의된다.)
- 보안 (최대 O (n) 자원을 가진 공격자에 대해 보안이 유지되는 것으로 정의된다.)
확장성의 핵심 과제는 블록체인의 기본 레이어에서 세 가지를 모두 달성할 수 있는 방법을 찾는 것이다. 샤딩은 이러한 문제를 해결하려는 시도 중 하나이다.
- 샤딩: 현재 모든 블록체인 프로토콜에서 각 노드는 전체 상태 (계정 잔액, 계약 코드 및 저장소 등)를 저장하고 모든 트랜잭션을 처리한다. 이는 많은 양의 보안을 제공하지만 확장성을 크게 제한한다. 블록체인은 단일 노드보다 더 많은 트랜잭션을 처리할 수 없다. 대부분이 때문에 비트코인은 초당 ~ 3-7회의 거래, 이더리움은 7-15회로 제한한다.[8]
채굴
이더해시 작업증명
이더리움은 이더해시(Ethash)라는 작업증명 알고리즘을 사용하여 채굴할 수 있다. 이더리움은 비트코인이나 라이트코인과 같은 작업증명(PoW) 방식의 합의 알고리즘을 사용하고 있고 있지만, 기존 비트코인의 SHA-256 방식이나 라이트코인의 스크립트(Scrypt) 방식을 사용하지 않고, Hashimoto/Dagger hybrid인 이더해시(Ethash) 방식을 사용한다.
합의 알고리즘이란 피투피 네트워크와 같이 정보 도달에 시간차가 있는 네트워크에서 여러 참가자들이 하나의 단일한 결과에 대한 합의를 얻기 위한 알고리즘이다. 각 노드에서 블록체인을 공유하기 위해 사용하는 중요한 기능이다. 기존의 작업증명(PoW) 방식에서는 중국의 비트메인 등 소수의 채굴업체들이 에이식(ASIC) 방식의 고성능 채굴기를 제작하고 거대한 마이닝풀을 구성하여 막강한 영향력을 행사할 수 있다. 심지어 전체 해시파워의 과반수에 이르는 연산력을 보유하고, 이른바 51% 공격도 가능한 상황이었다. 이것은 탈중앙화를 꿈꾸는 블록체인계의 이상과는 거리가 먼 것이다.
이더리움이 채택한 이더해시 방식을 따를 경우, 에이식(ASIC) 채굴기를 사용한 채굴이 매우 어렵다. 이더리움을 채굴하려면, 채굴하기 전에 컴퓨터에서 대그(DAG) 작성이라는 프로세스를 수행해야 한다. 대그(DAG)란 Directed Acyclic Graph의 약자로서, 방향성 비순환 그래프를 말한다. 대그는 에이식(ASIC) 채굴기가 이더리움 채굴을 위해 대량 투입되는 것을 막기 위해 채굴에 필요한 데이터 구조이다. 대그 방식을 따를 경우 하나의 블록을 성공적으로 채굴하여 이더리움을 보상으로 받는데 매우 오랜 시간이 걸릴 수 있다. 대그 알고리즘의 목표는 채굴자를 보호하여 가정용 컴퓨터나 노트북만으로도 채굴에 참여할 수 있도록 하는 것이다. 대그를 생성하는 데 약 10분이 걸리고, 생성이 완료되면 Geth는 자동으로 채굴을 시작한다. 이더해시 작업증명 알고리즘을 사용하면 컴퓨터 메모리가 부족하기 때문에 각 GPU에 적어도 1GB 이상의 램(RAM)이 필요하다. 병렬화 비용을 높이기 위해 GPU에 넣거나 빼는 데이터 집합인 DAG가 1GB에서 시작하여 무기한으로 계속 성장되기 때문에 1+ 라고 한다. 2GB는 일년 내내 계속 채굴을 진행하는 데 적절한 근사치이다.[8]
GPU 채굴기
그동안 이더리움은 GPU 채굴기를 이용해 채굴해 왔다. GPU란 Graphic Processing Unit의 약자로서 컴퓨터의 그래픽 카드를 말한다. 채굴을 할 때, 컴퓨터의 중앙처리장치인 CPU보다 병렬 연산이 가능한 GPU를 사용하는 것이 더 빠르고 효율적이다. 이더리움 채굴기를 제작하기 위해서는 특별한 기술이 필요 없으며, 그래픽 카드를 대량으로 구매하여 병렬로 연결하고, 전기를 꽂아주면 된다. 한 때 이더리움 채굴기를 만들기 위한 그래픽 카드 수요가 폭발적으로 증가하여, 시장에서 GPU를 구매할 수 없는 이른바 '그래픽 카드 대란'이 발생하기도 했다.
2018년 중국의 비트메인은 앤트마이너 E3라는 신형 ASIC 채굴기를 개발했다. 그동안 이더리움이 채택한 이더해시 작업증명 방식으로 인해, 이더리움은 비트코인이나 라이트코인 등과 달리 전문 에이식(ASIC) 채굴기를 사용한 채굴이 불가능했다. 하지만 E3 채굴기를 사용할 경우 이더해시 방식의 작업증명 연산을 빠르게 수행할 수 있다. 더 이상 이더리움도 에이식 채굴기의 안전 지대로 남아 있을 수 없게 된 것이다. E3 채굴기가 대량 제작되어 본격적으로 시장에 유통될 경우, 기존의 GPU 채굴기는 더 이상 경쟁력이 없어지게 될 것이다.
지분증명 방식으로 변경
이더리움은 합의 알고리즘을 현재의 작업증명(PoW) 방식에서 지분증명(PoS) 방식으로 변경할 예정이다.[9] 지분증명(PoS, Proof of Stake)이란 해당 암호화폐를 보유하고 있는 지분율에 비례하여 의사결정 권한을 주는 합의 알고리즘이다. 주주총회에서 주식 지분율에 비례하여 의사결정 권한을 가지는 것과 유사하다. 지분증명 방식에는 채굴 과정이 필요 없다. 지분증명 방식은 보유한 자산의 크기, 즉 암호화폐를 더 많이 소유하고 있는 사람이 블록 생성자(block producer)로 선정될 가능성이 더 높다는 특징이 있다. 이것은 "대량 통화를 소유하고 있는 참가자는 그 통화 가치를 지키기 위해 시스템의 신뢰성을 손실하지 않을 것이다"라는 전제를 바탕으로 하고 있다. 이더리움이 지분증명 방식으로 전환할 경우, 기존의 채굴기는 모두 무용지물이 된다.
거래
이더리움 가격은 2017년 1월에 1만원이었으나 6월에 48만원까지 급상승하여 무려 40배나 올랐다. 이후 조정국면에서 13만원까지 떨어졌다가 2018년 1월 10일에 234만원까지 올랐다가 2월에 80만원대로 떨어졌다. 이더리움의 시장 규모는 2017년 6월 기준으로 약 20조원이었는데, 2018년 2월 기준으로 약 80조원 규모로 성장했다. 이더리움의 시가 총액은 2018년 7월 기준으로 460억 달러, 즉 약 47조원으로서, 시가 총액 2위의 암호화폐이다.
사건
더 다오 해킹 사건
더 다오(The DAO)는 독일 Slock.it 사의 분산 크라우드펀드 프로젝트이다. 이더리움을 기반으로 하며 분산형 자율적 조직을 지향하고, 약 1,500억원이라는 자금을 모은 것으로 화제가 되기도 했다. 더 다오 참가자는 이더를 담보로 다오 토큰(DAO token)을 소유함으로써 개인이나 기업이 제출한 신규 사업에 출자할 수 있다. 제안은 '큐레이터'라는 관리자가 부정이 없는지 확인하고 문제없이 승인된 제안(DAO)은 투표권을 부여받는다. 투표에서 많은 득표를 한 사업은 출자금을 받을 수 있다. 이렇게 출자금을 받은 사업은 이익의 일부를 출자자에게 돌려주게 된다.
만약 투표 결과에 찬성하지 않는다면 자신이 DAO에 모아둔 자금을 DAO에서 떼어내는 스플릿(split)이라는 기능을 사용해 자신의 자금을 가지고 올 수 있다. 이 스플릿 기능의 취약점을 이용해 2016년 6월 이더리움 커뮤니티를 뒤흔든 더 다오 해킹 공격 사건이 발생했다.
더 다오 공격은 더 다오 프로그램의 약점을 이용해 공격자가 새롭게 분리해 만든 자식 다오를 통해 약 520억원 가량을 부정하게 이동시킨 해킹 사건이다. 원래 계획은 기존의 투자 프로젝트에서 분리해 새로운 투자 프로젝트(자식 DAO)를 만들고 이 곳에 출자금을 옮기기 위한 것이었다. 하지만 출자금을 옮기는 기능에 취약점이 있다는 것을 안 공격자가 그 취약점이 악용해 공격 코드를 삽입함으로 부정하게 돈을 이동시키는 사건이 발생했다.
사건 대응을 둘러싸고 이더리움 커뮤니티에서 논의가 계속됐으며 결국 비탈릭 부테린의 의견대로 하드포크를 하기로 결정했다. 블록체인을 다시 작성해 공격자의 다오로 이동된 자금을 환불용 다오로 옮긴 것이다. 이때 모든 블록체인을 다시 쓰는 것이 아니라 공격자의 다오와 관련된 부분만을 수정했다. 하지만 하드포크에 대한 비판도 생겨났다. "코드가 법"이며, "블록체인의 변조 불가능성이야말로 가장 중요하다"라는 주장이다. 더 다오라는 1개의 프로젝트 구제를 위해 플랫폼인 이더리움 자체에 손을 대는 것에 반대하는 움직임이 일어난 것이다. 해킹된 이더리움은 즉시 발각되어 신속히 조치를 취했기 때문에 하나도 인출되지 않았으니, 굳이 하드포크를 할 필요가 없다는 주장이었다. 결국 이들은 별도의 분파를 만들고, 비록 해킹 당하기는 했지만 기존의 이더리움 블록체인을 그대로 유지하는 이더리움 클래식(Ethereum Classic)을 만들었다.[10]
전망
로드맵
2017년 이더리움재단은 이더리움 로드맵 4단계를 제시했다.
- 1단계는 프론티어(Frontier)로서 암호화폐인 이더리움을 개발·채굴하고 네트워크를 형성하는 단계이다.
- 2단계는 홈스테드(Homestead)로서 이더리움이라는 신대륙에 가정집이 하나둘씩 생기면서 생태계가 구축되는 단계이다.
- 3단계는 메트로폴리스(Metropolis)로서 가정집들이 모여 도시가 형성되는 것처럼 이더리움의 대중화를 위한 사회적 인프라가 형성되는 단계이다. 이를 위해 두 번의 하드포크를 진행할 예정인데, 2017년 10월 16일 4,370,000번째 블록을 기준으로 1차로 비잔티움(Byzantium) 하드포크가 이루어졌다. 2019년 초에 2차로 콘스탄티노플(Constantinople) 하드포크가 진행될 예정이다. 이를 통해 이더리움 채굴 방식은 작업증명(PoW)에서 지분증명(PoS) 방식으로 전환하게 된다.
- 마지막 4단계는 세레니티(Serenity)로서 모든 변화 후에 평온 또는 평정을 찾는 마지막 단계이다.
확장성 개선
이더리움은 향후 대용량 데이터 처리를 위해 데이터 전송 속도를 높이고 비용은 낮추는 방향으로 나갈 것이다. 확장성 솔루션인 샤딩 기술, 캐스터, 레이든, 그리고 플라즈마, 플라즈마캐시와 같은 신기술 개발과 보안성 강화 등이 이더리움의 미래 도전 과제들이다.
이더리움의 느린 처리 속도 문제를 해결하기 위해 이더리움은 플라즈마 프로젝트를 가동 중이다. 플라즈마 프로젝트는 이더리움 플랫폼에 담기는 데이터를 줄이는 방식으로, 전체 네트워크 속도를 높여 블록체인 내 개별 노드에 걸리는 부하를 줄이고 연결 수수료는 낮추는 것이 목표이다. 플라즈마(plasma)란 모든 거래내역을 메인체인에서 처리하는 블록체인과 달리, 메인체인(또는 루트체인)에 나뭇가지처럼 이어진 차일드체인에서 사전에 수집된 정보들을 처리한 후 결과만 루트체인에 전달함으로써 처리 속도를 향상시킨 알고리즘이다. 이와 함께 비탈릭 부테린은 플라즈마캐시 기술도 연구하고 있다. 플라즈마캐시(plasma cash)란 모든 사용자가 모든 거래내역을 복사하여 관리하던 기존의 블록체인이나 플라즈마 알고리즘과 달리, 개별 사용자가 관심을 가진 특정 코인이 포함된 블록만 추적함으로써 처리 속도를 향상시킨 알고리즘이다. 이더리움에 플라즈마와 플라즈마캐시 알고리즘을 성공적으로 적용할 경우, 기존 이더리움의 문제점이었던 느린 처리 속도를 해결할 수 있을 것이다.
한편 처리 용량을 확장시키기 위해 이더리움은 샤딩(sharding) 기술에 주목하고 있다. 샤딩은 병렬처리를 통해 블록체인에 확장성을 부여하는 온체인(on-chain) 솔루션이다. 샤딩은 대용량의 데이터를 처리하기 위해 테이블을 영역별로 수평 분할하여 데이터를 분산 저장하고 처리하는 방식이다. 기존 블록체인 기술은 트랜잭션을 나눠서 처리하지 않고 모든 연산을 실행하는 직렬 처리 방식으로서 처리 속도가 느렸다. 샤딩은 이더리움 노드가 처리하는 데이터를 분할하여 속도를 끌어올리는 것이다. 샤딩을 통해 초당 처리 가능한 거래의 양을 극대화할 수 있다.
이더리움은 보안성을 강화하겠다는 목표도 제시했다. 개별 노드에 어떤 공격이 들어오고 어떻게 효율적으로 대처할 수 있는지 관심을 가지고 노드별 보안을 강화한다는 것이다.
애플리케이션이 쓰일 수 있는 다양한 영역들을 고민하면서 이더리움을 기반으로 운영되는 애플리케이션이 어떻게 활용되느냐 하는 것도 이더리움 커뮤니티의 중요한 이슈이다.
하드포크
콘스탄티노플 하드포크
2019년 3월 1일 이더리움은 콘스탄티노플 하드포크(Constantinople Hardfork)를 성공했다. 콘스탄티노플은 이더리움의 세번째 개발 단계의 마지막 하드포크로서, 이더리움 네트워크 내에서 채굴 보상을 감소시켜 작업증명(PoW) 방식의 비중을 줄이고 지분증명(PoS) 방식으로 변경하는 것을 목적으로 한다. 이더리움 측은 2018년 10월 말 롭스텐 테스트넷(ropsten testnet)에서 발견된 버그들로 인하여 콘스탄티노플 하드포크를 1차 연기하였다. 이후 2019년 1월 16일경 이더리움 7,080,000번째 블록에서 콘스탄티노플 하드포크를 예정하였으나 이번에도 역시 기술적 문제로 인해 2차 연기되었다.[11] 2018년 말과 2019년 초 기준으로 이더리움 가격이 너무 많이 떨어져 있는 상황이라, 만약 이러한 하드포크 개발 이슈를 지연한다면 이더리움은 암호화폐 시장에서 영원히 도태될 수 있을 것이라는 위기감을 개발자들이 가지고 있었다.[12] 그럼에도 불구하고, 이더리움 측은 블록체인 보안업체인 체인시큐리티(ChainSecurity)가 발견한 결함 문제를 선제적으로 해결하기 위해 1월 16일로 예정된 하드포크 일정을 연기했다.[13] 마침내 2019년 3월 1일 이더리움 측은 약속한 콘스탄티노플 하드포크에 성공하였다.
이스탄불 하드포크
2019년 12월 8일, 이더리움이 이스탄불 하드포크(İstanbul Hardfork)를 성공적으로 마무리했다. 이스탄불 하드포크에는 EIP-152, EIP1108, EIP-1344, EIP1884, EIP2028, EIP-2200 등 총 6가지의 이더리움 개선 제안(EIP)을 담았다. 프라이버시 강화와 확장성 추구, 이더리움 전송 수수료 가스(Gas) 절감 등을 목표로 했으며, EIP-152는 이더리움과 지캐시(Zcash)간 상호 운용성을 향상하여 네트워크의 개인정보 보호 기능을 추가했다. 또한, EIP-1108을 통해 Alt_Bn 128의 비용이 절감됐고, 이로 인해 네트워크에서 더 많은 개인정보 보호 및 확장 솔루션이 등장할 수 있게 됐다. EIP-1344로 개발자가 실행 코드(opcode)를 기반으로 체인 ID 접근 및 변경을 쉽게 할 수 있게 됐으며, EIP-1884로 실행 코드(opcode) 크기에 따른 가스비용 책정이 변경됐고, EIP-2028로는 거래 데이터의 비용 절감했다. EIP-2200으로는 데이터 보관 비용 계산 방식이 변경됐다. 이더리움 창시자인 비탈릭 부테린은 이날 트위터를 통해 "이스탄불 포크 블록 채굴을 축하한다"라는 글을 올렸다.[14]
뮤어빙하 하드포크
2020년 1월 2일, 이더리움이 전체 네트워크 시스템 업그레이드인 뮤어빙하 하드포크(Muir Glacier Hardfork)를 성공적으로 완료했다. 이더노즈(Ethernodes)에 따르면 현재 이더리움 클라이언트 가운데 96%가 뮤어빙하 업그레이드를 마쳤다. 뮤어빙하 코드를 처음으로 제안한 건 이더허브(EthHub)를 만든 개발자 에릭 코너(Eric Conner)였으며, 에릭 코너는 이더리움 개선제안서(EIP) 2384 코드를 적용하면 이른바 이더리움 난이도 폭탄의 도입을 블록 400만 개까지 늦출 수 있다고 주장했다. 이더리움은 네트워크 합의 방식을 작업증명에서 지분증명으로 바꾸는 이더리움 2.0 업그레이드를 앞두고 있으며, 난이도 폭탄은 기본적으로 작업증명 합의 방식에서만 문제가 되므로, 이더리움 2.0 업그레이드를 마칠 때까지만 난이도 폭탄이 터지지 않으면 문제가 없다는 것이 에릭 코너와 뮤어빙하를 지지하는 이들의 주장이다. 난이도 폭탄은 이더리움이 처음 출시된 2015년부터 기본 코드에 내장돼 있었으며, 작업증명 방식에 따라 거래를 검증하고 블록이 쌓이는 속도를 조금씩 늦춰 네트워크의 합의 방식을 서서히 지분증명으로 바꿔내는 것이 목표이다.
에릭 코너는 뮤어빙하를 적용하지 않으면 이더리움 네트워크에서 블록을 하나 쌓는 데 걸리는 시간이 20~30초로 늘어나고, 그로 인한 거래 비용도 감당하기 어려운 수준으로 늘어날 것이라고 설명했다. 매일 채굴돼 쌓이는 블록의 숫자가 적어진다는 건 그만큼 거래를 기록할 공간이 좁아지고, 비용은 커진다는 뜻이기 때문이다. 현재 이더리움에서는 약 13초에 한 개씩 새로운 블록이 쌓인다. 에릭 코너는 "블록이 쌓이는 간격이 20초로 늘어나 새로 생성되는 블록이 매일 4,300개로 줄어든다고 예를 들면, 계산의 편의를 위해 모든 블록에 빼곡하게 거래를 기록한다고 치면, 블록이 줄어든 만큼 거래를 기록할 공간을 확보하기 위한 경쟁이 치열해지고, 수요보다 공급이 달리니 가격, 즉 수수료가 오를 것이고, 이더리움을 바탕으로 하는 디앱 이용자들이 치러야 할 비용도 커질 수밖에 없다."라고 말했다. 다만 이더리움이 지분증명 방식을 채택하는 속도는 예상보다 더디다. 지분증명 합의 모델인 세레니티(Serenity)가 최종 도입돼 이더리움 2.0으로 전환이 마무리되는 건 일러도 2021년은 될 것으로 보인다. 뮤어빙하는 지난해 진행된 이스탄불, 콘스탄티노플, 세이트 피터스부르크 등 하드포크와 마찬가지로 이더리움 2.0을 향해 가는 과정에 있는, 이더리움 1세대 과도기 업그레이드로 분류된다.[15]
행사
이드콘 한국 2019
이더리움 개발자 콘퍼런스 ‘이드콘 한국 2019’이 5월 27~28일 양일 간 서울 코엑스에서 개최되었다. 이드콘은 파이썬 개발자 콘퍼런스인 파이콘의 선례를 따라 진행되는 국내 커뮤니티 주도의 이더리움 개발자 콘퍼런스다. 커뮤니티의 자발적 기여로 만들어 간다는 철학에 기반한 비영리 콘퍼런스로, 개발자의 자발적 발표 신청을 받아 진행되었다. 이드콘에선 이더리움에 대한 참여자의 이해를 높이고, 참여 경험을 제공하자는 취지에 따라 ‘이더 도둑 챌린지’, ‘니모닉을 찾아서’, ‘이더리움(Ethereum) 101’ 등 다양한 참여형 프로그램이 운영되었다.[16]
각주
- ↑ 블록인프레스, 〈이더리움 지분증명 합의 알고리즘 ‘캐스퍼’, 검토 절차 시작〉, 《블록인프레스》, 2018-04-23
- ↑ "Ethereum Virtual Machine", Ethereum Homestead, Ethereum community
- ↑ Rachel Rose O'Leary, 〈이더리움 가상머신(EVM) 2.0: 이더리움의 심장이 교체된다〉, 《코인데스크코리아》, 2018-10-02
- ↑ 나라얀 프루스티 지음, 천민욱 번역, 《이더리움을 활용한 블록체인 프로젝트 구축》, 에이콘출판, 2017-11-24
- ↑ "What is a transaction?", Ethereum Homestead, Ethereum community
- ↑ "What is gas?", Ethereum Homestead, Ethereum community
- ↑ hashrushgame, "The Different Types of ERC Standards Used for Video Games", Steemit, 2018-07-03
- ↑ 8.0 8.1 8.2 출처 : 이더리움 공식 홈페이지 - https://www.ethereum.org/
- ↑ 블록인프레스, 〈이더리움 지분증명 합의 알고리즘 ‘캐스퍼’, 검토 절차 시작〉, 《블록인프레스》, 2018-04-23
- ↑ 아카하네 요시하루, 아이케이 마나부 등 지음, 양현 번역, 〈#14 - 에필로그〉, 《블록체인 구조와 이론》, 위키북스, 2017-06-23
- ↑ 이덕희 기자, 〈이더리움, ‘콘스탄티노플 하드포크’로 재도약할까〉, 《블로터》, 2019-01-04
- ↑ 최동녘 기자, 〈이더리움 콘스탄티노플 하드포크, 1월 중순 런칭 예정〉, 《블록미디어》, 2018-12-09
- ↑ 김진범 기자, 〈이더리움, 콘스탄티노플 하드포크 또 연기…"보안 결함 발견"〉, 《코인리더스》, 2019-01-16
- ↑ 최현규 기자, 〈이더리움 이스탄불 하드포크 성공〉, 《블록미디어》, 2019-12-09
- ↑ William Foxley, 〈이더리움, 새해 첫 ‘뮤어 빙하’ 하드포크 완료〉, 《코인데스크코리아》, 2020-01-03
- ↑ 이지영 기자, 〈"이더리움 개발자 모여라" 이드콘 한국 2019 개최〉, 《매일경제》, 2019-05-16
참고자료
- 영어
- 이더리움 공식 홈페이지 - https://www.ethereum.org/
- 이더리움 공식 문서 사이트 - http://www.ethdocs.org/en/latest/
- Vitalik Buterin, "A Next-Generation Smart Contract and Decentralized Application Platform", 2013.
- hashrushgame, "The Different Types of ERC Standards Used for Video Games", Steemit, 2018-07-03
- 한국어
- 비탈릭 부테린 씀, 이더리움 코리아 번역, 〈차세대 스마트 컨트랙트와 탈중앙화된 어플리케이션 플랫폼〉, 2013년.
- 이성일(modolee), 〈이더리움 개념 정리〉, 《깃허브》, 2018-05-14
- 한수연 기자, 〈(IT열쇳말) 이더리움〉, 《블로터》, 2018-02-09
- 한수연 기자, 〈(블록체인플랫폼) ①이더리움, 블록체인 2.0 시대를 열다〉, 《블로터》, 2018-01-14
- 유병철 기자, 〈(기묘한 재테크) 이더리움, 암호화폐이자 플랫폼…포인트는 ‘스마트 컨트랙트’〉, 《글로벌이코노믹》, 2018-01-22
- 오세용 기자, 〈ICO와 새로운 토큰 세일 모델 DAICO〉, 《IT조선》, 2018-05-14
- 블록인프레스, 〈이더리움 지분증명 합의 알고리즘 ‘캐스퍼’, 검토 절차 시작〉, 《블록인프레스》, 2018-04-23
- 비트웹 편집국, 〈이더리움 - 화폐 기능+스마트 계약 추가! 빠른 처리속도! 애플리케이션 개발을 블록체인 상에서 구현〉, 《비트웹》, 2018-01-27
- 머니넷스탭, 〈이더리움(Ethereum) 개념 및 특징〉, 《머니넷》, 2017-07-15
- 머니넷스탭, 〈메트로폴리스(Metropolis) 개념 및 특징〉, 《머니넷》, 2017-08-17
- 최동녘 기자, 〈이더리움 콘스탄티노플 하드포크, 1월 중순 런칭 예정〉, 《블록미디어》, 2018-12-09
- 이덕희 기자, 〈이더리움, ‘콘스탄티노플 하드포크’로 재도약할까〉, 《블로터》, 2019-01-04
- 야옹메롱, 〈이더리움 캐스퍼를 통해 Proof of Stake(PoS)를 구현〉, 《네이버 블로그》, 2018-07-10
- 소소대담, 〈이더리움,GAS, ERC20, 샤딩,세그윗,UTXO〉, 《네이버 블로그》, 2018-06-20
- Ash 님, 〈이더리움 개론〉, 《ASH HAN》, 2015-06-04
- 나라얀 프루스티 지음, 천민욱 번역, 《이더리움을 활용한 블록체인 프로젝트 구축》, 에이콘출판, 2017-11-24
- 아카하네 요시하루, 아이케이 마나부 등 지음, 양현 번역, 《블록체인 구조와 이론》, 위키북스, 2017-06-23
- 코인사이트 송다솜, 〈Ethereum 이더리움(ETH)의 모든 것!!! | ENG JP Subtitles |〉, 《유튜브》, 2018-02-01
- 핵심만 콕콕! 암호화폐 분석, 〈이더리움(Ethereum)은 무엇인가? 스마트 컨트렉트의 시작〉, 《블록센스》, 2018-06-19
- 핵심만 콕콕! 암호화폐 분석, 〈이더리움의 샤딩(Sharding) 기술은 무엇인가? 이더리움의 진화〉, 《블록센스》, 2018-06-30
- 인사이트 & 칼럼, 〈이더리움 네트워크 과부하, 억대급 거래 수수료(Gas) 발생 문제 분석〉, 《블록센스》, 2018-07-07
- 이지영 기자, 〈"이더리움 개발자 모여라" 이드콘 한국 2019 개최〉, 《매일경제》, 2019-05-16
- styner, <이더리움 네트워크 - 더 다오(The DAO)>, 《Steemit》, 2018
- styner, <이더리움과 이더리움 클래식의 분리>, 《Steemit》, 2018
- 최현규 기자, 〈이더리움 이스탄불 하드포크 성공〉, 《블록미디어》, 2019-12-09
- William Foxley, 〈이더리움, 새해 첫 ‘뮤어 빙하’ 하드포크 완료〉, 《코인데스크코리아》, 2020-01-03
같이 보기
|
|