Ethereum 2.0
2020년 7월, 별다른 사건이나 사고로 인해 런칭이 지연되지 않는다면 무사히 출시 될 Ethereum 2.0에 산업 전반에 걸쳐 기여하고 있는 많은 블록체인 업체들이 이목을 집중하고 있습니다. 과연 지분증명 합의 알고리즘으로의 전환을 통해 확장성과 안정성을 해결하는 플랫폼으로 재탄생할 수 있을까요?
주요 기능
총 6개의 단계 로드맵을 가진 Ethereum 2.0의 주요 기능으로 Phase 0- 비콘 체인(Beacon Chain), Phase 1- 샤드(Shard), Phase 2- EWASM(Ethereum WebAssembly) 가 있습니다.다른 Phase 에 대한 설명은 Ethereum Sharding Roadmap (https://github.com/ethereum/wiki/wiki/Sharding-roadmap) 에서 확인할 수 있습니다.
Phase 0- 비콘 체인
: 독립된 PoS 네트워크 구현, 검증인들의 지분을 통한 블록 생성 및 제안 메커니즘 확립
Phase 1- 샤드
: 높은 트랜잭션 처리속도와 처리량 제공, 네트워크를 최소 64개 샤드로 분할하는 확장성 솔루션 도입
Phase 2- 이와즘
: W3C 표준 웹 어셈블리 기반 가상머신 도입
이번 주제에서는 최근 비콘체인의 테스트넷 가동과 하반기에 예정된 비콘체인 메인넷 출시에 맞추어 주로 Phase 0- 비콘 체인의 합의알고리즘 설명에 중점을 두고 작성을 하였습니다.
Ethereum 2.0 Client
2020년 7월에 출시 될 비콘 체인은 PoS 지분증명 시스템으로 구성되며 실제 이더리움 토큰을 지원하는 형식으로 구현됩니다. 동시에 Ethereum 2.0에서는 1.0과 달리 단일 노드 클라이언트를 통해 운영되는 형태가 아닌 두개의 개별 클라이언트를 통해 네트워크를 유지하게 될 것입니다.
1) 비콘 노드 클라이언트
비콘 노드 클라이언트는 비콘 체인의 중심기능을 담당하고, 다른 비콘 노드와 지속적으로 소통을 유지하며 시스템 동작에 필요한 기능을 제공합니다..
네트워크에서 생성되는 블록을 처리하고 체인상태 개선
포크 상태에서 올바른 체인을 선택
기존 이더리움의 예금 컨트랙트의 최신 이벤트를 주기적으로 확인하며 업데이트
주요 체인 내 정보 요청에 응답
2) 검증 노드 클라이언트
검증 노드 클라이언트는 기존 이더리움 채굴자들을 위한 마이너 노드와 유사한데 PoS시스템으로 전환되면서 마이닝과 달리 리소스를 효율적으로 처리할 수 있게 설계되었으며, 역할은 다음과 같습니다.
블록제안
검증 위원회
비콘 노드와 연결
비콘 노드의 경우 다른 조건 없이 누구나 비콘 체인의 최신상태를 동기화 할 수 있지만 검증 노드는 블록을 제안하고 검증하는 네트워크의 주요 책임을 맡고 있어, 예치금이 필요합니다.
Phase 0 : 비콘 체인
Phase 0는 비콘 체인의 도입과 안정적 운영을 위한 요소로 구성됩니다. Phase 1 샤딩의 준비단계이기도 하고 샤드체인 도입후 자잘한 여러개의 블록 검증을 수행하기 위한 시스템입니다. PoS 생태에서 네트워크를 안정적으로 유지하려면 충분한 검증인이 확보가 되어야 하는데, 기존 PoW 환경의 채굴권력 집중화를 극복하기 위해 비콘 체인은 개스퍼(Gasper)라고 하는 합의 알고리즘을 도입하여 PoS로의 전환을 유도합니다.
1. PoS Consensus : Gasper
비콘 체인은 개스퍼라고 하는 합의 알고리즘을 도입하는데, 이는 LMD Ghost와 Casper FFG가 결합된 알고리즘이고, 각각 포크 시, 어떤 포크를 선택할지 결정하는 프로토콜과 블록 완결성 알고리즘을 결합한 형태인데 비콘 체인은 이 합의 알고리즘을 구현단계에서 어느정도 수정하여 적용했습니다.
1) LMD Ghost
Greedy Heaviest Observed Subtree(“GHOST'“) 프로토콜은 포크 된 체인중 가장 무거운(=긴) 체인을 메인체인으로 선택한다는 규칙이며, 아래 그림과 같이 긴 체인이 선택되는 내용입니다.
LMD GHOST는 기존 GHOST프로토콜에 최근 메시지 기반(Latest Message Driven) 아키텍처를 적용하여, 포크 상황 발생시 최신 메시지(=해당 제안된 블록에 Voting한 수)로 더 많은 지지를 얻은 체인을 메인 체인으로 선정하는 것을 규칙으로 합니다.
2) Casper FFG
Capser the Friendly Finality Gadget(“Casper FFG”)는 비잔틴 장애 허용 알고리즘 기반의 블록 완결성을 보장하는 PoW/PoS 하이브리드 알고리즘 입니다.
Casper FFG의 핵심은 완결성 보장을 위한 체크포인트(Checkpoint)를 두고 일정 블록시점마다 검증을 실시한다는 규칙이고, 검증인의 2/3 이상의 지지를 확보하면 “체크포인트가 가중 다수결로 연결되었다.”고 표현하며, 체크포인트 검증을 두번 거치면 해당 체크포인트 블록까지 완결성이 보장되고, 블록 수정이 불가능 해진다는 것 입니다.
그리고, 검증인은
1) 두 개의 포크된/ 동일한 높이의 체크포인트를 선택할 수 없다(Accountable Safety),
2) 2/3 이상의 검증인가 프로토콜을 준수하면 어떤 사건과 상황(예치금 삭감, 블록딜레이 등)에서도 새로운 체크포인트를 완결할 수 있다 (Plausible liveness)
는 규칙을 통해 정확한 검증을 수행하게 됩니다.
3) Gasper
Gasper는 LMD GHOST의 포크 선택 룰과 Casper FFG의 블록 완결성 보장 알고리즘을 결합한 합의 알고리즘입니다. 이는 비콘 체인에 적용하게 되면서 슬롯(Slot)과 에포크(Epoch)라는 새로운 개념이 추가되었습니다.
슬롯(Slot)
슬롯은 블록을 제안하고 검증인들이 검증하기까지의 시간 단위를 의미합니다. 한 슬롯당 약 12초의 시간 이 주어지며, 슬롯마다 블록 생성이 이루어지기 때문에 비콘 체인에서는 체인의 연속성을 높이가 아닌 시간의 흐름으로 구조화 합니다.
그렇기 때문에 12초 안에 블록이 제안되지 않거나, 제안한 블록이 검증을 통과하지 못해 해당 슬롯에 블록이 포함되지 않게 될 가능성도 있습니다. 이 때 해당 슬롯은 블록이 제안되지 않은 상태에서 다음 슬롯으로 넘어갑니다.
에포크(Epoch)
여러 개의 슬롯으로 이루어진 하나의 주기이며, 현재는 32개 슬롯이 한 에포크를 이루고 있습니다. 32개의 슬롯이기 때문에, 12초 X 32 = 384초 (=6.4분)이 한 에포크입니다.
비콘 체인에서는 앞서 Casper FFG에서 사용한 체크포인트 개념을 ‘에포크 경계 블록(EBB)와 페어(Pair)’로 표현합니다.
3-1) 에포크 경계 블록과 페어 (EBB and Pairs) 개념
Epoch Boundary Blocks(EBB, 에포크 경계 블록)은 Casper FFG의 체크포인트 역할을 하는 블록이며, 각 에포크의 첫 번째 슬롯에 있는 블록이 EBB 입니다. 다만, Gasper에서는 특정 에포크에 블록이 하나도 없을 경우가 생길 수 있어서, 에포크 경계 블록-EBB를 표현할 때 순서쌍의 형태(B, j)로 표현하는데 이를 ‘페어’라고 말합니다.
예를 들어, EBB(B, 1) 은 “B블록이 포함된 체인의 1번 에포크의 EBB”를 의미 합니다. (답은 B 입니다.) 참고로, 모든 EBB(N, 0) 은 제네시스블록을 의미 합니다. (=N블록이 포함된 체인의 0번 에포크의 EBB)
3-2) Blocks and Attestations, HLMD GHOST와 가완결, 완결
Gasper에서는 검증을 위한 위원회(committee)를 구성합니다. 위원회는 한 슬롯당 최대 64개까지 구성되며 위원회 구성원 중 하나가 블록제안자(Block proposal)로 선출되어 블록을 제안하고 나머지 구성원은 검증인으로 제안된 블록을 검증합니다.
블록제안과 검증은 HLMD GHOST를 사용하는데, 이는 Hybrid LMD GHOST를 의미하며, 검증인 보호를 위한 보완 프로토콜이 적용된 GHOST 프로토콜입니다.
가중 다수결(검증인 2/3 지지를 받은 상태)로 연결된 가완결(예비 완결) 상태의 체크포인트 페어와 에포크 경계 페어의 블록을 검증시 포크가 발생할 때, 검증인이 올바르게 검증을 진행 했음에도 서로 다른 블록에 투표를 하게되어 이중 투표에 의한 불이익을 받게 될 때 이를 방지하기 위해 사용합니다.
그림을 예로 들면, Epoch 0 의 제네시스블록(0번 슬롯의 EBB)과 Epoch 1의 EBB인 64번 슬롯의 블록은 가중 다수결로 연결되어 있으며, 가완결 상태입니다.
반면, Epoch 3의 192번 슬롯(블록이 없어서 포함 안됨) 대신 180번 슬롯이 Epoch 2의 64번 슬롯과 가중 다수결로 연결되며, 가완결 됩니다.
Gasper에서 완결은 가중 다수결로 연결된 페어가 직계일 필요가 없기 때문에 가중 다수결로 연결된 페어의 차이는 1 이상일 수 있습니다.
위 그림에서 화살표는 가중다수결 연결을 의미하며 k는 페어간 차이를 의미합니다.
3-3) 처벌 조건
Gasper의 처벌 조건은 Casper FFG와 동일하며, 검증인이 동일 에포크에서 서로 다른 페어에 대한 검증을 할 수 없고 검증에 투표한 페어들 사이에 있는 페어에 대한 검증을 수행할 수 없습니다.
2. 비콘 체인 참여 조건 : 예금 컨트랙트
비콘 체인은 개스퍼 알고리즘으로 완전한 PoS 생태계로 전환되며 ETH를 예치 자산으로 사용하여 마이그레이션 기능으로 비콘 체인에서의 검증인 자격을 획득할 수 있는 예금 컨트랙트를 추가 했습니다.
검증인 자격을 획득하기 위한 유효 예치 금액은 32 ETH 이며, 이 금액을 예금 컨트랙트로 보낸 뒤 컨트랙트에 모인 ETH가 최소 50만 이상이 되어야 비콘 체인의 제네시스 블록이 생성됩니다.
단방향 컨트랙트이기 때문에 한번 전송된 이더리움은 다시 돌려받을 수 없고, 유효 예치금액 이상을 전송해도 32 ETH에 대한 보상만 획득할 수 있습니다. 초과 전송분은 Phase 1 샤드가 개발 되기 전까지 비콘 체인 내에 묶여 있게 됩니다.
예금 컨트랙트를 통해 유효 금액을 예치한 검증인은 비콘 체인의 검증인 집단에 등록된 후 무작위로 블록제안자 또는 위원회로 선정됩니다.
여기까지 Ethereum 2.0 Phase 0 : Beacon chain Consensus Algorithm 을 다뤄 보았습니다.
체인 자체의 효용성을 높일 이번 업데이트가 향후 블록체인 업계에 새로운 원동력이 될지 지켜보는 것도 커다란 의미가 있는 것이라고 생각합니다. 현재 산업이 직면한 Usecase의 부재 역시 오픈 플랫폼으로 이더리움이 지속적인 업데이트를 통해 사용자간 소통과 협력을 할 수 있게 되는 중요한 계기로 발돋움 하길 기대하며 다양한 비즈니스의 파생과 풍족한 산업기반을 형성하길 기대합니다.
Reference
BitMex Research - Ethreum 2.0
(https://blog.bitmex.com/ethereum-2-0/)Ethereum Sharding Roadmap
(https://github.com/ethereum/wiki/wiki/Sharding-roadmap)ONTHER-TECH - 이더리움 2.0 깊이보기
(https://medium.com/onther-tech/%EC%9D%B4%EB%8D%94%EB%A6%AC%EC%9B%802-0-%EA%B9%8A%EC%9D%B4%EB%B3%B4%EA%B8%B0-%EC%8B%9C%EB%A6%AC%EC%A6%88-eth-2-0-explained-phase-0-1%ED%8E%B8-74ee5659a40a)Hexlant Report - Ethereum 2.0
(https://bit.ly/2X8kNVw)