SW/블록체인

블록체인 : 이더리움의 탄생, 로드맵 : 비트코인과의 차이점

얇은생각 2022. 1. 30. 07:30
반응형

이더리움 개요

이더리움은 오픈소스이고 블록체인 기술을 기반으로 설계되었으며, 정확히 프로그래밍 한 대로 동작하는 스마트 컨트랙트를 실행시키는 분산 컴퓨팅 플랫폼입니다. 이더리움에서는 이더(Ether)라는 이더리움 플랫폼에 의해 생성된 암호화폐가 존재하고, 이것은 비트코인과 마찬가지로 거래소에서 거래되고 있습니다.

이더리움은 2013년 비탈릭 부테린이라는 아주 스마트한 젊은이가 백서를 작성했고, 이후 2014년에 ICO를 거쳐 2015년 7월 30일에 개발한 이더리움을 런칭하였습니다. 비탈릭 부테린은 암호화폐인 비트코인에 사용된 핵심 기술인 블록체인에 화폐 거래 기록 뿐만 아니라 계약서 등의 추가 정보를 기록할 수 있다는 점에 착안하여,

전 세계 수많은 사용자들이 보유하고 있는 컴퓨팅 자원을 활용해 분산 네트워크를 구성하고, 이 플랫폼을 이용하여 SNS, 이메일, 전자투표 등 다양한 정보를 기록하는 시스템을 창안했습니다. 추가적으로, 이더리움은 C++, 자바, 파이썬, GO 등 주요 프로그래밍 언어를 지원합니다.

 

블록체인 : 이더리움의 탄생, 로드맵 : 비트코인과의 차이점 1

 

이더리움 재단에서는 총 4단계 로드맵을 통해 이더리움이 나아가야 할 방향을 제시했고, 이에 맞춰서 현재개발을 진행하고 있습니다. 현재는 로드맵의 3단계인 메트로 폴리스 단계의 비잔티움 업데이트를 진행한 상태입니다. 그림을 보면 지금까지 로드맵을 따라 어떻게 진행되었는지 확인할 수 있습니다.

각각의 단계에 대해서 설명하도록 하겠습니다. 1단계 프런티어는 암호화폐인 이더리움을 개발하여, 이더리움상에서 블록을 채굴하여 네트워크를 형성하여 이더리움 블록체인이 생성되는 단계입니다. 2단계 홈스테드는 이더리움에 참가하는 노드들이 생기면서 생태계가 구축되는 초기 단계입니다.

이더리움의 성장을 위해서 여러 가지 기능을 업데이트하여 보완하였습니다. 참고로 2016년 7월 8일 DAO 공격이 발생하면서 1,920,000번째 블록에서 하드 포크가 진행되었습니다. 이 하드포크 결과로 이더리움 클래식이 생겨나게 되었습니다.

3단계 메트로폴리스는 이더리움의 대중화를 위한 인프라가 형성되는 단계입니다. 이더리움의 인프라가 형성되어 본격적으로 성장이 가속화되는 시기라고 볼 수 있습니다. 특히 3단계 메트로폴리스에서는 이더리움의 비잔티움과 콘스탄티노플 두 단계가 있습니다.

비잔티움 하드포크는 2017년 10월 16일 437만 번째 블록을 기점으로 실행되었습니다. 메트로폴리스 단계에서는 일반인들도 암호화폐를 쉽게 접할 수 있게 되면서 수요가 폭발적으로 늘어날 것으로 추측됩니다. 폭발적으로 늘어난 수요를 감당하기 위해선 결제 처리 속도를 높일 필요가 있습니다. 그래서 메트로폴리스 단계에서 채굴 방식의 전환이 시작됩니다.

전기를 지나치게 소비하고 채굴기가 필요한 ‘작업증명(Proof of Work)’ 방식에서보다 효율적이고 지나친 연산이 필요 없어지는 ‘지분증명(Proof of Stake)’ 방식으로 서서히 바뀌게 됩니다. 마지막, 4단계 세레니티는 모든 변화 후에 평정을 찾는 이더리움의 마지막 단계입니다. POS로 합의 알고리즘의 전환을 완료하고, Dapp이 어려움 없이 작동 가능한 블록체인 플랫폼이 형성되는 단계입니다.

 

 

 

비트코인과 이더리움의 주요 차이점

사람들은 이더리움을 2세대 블록체인이라고 부릅니다. 1세대 블록체인은 비트코인인데, 이더리움과 비트코인은 어떠한 차이점들이 있을까요?

사실 이더리움도 비트코인을 기반으로 설계된 블록체인 기반 플랫폼이기 때문에 기본적인 메커니즘은 비트코인과 많이 비슷합니다. 하지만 이더리움을 2세대 블록체인으로 거듭나게 한 차이점들이 존재합니다.

크게 3가지 차이점이 있습니다. 첫 번째, 비트코인에서는 스마트 컨트랙트라는 개념을 지원하지 않았으나 이더리움에서 스마트 컨트랙트를 처음으로 지원하였습니다. 비트코인의 경우에는 원장을 탈중앙화시킨 암호화폐의 거래에 초점을 맞춘 플랫폼입니다. 스마트 컨트랙트로 다양한 블록체인 기반의 응용들을 지원할 수 있게 되었습니다.

두 번째는 튜링 완전성을 가진다는 것입니다. 비트코인 같은 경우에는 거래의 유효성을 검증하기 위해서 튜링 불완전한 스크립트 언어를 사용합니다. 이는 의도적으로 반복문을 제거해서 실행이 무한루프에 빠지는 것으로부터 보호하며, if 문만 지원합니다.

하지만 이더리움의 경우는 튜링 완전한 언어를 사용하기 때문에 if 문 뿐만 아니라 반복문과 다른 조건문도 지원합니다. 이더리움이 지원하는 언어는 Solidity, Serpent, LLL 등이 있는데 이 중에서 Solidity가 가장 많이 사용됩니다.

세 번째, 어카운트(Account)의 유무입니다. 비트코인에서는 사용자 계정을 나타내는 어카운트라는 개념이 없습니다. 블록체인에서 별도의 어카운트를 위한 공간을 할당하지 않기 때문에, 계정별로 보유하고 있는 금액도 추적하고 있지 않습니다.

다만, wallet application에서는 사용자 Address인 UTXO를 모두 더해서 사용자가 사용할 수 있는 비트코인의 금액을 표시합니다. 그래서 비트코인의 거래는 UTXO로 이루어져 있으며, 비트코인의 상태변환은 UTXO가 사용되었는지 아닌지에 대한 상태변환입니다.

하지만 이더리움에는 어카운트가 존재해서, Nonce, Balance, Root, CodeHash등의 필드들을 어카운트별로 저장합니다. 그리고 단지 UXTO의 상태변환이 아닌, 전에 언급했던 필드들의 변경으로 인한 상태변환을 허용합니다. 어카운트별로 Balance를 저장하고 있기 때문에, 계속 잔액이 변경되는 상태를 추적하고 있다는 것을 의미합니다.

 

블록체인 : 이더리움의 탄생, 로드맵 : 비트코인과의 차이점 2

 

또한, 거래가 어카운트를 기반으로 이루어져 있습니다. 본 테이블은 비트코인과 이더리움을 비교한 것입니다. 비트코인은 평균적으로 약 10분마다 블록이 생성되고, 이더리움은 약 15초가 걸립니다. 그리고 비트코인은 초당 7개 정도의 트랜잭션을 처리하고, 이더리움은 초당 15개 정도를 처리합니다.

비트코인 플랫폼에 참여하고 있는 총 노드 수는 2020년 8월 5일 기준으로 10,000개가 조금 넘고, 이더리움은 7,000개가 조금 넘습니다. 비트코인과 이더리움은 현재 모두 Proof of Work (PoW)를 합의 알고리즘으로 사용하고 있습니다. 하지만 이더리움은 앞으로 Proof of Stake(PoS) 합의 알고리즘으로 교체할 계획을 가지고 있습니다.

비트코인의 최초 블록은 2009년 1월 3일에 생성되었고, 이더리움의 최초 블록은 2015년 7월 30일에 생성되었습니다. 화폐, 즉 BTC와 ETH의 최대 발행량에 대한 비교입니다. 비트코인은 2150년까지 21,000,000개수의 코인을 생성하기로 예정되어 있습니다.

이더리움은 아직 명확히 최대 발행량이 정해지지 않았고, 현재는 무한대라 볼 수 있습니다. 비트코인은 50BTC부터 시작해서 블록체인에 21만 개의 블록이 추가될 때마다 보상이 절반으로 줄어드는데 (50->25->12.5->6.25->…) 현재는 6.25 BTC가 마이너에게 보상됩니다.

이더리움은 5ETH를 보상으로 주었었는데, 비잔티움 업데이트 이후로 3ETH가 블록 보상으로 주어졌었습니다. 현재는 콘스탄티노플 업데이트 이후로 2 ETH가 보상으로 주어집니다. 마지막으로, 비트코인은 암호화폐를 주고 받아들일 수 있는 단지 암호화폐 기능만 초점으로 만들어진 플랫폼이라면, 이더리움은 암호화폐 기능을 포함해서 모든 산업 분야에 적용될 수 있는 플랫폼이라 볼 수 있습니다.

 

블록체인 : 이더리움의 탄생, 로드맵 : 비트코인과의 차이점 3

 

이더리움 플랫폼에서 어떠한 일들이 일어나는지 간략하게 소개하겠습니다. (1) 은 사용자들이 이더리움 클라이언트 및 지갑 소프트웨어를 설치하여 각자의 계정을 생성할 수 있다는 것을 보여줍니다. (2) 는 사용자들은 암호화폐 거래소를 통해서 이더(ETH)를 사거나 팔 수 있다는 것을 보여줍니다.

(3) 은 사용자가 이더리움 지갑을 통해서 이더를 송금하는 트랜잭션을 만들어서 이더리움 네트워크로 전달시킬 수 있고, 생성한 계정으로 다른 사람들이 보내는 이더를 받을 수도 있다는 것을 보여줍니다. (4) 는 Dapp을 통해서 사용자가 이더를 이용해서 상품 등을 구매할 수 있다는 것을 보여줍니다.

(5) 는 DApp를 통해서 서비스를 제공하는 사업주들이 이더를 받고 상품을 팔 수 있다는 것을 보여줍니다. 여기서 (4), (5) 는 스마트 컨트랙트를 통해서 구현될 수 있습니다. (6-1)은 실제 이더리움의 노드가 블록을 체인에 연결시키기 위해서 하는 일을 간략히 소개했습니다.

이더리움 노드를 동작시키고 있는 채굴자(마이너)는 PoW 합의를 위해서 특정한 해시값을 계속해서 찾습니다. 만약에 부합하는 값을 찾았다면, (6-2)에서 처럼 생성된 신규 블록을 체인에 추가하고, 이것을 이웃 노드들에 브로드캐스팅합니다. 이를 통해서 이더리움 네트워크에서 동작 중인 모든 노드가 해당 블록을 추가하게 됩니다.

(7) 은 이더리움 플랫폼 자체를 향상시키기 위한 개발자들이 지속적으로 개발을 하고 있는 모습을 보여줍니다. (8) 은 DApp 개발하는 개발자들이 DApp 스마트 컨트랙트를 개발하여 이더리움 네트워크에 전파시킬 수 있음을 보여줍니다.

 

 

이더리음 플랫폼 참조 모델

 

블록체인 : 이더리움의 탄생, 로드맵 : 비트코인과의 차이점 4

 

이더리움 플랫폼 참조 모델을 간략히 설명하겠습니다. 보시는 레퍼런스 모델은 사용자들이 가장 많이 사용하는 Go-Ethereum이라는 클라이언트를 기반으로 작성되었습니다. 이더리움은 데이터, 합의, 실행, 공통, 응용 계층으로 이루어져 있습니다.

데이터 계층에서는 이더리움에서 다루는 각종 데이터를 정의하며, 어카운트, 트랜잭션, 블록, 블록체인 등 데이터와 관련된 내용을 포함합니다. 합의 계층은 어카운트에 의해 생성된 트랜잭션과 이와 관련된 데이터들을 포함하는 블록의 유효성을 검증하는 합의 엔진과 이 과정을 수행하여 블록을 체인에 포함시키는 마이닝, 인센티브와 관련된 가스 등의 합의 메커니즘에 관련된 내용을 포함합니다.

실행 계층(execution layer)은 Smart Contract를 이더리움 노드들에서 실행해주는 EVM(Ethereum Virtual Machine)과 Smart Contract에 관련된 내용을 포함합니다. 공통 계층(Common layer)에서는 앞서 설명한 계층에서 공통으로 사용하는 P2P 네트워크, Database, 해시함수, 인코딩 등과 같은 내용을 포함합니다. 마지막으로 응용 계층(Application layer)은 앞에서 언급한 내용들로 구축된 이더리움 플랫폼 위에 올라가는 Dapp이라는 응용프로그램과 관련된 내용을 포함합니다. 

 

 

 

참조

http://www.kmooc.kr/courses/course-v1:POSTECHk+CSED490U1+2021_T1/about

 

블록체인 입문

블록체인과 암호화폐 기술을 깊이 배우기에 앞서, 비 전공자들도 이해를 할 수 있는 수준으로 블록체인과 암화화폐에 대한 high-level 설명 및 응용 예시를 제공하고 실제 상황에 적용할 수 있다.

www.kmooc.kr

 

반응형