The Merge
이더리움 2.0 Phase 0이 시작된지 6개월째 접어들고 있습니다. 이 글을 작성하는 현재, 이더리움 2.0에 스테이킹된 이더 수량은 약 396만개, 검증자 수는 12만명, 이더 시세를 약 240만원(!)이라고 했을 때 10조원에 해당합니다. 그러니까 네트워크의 신뢰성과 보안은 12만명의 전세계 검증자들이 자발적으로 낸 10조원으로 유지되고 있는 셈입니다. 이더 시세가 오른 이유도 있지만 어마어마한 액수라고 할 수 있습니다.
투자 측면에서는 최근 다시 되살아난 “김치 프리미엄”과 금융위원장의 거래소 폐쇄 발언을 보면서, 3년 전의 상황이 이렇게 재현되면 결국 지금이 매수의 기회가 아닐까 하는 생각도 하게 됩니다. 🤣
아무튼 작년 말부터 시작된 암호화폐의 붐은 아직 현재 진행형이고, 이더리움 2.0의 비콘 체인 역시 순항하고 있습니다!
eth1 + eth2 == Ethereum
이더리움 재단의 대니 라이언(Danny Ryan)은 흔히 사람들이 이야기하는 “eth1”, “eth2”라는 용어에 대해 무척 불만이 많은 것 같습니다. 올해 1월 블로그 포스팅을 보면 그렇게 나누는 것은 마치 이더리움의 버전이 올라가면서 eth1이 없어진다는(deprecated) 느낌을 주는데, 이것은 잘못된 이해라고 말합니다. “eth1”과 “eth2”는 그렇게 업그레이드 되는 개념이 아니라 서로 다른 계층(layer)으로 함께 “이더리움”을 구성할 것이라고 합니다.
Instead, the terms actually represent different layers of the stack.
간단히 말해서 현재 이더리움은 “사용자 계층” 또는 “실행(Execution) 계층”이고, 비콘 체인은 “합의(Consensus) 계층”이라는 말입니다. Geth를 비롯한 이더리움 1.0 개발팀과 비콘 체인을 중심으로 하는 이더리움 2.0 클라이언트 개발팀은 각각 독립적으로 많은 노력을 하고 있지만 어느 순간 한 쪽이 다른 쪽에 흡수되는 것이 아니라 두 영역은 다른 역할과 기능을 유지하면서 연계가 된다는 의미입니다. 이것을 “merge”라는 단어로 표현합니다. 이더리움 재단의 저스틴 드레이크는 트위터를 통해 Phase로 나누어 진행 중인 샤딩보다 먼저 “merge”를 수행하여 PoW를 조기에 “turn-off” 하자는 개발자들 의견을 공개하기도 했습니다.
Executable Beacon chain
저스틴 드레이크는 트위터에서 “minimum viable merge”라는 표현을 썼습니다.
“minimum viable” means no transfers, no withdrawals, no statelessness, no major EVM change
아니, 저 말대로라면 송금이나 인출이 되는 것도 아닌데 “merge”가 무슨 의미가 있지?라는 의문이 생길 수 밖에 없습니다. 그것은 아마도 최소한의 변경을 하면서 PoW를 중지하자는 의도를 가지고 있는 듯 보입니다. 즉 아직 완전체 “이더리움”으로 가는 길은 시간이 필요하므로 그 전에라도 가능하다면 빨리 PoW를 제거하자는 것입니다.
스테이킹된 이더와 검증 보상은 여전히 비콘 체인에 묶여 있고 현재 실행 계층에서 운용되는 스마트 컨트랙트도 아무런 변경없이 그대로 유지되면서 PoW 만을 제거하는 것이 “minimum viable merge”라는 것입니다. 이를 위해서는 PoW의 채굴자 역할을 누군가는 해야 합니다. 트랜잭션을 수집하여 블록을 만들고 또 블록을 검증하는 역할을 해줄 주체가 필요합니다. 결국 현시점에 이 기능을 수행할 수 있는 것은 비콘 체인 밖에는 없습니다. 그래서 제시된 것이 “Executable Beacon chain”입니다.
“Executable Beacon chain”의 주요 제안은 다음과 같습니다.
“We propose to get rid of this complexity by embedding eth1 data (transactions, state root, etc) into beacon blocks and obligating beacon proposers to produce executable eth1 data. This enshrines eth1 execution and validity as a first class citizen at the core of the consensus.”
한마디로 비콘 체인에 eth1 데이터를 기록하고 검증하게 한다는 것입니다. 비콘 체인의 슬롯에서 블록을 제안하는 검증자가 부가적인 eth1 데이터를 만들어 기록을 하고 검증단은 그것을 검증하는 것입니다. 여기서 “eth1 데이터”라는 것은 블록 정보입니다. 이렇게 하면 현재 PoW 채굴자들은 비콘 체인의 검증자들로 대체할 수 있게 됩니다. 채굴자들은 이제 해고되는 것입니다(그동안 많이 벌었지! 😛).
비콘 체인에서 eth1 데이터를 사용하는 것은 전혀 어색한 일이 아닙니다. 비콘 체인의 32 이더 예치 컨트랙트는 eth1에 존재하고 이미 비콘 체인은 eth1의 예치 컨트랙트를 읽어서 검증자 풀을 만들고 있습니다. eth1과 인터페이스하는 것이 다소 부하가 있겠지만 복잡하고 어려운 일이 아니라는 것입니다. 물론 eth1의 데이터를 가지고 있으니 비콘 블록의 크기가 커져서 부담이 될 수 있습니다. 또 비콘 노드를 실행하는 검증자는 eth1 full 노드(Geth와 같은 클라이언트)를 함께 운용해야 할 수도 있습니다.
트랜잭션 수수료 역시 비콘 블록을 생성하는 검증자가 받습니다. 특이한 점은 이렇게 받은 수수료는 eth1 체인에 그대로 남는다는 것입니다. 즉 지금 유통되는 이더와 마찬가지로 얼마든지 사용 가능하다는 말이 되겠습니다. 비콘 블록을 제안하는 검증자가 지정한 주소(coinbase 주소)로 트랜잭션 수수료가 전송되는 형태입니다(적용 예정인 EIP-1559은 그대로).
Rayonism
이더리움 클라이언트 개발자들은 이러한 개념을 구체화시키기 위해, 즉 merge된 테스트넷을 구성해보기로 했습니다. 블로그의 내용에 의하면 “Rayonism”이라고 명명한 단순화시킨 스펙을 가지고 테스트넷을 만들어보려는 것 같습니다. 이렇게 merge를 위해서는 eth1과 eth2 클라이언트의 수정이 필요합니다. 이러한 내용들은 아직 연구 중이기 때문에 향후 변경될 부분들이 많을 것입니다.