별.png별.png별.png

이더리움

해시넷
Asadal (토론 | 기여)님의 2019년 4월 30일 (화) 02:42 판
이동: 둘러보기, 검색
이더리움(Ethereum) 로고
이더리움(Ethereum) 로고와 글자

이더리움(Ethereum)은 블록체인 기술을 기반으로 스마트 계약 기능을 구현하기 위한 분산 컴퓨팅 플랫폼이다. 중국어로는 이타이팡(以太坊, tài fāng)이라고 한다. 이더리움은 비트코인을 기반으로 만든 가장 대표적인 알트코인으로서, '비트코인 2.0'이라고도 부른다. 이더리움이 제공하는 이더(Ether)는 비트코인과 마찬가지로 암호화폐의 일종으로 거래되고 있다. 엄밀한 의미에서는 '이더리움'은 플랫폼이고, '이더'가 암호화폐이지만, 일반적으로 양자를 구별하지 않고 '이더리움'을 암호화폐의 이름으로 사용하기도 한다. 이더리움의 화폐 단위는 ETH이다. 2015년 7월 비탈릭 부테린(Vitalik Buterin)이 C++(Go) 언어로 개발했다. 이더해시(Ethash) 알고리즘 기반의 작업증명(PoW) 방식으로 채굴 중이지만, 앞으로 작업증명 방식을 벗어나 지분증명(PoS) 방식으로 변경할 예정이다.[1]

개요

이더리움은 초기에 이시리움 또는 에테리움 등 다양한 이름으로 불리다가 시간이 지남에 따라 이더리움으로 표기가 통일되고 있다. 영어로 Ethereum의 정확한 발음은 미국식으로 이씨리엄([iˈθɪɹiəm])이고, 영국식으로는 이씨어리엄([iˈθɪəɹiəm])이다. 중국어로는 이더리움을 이타이팡(以太坊, tài fāng, 이태방)이라고 부른다.

이더리움은 디앱(DApp)을 배포할 수 있는 분산 응용 애플리케이션 플랫폼이며 스위스를 거점으로 하는 이더리움재단(Ethereum Foundation)에서 개발하고 있는 오픈소스 프로젝트이다. 이더리움 이전의 블록체인 기반 기술은 전자화폐에 특화된 기능을 구현했기 때문에, 암호화폐 이외의 영역에서 사용하기에는 어려움이 있었다. 반면 이더리움은 비트코인과 비슷한 전자화폐의 기능과 더불어 솔리디티(Solidity) 등의 튜링완전성(Turing-Completeness)을 갖춘 확장용 언어를 이용해 스마트 계약을 작성함으로 여러 분야에 접목할 수 있다. 덕분에 블록체인 기술을 다양한 비즈니스 분야로 확장할 수 있게 되었다.

역사

비탈릭 부테린(Vitalik Buterin, 2016년) 이더리움 창시자
  • 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) 하드포크를 재시도할 예정이다.

특징

이더리움(Ethereum)

이더리움은 기존 비트코인의 핵심 기능인 블록체인 기술을 그대로 계승하였을 뿐 아니라, 기존 비트코인을 뛰어넘은 혁신적인 기술로 평가되고 있다.

스마트 계약

비탈릭 부테린은 비트코인에 사용된 핵심 기술인 블록체인에 화폐 거래 기록뿐 아니라 계약서 등의 추가 정보를 기록할 수 있다는 점에 착안하여, 스마트 계약 기능을 구현했다. 스마트 계약(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) 방식으로 한 단계 발전하였다. 가기.png ICO에 대해 자세히 보기 가기.png 다이코에 대해 자세히 보기

주요 기술

이더리움은 기존 비트코인에서 볼 수 없었던 다양한 새로운 기술을 개발·도입했다.

솔리디티 언어

비탈릭 부테린은 이더리움을 이용한 스마트 계약 기능을 구현하기 위해 솔리디티(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)이라는 용어는 외부 소유 계정에서 블록체인의 다른 계정으로 보낼 메시지를 저장하는 서명된 데이터 패키지를 나타내기 위해 사용한다. 트랜잭션은 다음 사항을 포함한다.

  1. 메시지 수신자
  2. 발신자를 확인할 수 있는 서명
  3. 전송할 이더의 양
  4. 계약서로 전송된 메시지를 포함할 수 있는 선택적 데이터 필드
  5. 트랜잭션 실행을 위해 허용되는 최대 연산 단계 개수(가스 한도)
  6. 트랜잭션 발신자가 각 연산 단계를 위해 지불하는 비용(가스 가격)

이 중에서 처음 세 항목은 암호화폐에서 거의 표준처럼 사용되는 값이다. 데이터 필드는 이렇게 모든 거래에는 가스(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처럼 고유성이 있는 토큰을 무한히 생성할 수 있는 표준이다.

채굴

이더해시 작업증명

이더리움은 이더해시(Ethash)라는 작업증명 알고리즘을 사용하여 채굴할 수 있다. 이더리움은 비트코인이나 라이트코인과 같은 작업증명(PoW) 방식의 합의 알고리즘을 사용하고 있고 있지만, 기존 비트코인의 SHA-256 방식이나 라이트코인스크립트(Scrypt) 방식을 사용하지 않고, Hashimoto/Dagger hybrid인 이더해시(Ethash) 방식을 사용한다.

합의 알고리즘이란 P2P 네트워크와 같이 정보 도달에 시간차가 있는 네트워크에서 여러 참가자들이 하나의 단일한 결과에 대한 합의를 얻기 위한 알고리즘이다. 각 노드에서 블록체인을 공유하기 위해 사용하는 중요한 기능이다. 기존의 작업증명(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) 로고

더 다오 해킹 사건

더 다오(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일 이더리움 측은 약속한 콘스탄티노플 하드포크에 성공하였다.

각주

  1. 블록인프레스, 〈이더리움 지분증명 합의 알고리즘 ‘캐스퍼’, 검토 절차 시작〉, 《블록인프레스》, 2018-04-23
  2. "Ethereum Virtual Machine", Ethereum Homestead, Ethereum community
  3. Rachel Rose O'Leary, 〈이더리움 가상머신(EVM) 2.0: 이더리움의 심장이 교체된다〉, 《코인데스크코리아》, 2018-10-02
  4. 나라얀 프루스티 지음, 천민욱 번역, 《이더리움을 활용한 블록체인 프로젝트 구축》, 에이콘출판, 2017-11-24
  5. "What is a transaction?", Ethereum Homestead, Ethereum community
  6. "What is gas?", Ethereum Homestead, Ethereum community
  7. hashrushgame, "The Different Types of ERC Standards Used for Video Games", Steemit, 2018-07-03
  8. 출처 : 이더리움 공식 홈페이지 - https://www.ethereum.org/
  9. 블록인프레스, 〈이더리움 지분증명 합의 알고리즘 ‘캐스퍼’, 검토 절차 시작〉, 《블록인프레스》, 2018-04-23
  10. 아카하네 요시하루, 아이케이 마나부 등 지음, 양현 번역, 〈#14 - 에필로그〉, 《블록체인 구조와 이론》, 위키북스, 2017-06-23
  11. 이덕희 기자, 〈이더리움, ‘콘스탄티노플 하드포크’로 재도약할까〉, 《블로터》, 2019-01-04
  12. 최동녘 기자, 〈이더리움 콘스탄티노플 하드포크, 1월 중순 런칭 예정〉, 《블록미디어》, 2018-12-09
  13. 김진범 기자, 〈이더리움, 콘스탄티노플 하드포크 또 연기…"보안 결함 발견"〉, 《코인리더스》, 2019-01-16

참고자료

영어
한국어

같이 보기


  별.png별.png별.png 이 이더리움 문서는 암호화폐 종류에 관한 좋은글로 선정되었습니다.