[블록체인 스터디 노트 #8] Ethereum의 역사: 발자취와 로드맵

in #dclick6 years ago (edited)

안녕하세요. 이글아이(@eaglekeeneye) 입니다.

이번 글은 지난 글에 이어진 이야기입니다. 아래의 링크부터 차례로 먼저 읽고 오시길 권장 드립니다.

0) 이야기 순서


우선 "1) 이더리움의 개발단계" 에서 이더리움의 개발 4단계인 Frontier(프론티어)-Homestead(홈스테드)-Metropolis(메트로폴리스)-Serenity(세레니티)에 대해 단계적으로 설명하겠습니다.

그다음은 "2) 이더리움의 주요 사건들" 에서는 DAO 해킹 사건을 포함한 이더리움에서의 주요사건들을 정리하겠습니다.

1)이더리움의 개발단계


이더리움 재단은 새로운 개척지를 찾고, 집을 짓고, 도시로 발전하여 평온을 찾는 것에 비유해서, 이더리움의 4단계의 개발 로드맵을 제시했습니다.

  • 1 단계: Frontier(프론티어)
  • 2 단계: Homestead(홈스테드)
  • 3 단계: Metropolis(메트로폴리스)
  • 4 단계: Serenity(세레니티)

( a ) 1 단계: Frontier(프론티어)


2013년 11월, 당시 19세이던 비탈릭 부테린(Vitalik Buterin)은 이더리움 백서를 작성하고 이더리움 개발을 제안합니다.

백서의 제목은 "A Next-Generation Smart Contract and Decentralized Application Platform" 으로, 저번 포스팅인 [블록체인 스터디 노트 #7] Ethereum의 탄생: 분산화된 애플리케이션 플랫폼에서 언급했듯이 비탈릭 부테린은 프로그래밍을 할 수 없는 비트코인 script의 근본적인 한계를 느끼고 이더리움을 창안했습니다.

그리고 2014년 7월~ 9월에 비탈릭 부테린의 주도로 이더리움 재단을 세우고 크라우드 펀딩 방식의 ICO를 통해 비트코인 31,000개의 개발 자금을 모았습니다.

이더리움 Frontier 단계 전에 2015년 5월에 Olympic 단계가 있었습니다. 이 단계는 정식 단계 전에 프로토타입 단계로, 총 25,000이더 규모의 버그 바운티를 진행하였습니다.

2015년 07월 30일에 이더리움 최초의 블록, 즉 제네시스 블록이 생성됨으로써 이더리움 서비스를 정식으로 시작했습니다. 바로 이더리움 Frontier(프론티어) 단계가 시작된 것입니다. 당시의 채굴자에 대한 보상은 1개 블록당 5이더였습니다.

Frontier 단계는 이더리움의 첫 번째 단계로 베타 버전으로써 개발자들이 주로 이용하는 것으로 계획되었으나 기대 이상으로 플랫폼이 신뢰성이 있자, 많은 개발자가 이 플랫폼 위에 다양한 솔루션들을 만들게 되면서 생태계가 발전하게 되었습니다.

원래 Frontier 단계에서는 시스템의 안정성을 위해 블록당 5,000가스의 한도가 존재했습니다. 이것은 몇 가지 테스트를 거치고 가스 한도를 3,000,000으로 늘리는 하드포크가 예정되어있었습니다. 그리고 2015년 09월 07일 이더리움 200,000번째 블록에서 Frontier Thawing 하드포크를 수행하였습니다.

Thawing: 해동

Frontier 단계에서는 아래와 같은 작업이 이루어졌습니다.

  • 채굴 작업 실행 (감소된 보상비율)
  • 암호화폐 거래소에 Ether 상장
  • dApp test 를 위한 라이브 환경 구축
  • Ether 수집을 위한 샌드박스 및 수도꼭지 만들기
  • Smart contract 를 업로드하고 실행 할 수 있는 환경 구축

( b ) 2 단계: Homestead(홈스테드)


2016년 03월 14일에는 이더리움 1,150,000번째 블록에서 Homestead(홈스테드) 단계를 이행했습니다. 이 과정에서는 베타 테스트에서 나오던 오류들이 줄어들고 미스트 브라우저의 사용이 가능했습니다.

이 단계에서는 유명한 사건인 DAO 해킹 사건이 일어난 시기였습니다. 이 사건에 대해서는 [블록체인 스터디 노트 #6] Bitcoin, 그리고 그 이후의 포스팅에서 간단하게만 정리하였지만, 아래의 항목에 자세하게 다룰 것입니다.

그리고 이더리움 네트워크를 마비시키는 스팸 공격에 대응하는 하드포크를 진행하였습니다. 2016년 10월 18일과 11월 22일, 이더리움 2,463,000번째, 2,675,000번째 블록에서 각각 EIP 150, 스퓨리어스 드래곤(Spurious Dragon) 하드포크를 진행하였습니다.

EIP : Ethereum Improvement Proposal

2017년 5월에는 삼성SDS㈜가 기업형 이더리움 연합체인 EEA에 회원사로 가입하였으며, 다음 달인 6월에 이더리움의 시가총액 규모가 약 20조 원을 돌파하게 되었습니다. EEA(Enterprise Ethereum Alliance)는 기업형 이더리움 연합으로써 퍼블릭 블록체인인 이더 토큰 기반이 아닌 이더리움 오픈소스 코드를 기반으로 하고 있습니다.

Homestead 단계에서는 아래와 같은 작업이 이루어졌습니다.

  • 이더 채굴 보상 비율이 최대 100% 상승
  • 네트워크 중단 없음
  • 후기 베타 상태(경고 메세지 감소)
  • 커맨드 라인 및 미스트에 대한 문서화 추가

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


Metropolis(메트로폴리스) 단계에는 크게 2가지의 Byzantium(비잔티움)과 Constantinople(콘스탄티노플) 하드포크가 예정되어있습니다. 콘스탄티노플 하드포크는 최근에 일어나고 있는 일이며, 아래의 항목에서 자세히 다룰 것입니다.

메트로폴리스의 개발과정은 로마제국의 동, 서로마 제국으로의 분열 이후 동로마 제국인 비잔틴 제국을 비유한 것입니다. 왜 하필 로마의 본격적으로 쇠퇴하기 시작한 제국을 비유했는지 모르겠지만, 로마의 미래를 이끌 마땅한 황제가 없어 군벌 출신 황제가 난립하고 로마제국은 서부와 동부로 나뉘게 되었습니다. 이때 동로마 제국은 수도를 콘스탄티노플로 옮기게 됩니다.

서로마는 정치적으로 안정되지 못하여 기원후 400년대에 망하게 되고, 비잔틴 제국은 빠르게 숙적을 제거해나가고 정치적 안정을 찾았습니다. 바로 로마의 문화를 바탕으로 콘스탄티노플에서 그리스 문화를 발전시킨 비잔티움을 빗대어 매트로폴리스의 개발이 진행되고 있습니다.

2017년 10월 16일 이더리움 4,370,000번째 블록에서 비잔티움 하드포크를 진행했습니다. 이 단계에서는 본격적으로 이더리움의 대중화를 위한 스마트 컨트렉트를 업그레이드하였습니다. 이 시기에는 모두 아시다시피 ERC-20 토큰으로 이더 ICO가 난립한 상황이며, 아무 토큰이나 매수하면 기본적으로 몇십 배의 가격이 오르던 시기였습니다.

ERC: Ethereum Request for Comment의 약자. 이더리움은 다양한 서비스 플랫폼 또는 프로젝트들이 이더리움의 오픈 소스 프로토콜 ERC-20, ERC-223, ERC-621, ERC-721, ERC-1155를 토대로 서비스 사이트를 만들고 토큰을 발행할 수 있는 플랫폼이다.

ERC-20: 현재까지 가장 대중화된 표준이다. 개발도 용이하고 많은 암호화폐 거래소에서 지원하는 표준이다.

2018년 01월 비탈릭 부테린이 기존 ICO의 문제점을 해결하고자 새로운 방식의 다이코(DAICO)를 제시했습니다.

그리고 아래에 조금 더 자세하게 설명하겠지만, 2019년 1월에 콘스탄티노플 하드포크를 시도했으나 연기되었습니다. 이더리움뿐만 아니라 POW(Proof of Work) 방식 토큰은 고질적으로 확장성(scalability) 문제가 있었습니다.

느린 속도와 컴퓨팅 파워를 위한 전기낭비를 줄이기 위해 이더리움 콘스탄티노플 하드포크에서는 Casper 을 적용하게 될 것이며, 최종적으로는 POS(Proof of Stake) 방식으로 전환하게 되는 준비과정인 셈 입니다.

POS: Proof of Stake, 즉 지분 증명. POW는 CPU 파워를 이용해 난수를 찾아내는 노드가 선의의 노드라고 보고 토큰으로 보상을 받는 채굴 방식을 사용하였다면, POS는 네트워크상에 지분(stake, 예치금)을 많이 가진 노드가 장부를 검증할 때 지분만큼 투표할 권한을 주고 토큰을 보상으로 준다.

Casper: 이더리움에서 POW와 POS 방식의 하이브리드 방식의 합의 알고리즘이다. 100개의 블록이 생산될 때, 1번째부터 99번째까지는 채굴을 통해 보상을 얻고 100번째 블록마다 POS를 통한 검증을 진행하는 식으로 POS:POW = 1 : 99 방식의 합의 알고리즘이다. POW의 비중은 점차 줄어들게 되어 POS로 전환하게 될 예정이다.

( d ) 4 단계: Serenity(세레니티)


위의 Casper를 통한 이더리움의 POW 방식에서 POS 방식으로 완전한 전환을 이루고 이더리움을 이용하는 모든 주체가 잔잔한 환경에서 평화롭게 이루는 단계를 얘기합니다. 이더리움의 출범 이후 최종적으로 도달하겠다고 한 목표에 이른 시기를 말합니다.

이때는 채굴로 인한 자원 낭비가 없을 뿐만 아니라, 익명성이 보장되는 환경에서 스마트 컨트렉트를 마음껏 이용할 수 있는 단계가 됩니다.

2) 이더리움의 주요 사건


( a ) DAO 해킹사건


( i ) DAO (Decentralized Autonomous Organization)


DAO 는 해석을 그대로 옮기자면 탈중앙화 자율조직이며, 어떤 조직도 소유하지 않고 자율적으로 합의된 프로세스에 따라 운영되고 있는 조직을 말합니다. 독일 Slock.it 사의 분산 크라우드펀드 프로젝트로 더 다오 펀드 (The DAO Fund)로 약 1.5억 달러에 해당하는 투자자금을 모았습니다. 이렇게 DAO 의 커뮤니티원은 이더를 담보로 DAO token을 소유함으로써 개인이나 기업이 제출한 신규 사업에 출자할 수 있습니다.

여기에 올려진 제안은 커뮤니티의 투표를 받아 많은 득표를 받은 사업이 출자금을 받을 수 있으며, 받은 출자금 일부를 출자자들에게 돌려주게 되었습니다. 투표 결과에 동의하지 않는 커뮤니티원은 DAO 자금에서 자신의 자금을 떼어내어 이더로 환불하는 기능인 split(스플릿)을 이용할 수 있었습니다.

( ii ) DAO 토큰 해킹과 하드포크


하지만 2016년 06월 DAO 토큰 해킹 사건이 발생 했습니다. DAO contract에는 취약점이 있었는데, 바로 split 함수를 이용하여 해커들이 무단으로 이더를 인출해갔습니다. 환불과정에서 이더를 얻고 DAO token의 잔고가 바로 반영되지 않는 취약점을 이용한 것입니다. DAO token을 환불 신청하여 이더가 환불신청하여 DAO 토큰을 되돌려주기 전에 이더를 무한히 받아갔습니다.

이 무한환불 공격방식으로 인출해간 이더리움은 약 360만 개 정도이며, 당시 전체 이더리움의 10%에 해당하는 양이었습니다. 이에 따라 다양한 해결책들이 제시되었습니다.

  • DAO 에서 이 사건을 스스로 해결하는 방법

이더리움 블록체인상에서의 문제가 아니라, 다오에서 만든 split 코드에 결함이 있었던 것이므로 다오에서 해결해야 한다는 주장입니다. 이 경우가 가장 좋은 방법이겠지만 다오에 참가한 커뮤니티의 피해가 너무 크다는 단점이 존재합니다.

  • 소프트 포크로 해커의 계정을 동결시키는 방법

이 경우는 해커의 이더 인출을 막아낼 수 있지만, 전체 이더리움의 10% 정도에 해당하는 양의 잔고가 모두 묶이는 단점이 존재합니다. 또한 소프트 포크 진행 시 발생하게 될 attack vector 때문에 사실상 불가능하게 되었습니다.

  • 하드 포크로 다오 해킹 기록을 rollback 하는 방법

해커들이 해킹한 이더만 원래 보유자들에게 돌아가도록 하드포크를 진행하는 방법입니다. 하지만 이 방법에는 이더리움이 추구하는 탈중앙화 기조와 상충하는 면이 있어 커뮤니티에서 뜨겁게 논쟁이 되었습니다. 제 3자가 자신의 동의 없이 계정에서 토큰을 몰수하는 것은 중앙화된 체인이라는 비난을 면하기 어렵기 때문입니다.

( iii ) 하드포크와 이더리움 클래식(Ethereum Classic, ETC)의 탄생


제시된 방법 중 이더리움 재단은 해커들이 돈을 인출해가기 전에, DAO token 보유자들에게 이더가 돌아가게 하는 하드포크를 진행하기로 하였습니다. 그리고 2016년 7월 20일 1,920,000번째 블록에서 하드포크를 진행하였습니다.

하드포크를 진행한 이더리움에 비탈릭 부테린을 포함한 각종 암호자산계의 유명인사들이 지지하였지만, 업데이트를 거부하고 기존의 체인을 유지하기로 한 사람들도 존재하였습니다. 바로 다오 토큰 해킹 사건에 대한 이더리움 재단의 대응을 문제 삼았는데, 하드포크를 통한 자산환수는 탈중앙화 기조에 위배된다는 것이었습니다.

이때부터 하드포크를 진행한 체인은 이더리움, 하드포크 없이 잔류한 체인은 이더리움 클래식(Ethereum Classic, ETC) 이 되었습니다. 그리고 2016년 7월 24일 이더리움 클래식은 해외대형거래소인 Polonix 에서 상장되어 버리고 맙니다.

이더리움 클래식을 상장시킨 Polonix 와 다오 해킹 사건의 해커들과 모종의 거래가 있지 않았냐는 의혹도 존재합니다. 하지만 오히려 다른 거래소에서도 이더리움 클래식을 상장시키는 사례가 잇따라 일어나자 또 하나의 다른 토큰으로 자리 잡게 되었습니다.

( b ) Constantinople(콘스탄티노플) 하드포크


( i ) POS (Proof of Stake)의 장단점


비트코인은 POW (Proof of Work) 방식의 합의 알고리즘을 갖는 토큰이고, 이더리움은 현재는 POW지만 POS (Proof of Stake) 방식의 합의 알고리즘을 전환하는 과정을 거치고 있습니다. POW방식에서의 단점을 POS 방식으로 크게 3가지를 보완할 수 있다고 합니다.

  • 명시적인 경제적 안정성

많은 암호자산의 가격이 폭락하게 되는 고질적인 문제입니다. 바로 POW 기반의 토큰은 암호자산 보유자와 채굴자의 이익이 일치하지 않기 때문입니다. [블록체인 스터디 노트 #6] Bitcoin, 그리고 그 이후 글에서도 비트코인 캐시 하드포크 사태를 소개해드렸다시피, 채굴자들의 이해관계에 따라 비트코인에 유지하던 체인을 마음대로 끌어다 해시 전쟁을 벌였습니다. 이 과정에 암호자산 보유자의 의사는 전혀 반영되지 않았습니다.

하지만 POS 합의 알고리즘에는 검증에 참여하는 노드들이 해당 암호자산을 예치(stake)해야 하기 때문에 결국 네트워크의 안정성을 검증할 노드와 지분 보유자의 이해관계가 일치하게 됩니다.

  • 중앙화의 완화

초창기 비트코인 채굴은 일반 컴퓨터로도 채굴할 수 있었습니다. 하지만 점차 많은 노드가 채굴에 참여하게 되어 GPU를 이용한 채굴을 거쳐 ASIC을 이용한 채굴까지 발전해, 일반 컴퓨터로는 채굴이 거의 불가능하게 되었습니다.

ASIC (Application Specified Integrated Circuit): 주문형 반도체로 특정 용도의 집적회로다. 암호자산 채굴에만 사용되는 것이 아닌 자동차, 참단기기등 특정 용도로 사용되는 집적회로를 모두 통치한다.

이것으로 POW 기반의 체인의 중앙화가 가속되었습니다. 그 이유는 같은 자본으로 채굴 효율성이 높은 채굴장을 갖는 것이, 총합이 같은 자본의 여러 노드가 채굴하는 것보다 보상을 받을 확률이 높아졌기 때문입니다. 즉, 같은 1달러 증가당 투자이익의 증가는 투자자본이 많을수록 더욱 커집니다.

반면에 POS 방식의 합의 알고리즘에서는 같은 자본을 가진 한 개의 노드와 총합이 같은 자본의 여러 노드가 동일한 권한을 가지게 됩니다. 같은 1달러 증가당 투자이익의 증가는 모두 동일하기 때문에, POW 방식의 합의 알고리즘에의 한 중앙화를 완화할 수 있습니다.

  • 에너지의 효율성

POW 방식의 합의 알고리즘은 필요 이상의 에너지를 많이 소비하지만, POS 방식의 경우 노드의 검증과정에 컴퓨터 연산이 필요 없기 때문에 적은 비용의 전기비용만 들어갑니다.

하지만 POS 방식 역시 해결해야 할 문제점들이 산적해 있습니다. 이 포스팅에서는 자세히 다루지는 않고 다음 포스팅에서 다루도록 하겠습니다.

( ii ) 이더리움 Casper


우선 이더리움의 Casper는 이더리움 캐스퍼 첫걸음 by Jon Choi에 자세히 설명이 나와 있습니다. Casper에 대한 자세한 설명은 이번 포스팅의 범위와 저의 역량을 크게 벗어나기 때문에, 개념에 대해서 간략하게만 정리하고 자세하게 다루지는 않겠습니다.

이더리움에는 여러 Casper 프로젝트가 진행되고 있으며, 이중 대표적으로 2가지의 casper 프로젝트가 있습니다. 하나는 Vitalik 에 의한 Casper the Friendly Finality Gadget (“FFG”) 프로젝트로, POS로 전환하기 위해 POW 체인 위에 POS 방식의 합의 알고리즘을 덧씌우는 방식입니다. 다른 하나는 Vlad 에 의한 Casper the Friendly GHOST: Correct-by-Construction (“CBC”) 프로젝트가 있습니다.

( iii ) 콘스탄티노플 하드포크 내용정리


콘스탄티노플 하드포크에서 변하게 될 내용은 아래와 같습니다.

  • EIP-145: 이더리움 가상머신(EVM)에 비트 쉬프트 연산자를 추가하는 제안
  • EIP-1052: EVM 연산자에 의해 컨트랙트 소스의 해시 값만 얻어올 수 있도록 하여 가스비를 줄이는 방안
  • EIP-1014: 비탈릭 부텐린이 제안한 EVM 연산자 제안으로, 이더리움 체인상에 없는 주소로 컨트렉트를 생성할 수 있는 연산자
  • EIP-1283: SSTORE라는 EVM 연산자의 gas 소모 계산 방식을 바꿔 gas 비용을 줄이는 방안
  • EIP-1234: 현재 적용되어 있는 난이도 폭탄(difficulty bomb) 알고리즘을 1년 정도 지연시키는 제안

여기서 주목해야 할 제안은 EIP-1234인데, POW 방식에서 POS 방식으로 급격하게 전환하게 되면 기존 채굴자들의 반발에 의해 따로 체인을 만들어 하드포크를 진행할 가능성이 있습니다.

그래서 제안은 난이도 폭탄의 시기를 1년 더 지연시킴으로써 채굴자들의 채굴 비용을 완화하는 대신 1블록당 3이더에서 2이더로 낮춤으로써 채굴자들에게 생긴 이득을 낮추게 되었습니다.

2018년 10월 13일에 원래 예정되어있던 이더리움의 콘스탄티노플 하드포크를 시도했으나 실패하고 연기하였습니다.
2019년 01월 16일에 이더리움 7,080,000번째 블록에서 이더리움 콘스탄티노플(Ethereum Constantinople) 하드포크를 재시도하였으나, 2월 28일쯤으로 더 연기하고 있습니다.

3)결론


이번 포스팅에서는 이더리움 개발의 4단계를 소개하였습니다. 현재는 3단계의 콘스탄티노플 하드포크를 진행 중에 있습니다.

콘스탄티노플 하드포크에서 중요한 개념인 POS(Proof of Stake)가 POW에 비해가지는 장점이더리움 콘스탄티노플 하드포크의 내용을 간략하게 정리했습니다.

다음 포스팅에서는 이더리움의 한계에 대한 포스팅을 올리겠습니다.

4)참고자료 및 각주


참고문헌:


긴 글 읽어주셔서 감사합니다.
여러분의 팔로우+업보팅+리스팀은 저에게 힘이 됩니다.


Sponsored ( Powered by dclick )
[몸공부, 마음공부] 감정표현불능증

감정표현불감증이란 게 있습니다. 자신이 느끼고 있는 감정을 표현하지 못하는 거죠. 왜냐면 그...

Sort:  

짱짱맨 호출에 응답하여 보팅하였습니다.

Congratulations @eaglekeeneye! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You published more than 30 posts. Your next target is to reach 40 posts.

Click here to view your Board
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

Support SteemitBoard's project! Vote for its witness and get one more award!

Hi @eaglekeeneye!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 1.529 which ranks you at #36851 across all Steem accounts.
Your rank has improved 385 places in the last three days (old rank 37236).

In our last Algorithmic Curation Round, consisting of 281 contributions, your post is ranked at #264.

Evaluation of your UA score:
  • Only a few people are following you, try to convince more people with good work.
  • You have already convinced some users to vote for your post, keep trying!
  • Try to work on user engagement: the more people that interact with you via the comments, the higher your UA score!

Feel free to join our @steem-ua Discord server

Coin Marketplace

STEEM 0.23
TRX 0.28
JST 0.042
BTC 104956.85
ETH 3880.98
SBD 3.32