DSRV Report — The Merge, 자 이제 시작이야!

Youngbin Park
DSRV
Published in
15 min readSep 16, 2022

Disclaimer: 이 글은 정보 전달을 위한 목적으로 작성되었으며, 특정 프로젝트에 대한 투자 권고, 법률적 자문 등 목적으로 하지 않습니다. 모든 투자의 책임은 개인에게 있으며, 이로 발생된 결과에 대해 어떤 부분에서도 DSRV는 책임을 지지 않습니다. 본문이 포괄하는 내용들은 특정 자산에 대한 투자를 추천하는 것이 아니며, 언제나 본문의 내용만을 통한 의사결정은 지양하시길 바랍니다. 추가적으로 이 글이 쓰여진 시점과 현재 모두 DSRV는 이더리움의 벨리데이터로 참여하고 있었음을 알려드립니다.

이더리움은 오랜 기간 합의 알고리즘을 PoW(작업 증명)에서 PoS(지분 증명)로 전환하기 위한 여정을 걸어왔습니다. 이더리움은 이를 위해 2020년 12월 PoS를 기반으로 하는 비콘 체인(Beacon Chain)을 출시하였습니다. 비콘 체인은 ETH 예치(deposit)를 통해 활성화된 밸리데이터가 블록을 생성할 수 있는 체인입니다. 그 후 2년여의 기간 동안 이더리움은 PoW를 기반으로 동작하던 메인넷과, PoS를 기반으로 하는 비콘 체인이 병렬적으로 진행되어 왔습니다. ‘The Merge(이하 머지)’란 이렇게 병렬적으로 운영되던 메인넷과 비콘 체인을 하나로 합쳐, 이더리움의 합의 알고리즘을 PoW에서 PoS로 변경하는 이벤트입니다. 이더리움 재단은 최근 이더리움 2.0이라는 용어를 더 이상 사용하지 않고 Execution Layer(이하 EL), Consensus Layer(이하 CL)이라는 명칭을 사용하겠다고 발표한 바 있습니다.[1] 머지 이후의 이더리움은 PoW 이더리움이었던 EL과 비콘 체인이었던 CL이 하나의 체인이 되어, 블록을 생성하는 주체가 채굴자에서 밸리데이터로 완전히 바뀌게 됩니다.

머지가 되면 무엇이 바뀌나요?

이더리움에 PoS가 도입되며 예상되는 대표적인 효과로는 탄소 배출량 감소나 네트워크 보안성 향상이 있습니다. 하지만 이 외에도 크게 두 가지의 큰 변화가 주목됩니다.

ETH 발행량의 감소

머지 이후에는 이더리움에서 채굴자 보상으로 주어지던 약 13,000 ETH/일의 발행이 사라지고, 밸리데이터 보상으로 주어지던 약 1600 ETH/일 (13M ETH가 스테이킹 되어있을 때) 발행만이 남게 되어 현재 발행량에서 약 90% 정도가 감소할 것으로 추정됩니다. 가스비의 일부를 소각하는 EIP-1559와 함께 전체 ETH 발행량도 감소하면 이전 보다 더 쉽게 디플레이션이 발생할 것이라고 예상됩니다.[2]

스테이킹 보상,즉 밸리데이터의 보상 측면에서도 한번 살펴보겠습니다. 머지 이후 기존에 채굴자에게 주어지던 트랜잭션 수수료 보상이 밸리데이터들에게 주어지면서, 이가 밸리데이터 보상의 증가 요인으로 작용할 수 있습니다. 네트워크 사용량이 증가할수록 더 많은 보상을 받을 수 있는 것입니다. 하지만 장기적으로는 ETH가 더 많이 스테이킹되어 밸리데이터 노드가 증가할 수록, ETH 신규 발행량은 증가하지만 밸리데이터 노드 한대의 보상은 감소하여 스테이킹 보상 또한 감소하는 효과가 발생합니다. [3]

클라이언트 구조의 변화

머지 후 이더리움은 트랜잭션 실행을 위한 EL과 합의를 위한 CL이라는 두 레이어로 구성됩니다. 두 레이어는 각각의 클라이언트를 가지고 있습니다. 새로운 이더리움 용 클라이언트를 만드는 것이 아닌 기존의 PoW 이더리움(EL)의 클라이언트와 비콘 체인(CL)의 클라인언트를 활용, 둘의 용도를 구분하여 하나의 노드에서 동시에 실행하게 됩니다.

EL의 클라이언트(a.k.a Execution Engine)는 트랜잭션 멤풀(Mempool) 관리 및 실행(EVM), 그리고 이더리움 전체 상태를 저장하며 트랜잭션 유효성 확인을 담당합니다. 더하여 CL의 클라이언트(a.k.a Beacon Node)는 블록 생성 및 합의 등을 담당합니다. 동시에 실행되는 두 클라이언트는 각각 고유의 P2P 네트워크를 통해 통신하며, 서로와는 Engine API를 통해 통신하게 됩니다.

따라서 사용자가 트랜잭션을 보내면, EL의 클라이언트는 멤풀에 존재하는 사용자의 트랜잭션을 블록에 담고, Engine API를 통해 내부적으로 CL의 클라이언트로 전송합니다. CL의 클라이언트는 EL의 클라이언트에서 수신된 트랜잭션의 유효성을 파악하고 합의를 통하여 블록을 생성합니다. 블록이 생성되면 CL의 클라이언트는 EL의 클라이언트에게 최신 상태의 블록을 업데이트 하도록 요청합니다.

이더리움 재단에서 머지를 담당한 패리토시(Parithosh)는 DSRV와 진행한 인터뷰에서 이러한 모듈러 구조를 통해 레이어를 분리하여, 별도의 개발팀이 실행 혹은 합의라는 각 레이어의 역할에 더욱 중점을 둔 업그레이드를 할 수 있을 것이라고 기대하기도 하였습니다.

Post-merge client architecture. 출처: Danny Ryan

준비 과정은 어떠했나요?

이처럼 이더리움의 밸리데이터들은 앞으로 두 개의 클라이언트를 동시에 운영해야합니다. 현재 이더리움에는 Besu, Erigon, Nethermind, Geth 등의 PoW 이더리움(EL)의 클라이언트들과 Lighthouse, Lodestar, Nimbus, Prysm, Teku등의 비콘 체인(CL)의 클라이언트들이 매우 다양하게 존재합니다. 그만큼 다양한 클라이언트 조합이 발생할 수 있기 때문에 모든 조합에서 발생할 수 있는 버그들을 발견하고 PoS로 원활하게 전환하기 위하여 다양한 환경에서 클라이언트의 안전성을 확인하는 테스트가 필요했습니다. 이더리움 재단에서 진행한 쉐도우 포크(Shadow Fork)는 정식(Canonical)체인에 영향이 미치지 않도록 가상의 체인을 포크하여 머지를 테스트하는 것으로, 6번의 Goerli 테스트넷 쉐도우 포크, 13번의 메인넷 쉐도우 포크가 진행되었습니다.[4]

EL&CL Client Combination. 출처: Tim Beiko

비콘 체인은 Gasper(이하 개스퍼)라는 합의 알고리즘을 통해 합의를 하고 블록을 생성합니다. 머지 이전에 생성된 비콘 체인 블록에는 합의에 대한 정보만 담기고 있었습니다. 하지만 머지 이후에는 EL의 클라이언트에서 실행되는 트랜잭션들을 담아 블록을 생성해야 하기 때문에 EL로부터 수신되는 트랜잭션을 블록에 담기 위한 공간(ExecutionPayloads)을 만들도록 블록 구조를 변경해야 했습니다. 이를 위해 이더리움은 머지의 마지막 준비 단계로서 9월 6일 경 144896번 에폭에서 벨라트릭스 업그레이드를 통해 블록 구조 변경을 진행하였습니다. [5]

Post-merge block architecture. 출처 : Danny Ryan Twitter

실제로 머지는 어떻게 진행되었나요?

머지가 실행되는 타이밍은 PoW 블록 채굴 난이도의 누적값인 TTD(Total Terminal Difficulty, 최종 누적 난이도)에 의해 결정됩니다. TTD가 마침내 58750000000000000000000에 도달한 2022년 9월 15일 06:42:59 UTC, 4700013 슬롯(slot)에서 머지가 실행되었습니다.

Lighthouse Client PoS Activated log .출처: DSRV

머지가 실행되고 밸리데이터가 최초의 PoS 블록을 생성하며 PoS가 활성화 되었습니다. 하지만 첫 블록이 생성된 것 만으로는 머지가 성공했다고 속단할 수 없습니다. 개스퍼를 통해 블록을 생성하는 PoS 이더리움은 약 12초의 시간을 의미하는 슬롯(slot)과 32개 슬롯의 시간(약 6.4분)을 의미하는 에폭(epoch) 이라는 단위를 사용합니다. 하나의 슬롯에는 하나의 블록이 생성될 수 있으며, 블록체인이 포크(fork)한 경우 타당한 체인을 선택하기 위하여 매 에폭마다 체크포인트를 설정합니다. 이렇게 생성된 체크포인트들의 연결은 검증인의 투표를 통해 타당화(justified)됩니다. 이전 체크포인트와의 연결을 통해 타당화된 체크포인트는, 다음 체크포인트의 연결까지 타당화되면 확정되게 됩니다. (자세한 매커니즘은 DSRV Research의 Gasper 아티클을 확인하세요.)

따라서 최소 두 에폭이 지나고 블록이 확정(finalize)되어야 비로소 해당 블록이 취소되지 않는다고 판단할 수 있습니다. 머지 이후 첫 번째 블록이 생성된 후 두 에폭이 지난 약 15분 후에 비탈릭은 공식적으로 취소되지 않을 PoS의 첫 번째 블록이 나왔음을 발표하였으며, 머지가 성공하였습니다.

이더리움에는 현재 40만대 이상의 밸리데이터 노드가 블록 생성에 참여하고 있기 때문에 슬롯에 블록이 생성되지 않거나 노드들의 투표가 원활하게 진행되지 않을 것이 우려되기도 하였습니다. 하지만 우려와는 달리 머지 후 첫 블록이 생성된 4700013번 슬롯 이후, 두 에폭이 지날 때까지 모든 슬롯에서 블록이 생성되었습니다.[6] 또한 계속해서 안정적인 블록생성 비율을 유지하고 있습니다. 머지 후 약 2시간 30분 후인 146899번 에폭의 경우에도, 블록 생성 비율은 100%, Attestation 참여 비율은 94.4%, Sync Committee 참여 비율은 95.5%로 네트워크가 안정적으로 진행되고 있음을 확인 할 수 있습니다.

블록 생성 상태. 출처 : https://beaconcha.in/

DSRV가 운영하는 330818번 밸리데이터 또한 4700015번 슬롯에서 블록을 생성하였습니다. 이는 이더리움 머지 이후 세 번째로 생성된 블록이며, DSRV가 참여하는 Lido Pool에서는 첫 번째로 생성된 블록이었습니다.

- 330818번 밸리데이터 블록 생성 로그Sep 15 06:43:12.365 INFO Prepared beacon proposer                validator: 330818, prepare_slot: 4700015
Sep 15 06:43:24.084 INFO Valid block from HTTP API slot: 4700015, proposer_index: 330818, root: 0xda5d…93c5, block_delay: 675.124718ms
Sep 15 06:43:24.084 INFO Block from API validator: 330818, src: api, slot: 4700015, delay: 675, root: 0xda5d0eab1690b84cd6ca43d72f0d127a5e2dbadc83e5810423ed19b2b2f493c5
💡DSRV's Tip; PoS 이더리움의 첫 번째 트랜잭션
머지는 이더리움의 기념비적인 이벤트이기 때문에 많은 사람들이 머지 이후 첫 블록 생성자나 첫 트랜잭션이 되는 것에 의미를 부여하기도 합니다. 머지 이후 첫 번째 트랜잭션은 1등의 자리를 차지하기 위해 무려 36ETH를 가스비로 지불하였습니다.

What’s Next?

머지 이후에는 상하이 업그레이드가 예정되어 있습니다. (23년 Q1로 예상되나 이는 변경될 수 있습니다.) 아직은 상하이 업그레이드에서는 어떤 업데이트를 진행할지 확정된 사항은 없으나 [7] 비콘 체인에서 출시 이후 부터 계속 비활성화 되어있던 스테이킹된 ETH의 인출이 활성화 될것으로 예상됩니다. 뿐만 아니라 Layer2의 가스비를 낮추기 위한 업데이트등도 고려되고 있습니다.[8]

머지 이후 이더리움에서 진행될 주목할 만한 로드맵으로 MEV(Maximum Exacutable Value) 개선과 Danksharding도 빼놓을 수 없습니다. Proposer/Builder Separation(PBS)는 트랜잭션의 순서를 조절하여 이득을 취하는 MEV를 탈중앙화하기 위한 시스템입니다. 중앙화된 블록 생성자는 트랜잭션을 검열하여 MEV 수익을 독점할 수 있습니다. 이를 보완하기 위하여 트랜잭션의 순서를 정하여 자신의 수익을 극대화한 블록을 입찰하는 Builder와 Builder의 입찰을 채택하여 실행하는 Proposer로 블록 생성자의 역할을 분리하는 방식이 도입됩니다. 하지만 PBS는 추후에 도입될 예정으로 현재는 Flashbot에서 구현한 MEV-Boost라는 별도의 소프트웨어를 통해 이와 같은 블록 경매 시장이 우선적으로 적용되고 있습니다.[9]

기존 이더리움은 64개의 샤드(shard)에서 트랜잭션을 나누어 처리하는 방식의 샤딩(sharding) 로드맵을 가지고 있었습니다. 하지만 Layer2의 발전으로 이더리움에서 트랜잭션을 처리해야할 필요성이 낮아짐에 따라 Layer2에서 실행한 트랜잭션들의 데이터 가용성 레이어로 샤드를 사용하는 방식인 당크샤딩(Danksharding)으로 로드맵이 변경되었습니다. 당크샤딩이란 블록에 blob이라는 데이터 구조를 도입하여 한명의 Builder가 여러 샤드의 데이터를 모은 blob을 포함한 하나의 큰 블록을 제안하도록 하는 방식입니다.

이는 이더리움의 장기적인 로드맵 중 하나로 PBS 및 DAS(Data Availability Sampling, 데이터 가용성 샘플링, blob 데이터의 일부만을 랜덤하게 확인하여 트랜잭션을 검증)등이 도입된 후에 가능해질 것으로 보입니다. 우선적으로 적용되는 Proto-Danksharding(EIP-4844)은 샤딩 구현을 위한 토대로 제한된 크기의 blob transaction을 도입하는 업데이트 입니다. 이 또한 상하이 업그레이드에 포함이 고려되고 있습니다.[8]

마무리

우리는 이더리움이 오랜 시간 준비해온 머지가 마침내 성공적으로 진행된 역사적인 순간을 목도했습니다. 오늘은 머지가 실제로 어떻게 진행되었는지, 그리고 머지 이후 이더리움이 어떻게 변화되었는지를 포함하여 이더리움의 장기적인 로드맵까지 가볍게 살펴보았습니다.

머지를 통해 합의 알고리즘이 변경되었다고 하더라도 트랜잭션 속도나 가스비 등 확장성 개선에 직접적인 연관은 없기 때문에 일반 사용자입장에서는 크게 달라진 부분을 느끼기 어렵습니다. 하지만 이더리움이 이토록 많은 시간과 노력을 쏟으며 달려온 여정이 여기에서 마무리되는 것은 아닐 것입니다. 머지라는 체크 포인트에 도달한 지금, 이를 초석으로 하여 이더리움의 확장성이 어떻게 개선되어 나갈지에 앞으로의 귀추가 주목됩니다.

읽어주셔서 감사합니다.

Written by
Youngbin Park
, DSRV Researcher (Twitter @bin0_0bin)

Illustrations by
Heeyoung Moon, Brand Designer

💊 Key Takeaways

  1. 머지란 PoW 이더리움과 비콘 체인을 하나로 합쳐, 이더리움의 합의 알고리즘을 PoW에서 PoS로 변경하는 이벤트입니다.
  2. 머지 이후 이더리움은 채굴자를 통한 ETH 발행이 사라져 발행량이 감소합니다.
  3. 머지 이후 이더리움은 트랜잭션 실행을 위한 Execution Layer와 합의를 위한 Consensus Layer로 구성되며, 두 레이어는 각각 서로 다른 역할의 클라이언트를 가지고 있습니다. 머지 이후 이더리움 밸리데이터는 이 두 클라이언트를 함께 실행하여 블록을 생성합니다.
  4. 머지는 목표 TTD에 도달한 2022년 9월 15일 06:42:59 UTC, 4700013 슬롯에서 진행되었습니다. 머지 이후 이더리움의 첫 블록이 생성되고 두 에폭이 지난 약 15분 후에 공식적으로 이가 확정(finalize)되며 머지가 성공하였습니다.
  5. 머지 이후에는 상하이 업그레이드가 예정되어 있으며, ETH 인출 활성화 및 Layer2 가스비 인하 등이 진행될 것으로 예상됩니다. 또한 장기적으로는 PBS 및 당크샤딩과 같은 로드맵도 존재합니다.

Reference

[1] https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming
[2] https://ethereum.org/en/upgrades/merge/issuance/
[3] https://www.attestant.io/posts/exploring-execution-block-rewards/
[4] https://twitter.com/parithosh_j/status/1513129881927884801
[5] https://blog.ethereum.org/2022/08/24/mainnet-merge-announcement
[6] https://beaconcha.in/epoch/146875, https://beaconcha.in/epoch/146876
[7] https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md
[8] https://tim.mirror.xyz/M_3JZXBkvXnr3W1222WIDo1ipMuFymszjH-FP40CO5c
[9] https://boost.flashbots.net/

--

--