September 3, 2026

이더리움 2.0 – James Mary

이더리움 2.0 – James Mary

이더리움 2.0에 관한 일반적인 내용을 정리합니다. 잘못된 부분이나 개선 사항을 피드백 받기 위한 글입니다. 🙏

PoW vs PoS

가장 먼저 드는 의문은, 그렇다면 로드맵 상에 있던 Serenity는 어떻게 된 것이지? 하는 것입니다. 이더리움 2.0(Eth2.0)이 곧 Serenity입니다. 이더리움의 PoS인 캐스퍼(Casper)와 확장성을 위해 샤딩(Sharding) 기술을 적용한다는 의미로 “Shasper”라고 부르기도 합니다. 아무튼 공식 명칭은 이더리움 2.0으로 정해진 것 같습니다.

이제까지 이더리움은 하드포크를 통해 네트워크를 업그레이드했습니다. 다시 말해서 여러 가지 개선 사항(EIP)들을 적용한 이더리움 공식 클라이언트 Geth를 새로 배포하는 형태로 진행이 되어 왔습니다. 그렇다면 이더리움 2.0도 그런 식일까요?

결론부터 말하면 새로운, 완전한 PoS 블록체인을 구현하는 것으로 보는 것이 맞을 것 같습니다. 전에는 PoW+PoS의 하이브리드 형태(Casper FFG)를 거치기로 했으나 처음부터 “full” PoS로 가는 것으로 결정되었습니다. 물론 어느 날 갑자기 새로운 이더리움이 출현하는 것이 아니라 단계적으로(Phase 0, 1, 2) Serenity로 전환될 것입니다.

그럼 현재의 PoW 이더리움은, 이더리움 2.0과 비교하여, 이더리움 1.0이라고 말하는 이더리움은 어떻게 변할까요? 일단 변하지 않는다고 합니다. 즉 현재 이더리움은 그냥 PoW 그대로, 이더리움 2.0이 오픈된다고 해도, 두 개의 이더리움 네트워크가 공존할 것이라고 합니다. 마이너들과 투자자들을 포함해서, 이더리움 커뮤니티 내에서도 각자 이해관계에 따라 다양한 입장이 나올 가능성도 많습니다.

이 공존이 일시적인 것이라고 이해할 수도 있고(여기서 일시적이라 함은 최소 몇 년의 기간을 예상), 그냥 서로 영원히 공존할 것이라는 의견도 있습니다. 분명한 것은 일부러 이더리움 1.0을 폐쇄하거나 마이그레이션을 하는 것은 아니라는 것입니다. 물론 난이도 폭탄 등을 통해서 채굴이 어렵게 될 수도 있지만 여전히 트랜잭션은 처리될 것입니다.

뿐만 아니라 이더리움 1.0의 이더(채굴 보상, ETH)와 이더리움 2.0의 이더(검증 보상, “BETH”)은 서로 다른 이더가 될 것이라고 합니다. 이더리움 1.0의 이더를 2.0으로 전환하려면 이더리움 1.0에서 가지고 있던 이더를 “소각(burn)”해야만 하고 다시 되돌릴 수 없습니다(최근 기사에 의하면 한시적으로 양방향 전환이 가능하도록 허용해야 한다는 의견도 있습니다). 1 ETH를 1 BETH로 전환하는 셈이니 동일한 가치를 가지며 “fungible”하다고 말은 하지만 과연 시장(거래소)에서 그대로 그것이 반영될지는 모르겠습니다.

ETH와 “BETH”의 가치는 이더리움 2.0의 성공과 그에 따른 대중의 인식에 달려 있을 것입니다.

비콘(Beacon) 체인

이더리움 2.0의 Phase 0에서 구현될 가장 핵심적인 것은 비콘(Beacon) 체인입니다. 비콘이라는 사전적 의미를 생각해볼 때 샤드(shards)를 관리하고 감시하는 역할을 담당하는 것으로 예상할 수 있습니다. 비콘 체인은 일반적인 트랜잭션을 처리하는 체인이 아니며 실제적으로 PoS가 구현되는 체인으로(“PoS 체인”이라고 하면 비콘 체인을 의미합니다) 검증단의 선택, 검증보상과 페널티, 난수생성(RANDAO/VDF) 등의 기능을 제공할 것이라고 합니다.

비콘 체인에서는 더 이상 PoW로 블록을 생성하지 않습니다. PoS는 “지분증명”이고 그 지분이란 현재 이더리움 1.0에서 보유한 이더가 됩니다. 현재는 최소 32 이더의 “지분”을 담보로 제공해야(staking) 검증단 후보군에 들어갈 수 있습니다. 당연히 이더리움 1.0에 배포된 “deposit 컨트랙트”에 이더를 맡기게 될 것이고 비콘 체인에서는 이를 참조하여 검증단 후보군, “validator pool(set)”을 구성하고 여기에서 검증자들을 랜덤하게 선택하게 됩니다. 32 이더보다 더 많은 이더를 staking하는 경우에는 후보군에서 자리를 여러 개 차지하는 셈이 되므로 검증단으로 선택될 확률이 높아질 수는 있겠습니다.

참고로 “deposit 컨트랙트”는 2019년 10월 Devcon 5에서 공개되고 검증단 후보 “모집”이 시작될 것이라고 합니다(그러나 미확정된 사항들로 인하여 연기되었습니다). 네트워크의 안정성을 보장할 수준으로 이더가(약 300만 이더를 예상) staking 되면 비콘 체인을 오픈할 계획이라고 합니다. 순조롭게 진행된다면, 빠르면 2020년 상반기에 이더리움 2.0 Phase 0의 모습을 보게될 것으로 기대합니다.

비콘 체인에서 검증단의 역할은 두 가지로 구분됩니다. 하나는 블록 생성자(또는 제안자, proposer)이고 다른 하나는 블록의 무결성을 보증하는 증인(attester)입니다. 이 둘을 합쳐 검증자(validators)라고 하는데 두 역할이 고정적인 것은 아니고 랜덤하게 결정되기 때문에 어떤 경우에는 블록을 생성하기도 하고 어떤 경우에는 블록 검증을 하기도 합니다. 블록 생성자가 블록을 제안하면 검증자들이 그 블록을 “원장에 기록”할 것인지 확인합니다. 이것을 “attestation”이라고 합니다. 블록이 올바르다는 사실에 대한 “증인”이 되는 것입니다(당연히 “위증”에 대한 책임이 따릅니다). 각 검증자들은 어떤 블록에 서명했는지 기록을 남기게 되는데 이 때 사용되는 서명 방식이 BLS signature 이고 국제인터넷표준화기구(IETF)에서 표준화 작업 중에 있다고 합니다.

정해진 타임 슬롯(약 6–8초)마다 검증단 안에서 블록 생성자 하나와 다수의 검증자들이 랜덤으로 선택되고 체인에 추가될 블록을 결정하게(finalize) 됩니다. 검증자는 타임슬롯에서 한 블록에만 서명할 수 있도록 되어 있습니다. 타임슬롯 64개를 “epoch”으로 정하므로(슬롯이 6초이면 약 6.4분) 검증단은 한 epoch 동안 계속 블록 생성과 검증을 수행합니다.

모든 슬롯에서 블록이 반드시 생성되어야 하는 것은 아닙니다. 검증자가 오프라인되거나 네트워크 지연 등으로 합의를 이루지 못할 경우는 블록이 생성되지 않을 수 있습니다. 그러나 슬롯 2개 이상의 “skip” 현상은 발생하지 않습니다(어느 시점에 블록 생성 주기가 최대 18초가 될 수 있다고 합니다).

동일한 검증단 후보군을 가지고 있지만 비콘 노드마다 서로 다른 검증자들이 선택되는지는 명확하지 않습니다. 각 비콘 노드들의 검증단은 랜덤이므로 서로 차이가 있을 것 같습니다. “fork”가 발생될 수 있으므로 동일한 슬롯 내에서 여러 블록들이 만들어지는 것은 분명합니다(비콘 노들들은 서로 독립적으로 동작할 것입니다). 어떻게 보면 PoW보다 빈번하게 fork가 발생하지 않을까하는 생각도 듭니다. 비콘 체인에서는 LMD(Latest Message Driven) GHOST를 사용하여 “canonical” 체인을 유지합니다.

검증단에서 빠져 나오려면 그런 의사를 표시한 후 약 97일 후에 staking한 이더와 함께 그 동안 받은 검증 보상을 샤드 체인 중 하나로 송금하여 사용할 수 있습니다(아니면 비콘 체인의 계정 잔액으로 남을 것입니다). 이더리움 1.0에서는 변화가 없습니다. 다시 말해서 검증단 후보군에서 나오더라도 1.0의 이더로 환원할 수 없습니다(이더리움 2.0을 위한 staking 과정에서 기존 이더리움 1.0의 상당한 양의 자산이 동결되므로 향후 이더의 희소가치가 상승할 것으로 기대하고 있습니다😅).

검증자는 검증자 클라이언트로 비콘 노드에 접속합니다. 실제 블록을 만들고 검증하는 것은 검증자 클라이언트입니다. 그런데 검증자 클라이언트가 되기 위한 컴퓨터 사양은 PoW의 마이닝처럼 높은 사양을 필요로 하지 않습니다. 라즈베리파이에도 검증자 클라이언트를 설치할 수 있을 정도라고 하니 누구나 검증자가 될 수 있을 것이고 “스테이킹 풀”을 운영하는 서비스들의 등장도 예상되고 있습니다.

반면에 비콘 노드는 검증자 클라이언트와 샤드 체인을 관리하는 PoS의 핵심 기능들을 수행하므로 높은 성능의 서버를 필요로 할 것 같습니다(채굴보상과 같은 유인이 없기 때문에 노드 운영 주체에 대한 논란의 여지가 있습니다. 결국 인퓨라와 같은 IT기업들이 그 역할을 할 것으로 예상됩니다).

샤드(Shard) 체인

이더리움 2.0에서는 현재 단일 블록체인에서 처리하던 트랜잭션들을 이제 샤드(shard)라고 하는 작은 단위로 나누어진 네트워크에서 처리합니다(현재 1024개의 샤드로 나눌 예정). 샤드는 Phase 1로 구분되어 있지만 Phase 0과 병행하여 개발되고 있습니다.

샤드 체인에서 블록을 생성하고 검증하는 것 역시 비콘 체인에서 선택된 검증단이 수행합니다(검증단을 “committee”라고 합니다). 즉 비콘 체인에서는 비콘 체인을 위한 검증단과 함께 각 샤드에게 배정할 검증단을 제공하게 됩니다. 아마 샤드가 시작되면 비콘 체인에 연결하여 블록을 생성하고 검증할 검증자들을 랜덤하게 선택하게 될 것입니다. epoch 주기마다 랜덤으로 새로운 검증단이 샤드에 배정되므로 어느 특정 샤드에서 계속 검증자의 역할을 하는 것은 불가능합니다.

한 검증단에 속한 검증자의 수는 현재 최소 111개(128?)를 권장하고 있습니다. 따라서 1024개의 샤드와 각 샤드마다 111개의 검증자가 있으므로 staking되는 이더는 3,637,248 정도가 되겠습니다. PoW에서는 해쉬파워가 네트워크를 유지했다면 PoS에서는 staking 이더가 그 역할을 하는 것입니다.

최근 기사에 의하면 비탈릭 부테린이 1024개에서 64개의 샤드로 줄이자는 제안을 했다고 합니다. 따라서 이더리움 2.0은 당초 기대했던 큰 폭의 성능 개선은 이루어지지 않을 듯 합니다.

현재의 이더리움의 메인넷 기능은 샤드 체인에서 이루어진다고 보면 될 것 같습니다. 지금처럼 계정이 존재하고 스마트 컨트랙트가 배포될 것입니다. 하지만 샤드에 속한 계정들도 나누어 존재하게 될 것이므로, 예를 들어 샤드 A에 있는 계정 잔액은 다른 샤드 B에 있는 계정 잔액과 다를 것입니다. 일반 사용자에게는 기존 이더리움 1.0의 자산을 어떻게 샤드로 옮길 수 있을까 궁금할 수 있는데 아직 구체적인 방법이 제시된 것은 아닌 것 같습니다. 샤드에서는 그 자체로 발행되는 코인(native coin)이 없으므로 이더리움 1.0에서, 또는 비콘 체인에 있는 자산이 어떤 식으로든 연계되어야 합니다(샤드를 사이드 체인처럼 생각할 수 있는 부분입니다).

샤드 체인은 트랜잭션 데이터만 존재하고 그것을 검증할 수 있는 곳은 비콘 체인입니다. 즉 샤드 체인의 블록은 비콘 체인의 블록과 “크로스링크”로 “앵커링”되어 있으며 샤드 블록을 검증한 검증자들의 서명을 포함하여 블록의 무결성을 비콘 체인에 기록한다는 것을 의미합니다. 크로스링크는 한 epoch마다 주기적으로 생성되는 것으로 해당 시간동안 생성된 샤드 블록들의 “종합적인 상태(state)”를 비콘 체인에 기록하도록 되어 있습니다. 아마 state root 해쉬를 기록하는 것과 같은 방식이 아닐까 합니다.

단일 블록체인이 샤드 체인으로 나누어지므로 당연히 샤드 끼리는 어떻게 되지? 하는 의문이 생깁니다. 어떤 샤드에 배포된 컨트랙트와 인터페이스하려면 먼저 그 샤드에 접속해야 할 것입니다.아직 Phase 0의 비콘 체인에 집중하고 있어서 확실한 것은 나와 있지 않은 듯 하고 현재까지 알려진 바로는 이러한 “cross-shard”의 통신은여러 단계를 거쳐야 하므로 매우 느릴 것으로 예상하고 있습니다만 다양한 방안이 연구 중일 것입니다.

보상과 벌칙

검증단 후보군에 들어갔지만 어떤 이유로 인해 오프라인이 되면, 블록 생성자 또는 검증단으로 선택되더라도 아무것도 하지 않으면 이 때는 페널티가 주어지게 됩니다(이러한 경우를 “inactive leak”라고 합니다). 맡겨 놓은 32 이더를 일정 비율로 차감하게 되고(차감된 이더는 되찾을 수 없습니다) 오프라인 시간이 길어질수록, 즉 검증단의 역할을 제대로 수행하지 못하는 시간이 길어질수록 그 비율은 점점 높아지게 됩니다.

다시 말해서 일시적으로 오프라인이 되는 것은 페널티가 작지만 지속되는 경우는 점점 큰 페널티를 적용한다는 의미가 될 것 같습니다. 하지만 그렇게 차감되어 staking한 이더를 모두 잃는 것이 아니라 어떤 임계값(16 이더)에 도달하면 자동으로 검증단 후보군에서 제외(kick-out)됩니다.

검증단이 모든 일을 정상적으로 수행하는 경우에는 계속 검증단으로 남을 수 있지만 규칙을 어기고 가짜 트랜잭션을 만들거나 블록을 조작하는 등의 행위를 할 경우 “슬래셔(slasher)”가 해당 계정을 “슬래쉬(slashing)”하게 됩니다. 이더리움 재단의 저스틴 드레이크는 페널티와 슬래쉬를 구분해야 한다고 말합니다. 슬래쉬는 의도적으로 나쁜 행위를 한 경우의 벌칙이라고 할 수 있습니다. 비콘 체인의 슬래셔에 의해 검증자의 올바른 행동에는 보상이 주어지지만 나쁜 행위는 staking한 이더를 몰수하게 됩니다.

노드

이더리움 2.0이 어떤 식으로 네트워크가 형성되는지 궁금할 것입니다. 네트워크에서 운영될 노드들의 유형은 Shard FAQ에 간단하게 언급되어 있습니다. 단일 원장 블록체인의 경우와는 다르게 이더리움 2.0에서는 여러 개의 “원장”이 존재하게 됩니다.

먼저 가장 중요한 비콘 노드들이 필요합니다. “Super-full node”는 비콘 체인과 비콘 체인과 연결된 샤드 블록의 모든 정보를 가지게 될 것입니다. 비콘 노들들 중에는 그냥 비콘 체인 데이터만 가지고 있을 수 있는데 이것을 “Top-level node”라고 합니다.

“Single-shard node”는 “Top-level node”이면서 특정 샤드 하나의 데이터만 유지하는 노드입니다. 아마 이런 유형의 노드가 가장 많을 것 같습니다. 결국 “샤드”란 비콘 체인의 검증단이 만들어내는 블록체인이므로 항상 비콘 노드와 함께 운영될 것입니다. 나머지 “Light node”는 헤더만 유지하는 노드입니다. 확인이 필요한 경우에만 다른 “full” 노드로부터 데이터를 받아서 검증합니다(현재의 SPV 노드를 생각하면 될 것 같습니다).

애플리케이션은 대부분 Light node가 되거나 Single-shard node에 연결될 것 같습니다. 아마 애플리케이션에서는 자신이 연결하려는 샤드를 지정해야 할 것입니다. 결국 사용자 입장에서는 누군가를 “신뢰”해야만 하는 것은 변함이 없습니다. 다만 그 신뢰의 대상이 중앙집중화되어 있는가 아니면 분산되어 운영되는가 하는 차이만 있는 것입니다.

실행 환경(Execution Environment, EE)

Phase 2에서 진행될 애플리케이션의 실행 환경은 아직 갈 길이 많이 남았습니다. 현재 EVM이 eWasm으로 바뀔 것이고 그에 따라 여러 언어로 스마트 컨트랙트를 작성할 수 있게 될 것 같습니다.

최근 기사에 의하면 가장 큰 변화는 앞으로 단일 트랜잭션이 실행환경 자체 내에서 지원되지 않을 것이라고 합니다. 이것은 현재 단일 이더리움 네트워크에서는 트랜잭션이 실패하는 경우 revert 되는 것이 당연한 것처럼 여겨지는데 샤딩이 적용된 이후에는 마치 다중 데이터베이스의 “Two-Phase Commit” 과 같은 상황이 발생하기 때문입니다. 물론 동일한 샤드 내에서는 여전히 트랜잭션의 원자성(atomicity)은 보장될 것이라고 합니다.

실행 환경에서 주목할 것은 “Stateless”라는 점입니다. “Stateless”가 어떤 의미로 사용되는지는 정확히 이해할 수 없지만 현재 이더리움은 하나의 “원장”에 모든 상태들이(과거와 현재) 저장된다는 점을 생각하면 이더리움 2.0은 상당히 다른 모습이 되지 않을까 싶습니다. 실행 환경이 지금처럼 EVM 어느 하나로 통일되는 것이 아니라 다양한 실행 환경이 샤드에서 운용될 수 있을 것이라고 합니다.

다음 글에 있는 내용을 그대로 인용해보겠습니다.

As opposed to Eth1 which specifies how accounts/contracts look like, how the state is structured as a MPT, semantics of the EVM, etc. Eth2 abstracts these details and pushes them to layer 2. Instead Eth2 works with pure functions/reducers which have access only to 32 bytes of storage. These pure functions are expected to be Wasm blobs and are often referred to as execution environments (EEs). The 32-byte storage will most likely be used to store a commitment to the full state (e.g. merkle root) of that EE.

이렇게 되면 현재 이더리움의 PoW 체인도 하나의 실행 환경으로 비콘 체인의 “관리” 하에 들어가는 형태가 될 수 있다고 합니다.

This gives Eth2 a great degree of freedom. Various execution engines with completely different models can run on this framework. A few examples would be: Eth1 as an EE on top of Eth2, various account-based or UTXO-based token EEs, zero-knowledge based EEs (e.g. STARK verifier EE or SNARK verifier EE), Plasma OVM-like EEs, Libra EE, etc.

읽어주셔서 감사합니다.

References

Published at Mon, 18 Nov 2019 02:34:08 +0000

{flickr|100|campaign}

Previous Article

Bitcoin Rewards App Lolli Responds to Alibaba’s Denial of Partnership

Next Article

Sirius X, the Most Complete Tourism Facilitator with Advanced Blockchain