The merge(이하 머지)는 이더리움의 합의 알고리즘을 PoW에서 PoS로 전환하는 업그레이드로, 한국 시간으로 9월 15일 오후 3시 42분경 완료됐다.
머지 후 첫번째로 블록을 생성한 Validator는 블록 보상으로 무려 45이더(약 1억원)을 챙겨갔으니 실로 그 의미는 어마어마하다고 볼 수 있다.
이더리움은 2020년 시작한 PoS기반의 비콘체인의 성공적인 머지로 PoS로의 전환에 역사적인 첫 발걸음을 내딛었다. 이더리움이 말하는 PoS는 정확하게 무엇이며, 오래전부터 PoS로의 전환을 강력하게 주장해온 이유가 무엇인지 알아보자.
블록체인에서 합의 알고리즘이 얼마나 중요한지 이 글을 읽는 독자들은 모두 알 것이지만, 우선 간략하게 합의 알고리즘이 무슨 역할을 하는지 짚고 넘어가보자.
블록체인은 분산시스템의 대표적인 한 종류이며, 여러대의 컴퓨터(노드)가 메세지를 통해 동일한 state를 맞추려고 한다. 이 때 하나의 중앙화된 노드가 없기 때문에 global clock이 없고 노드 각자의 clock을 가지고 있기에 같은 시간인 ‘동시’라는 개념이 없다. 이것을 비동시성 환경이라고 한다. 이러한 비동시성 환경에서는 각 노드가 보는 정보가 다를 수 있고, 블록체인 또한 비동시성 환경이기 때문에 모든 노드가 동일한 정보를 유지하게 하는 것은 쉽지 않다. 블록체인에서 모든 노드가 동일한 트랜잭션에 대한 처리 기록을 가지도록 하는 것이 합의 알고리즘의 역할이다.
현재 블록체인씬에서 쓰이는 합의 알고리즘은 대표적으로 PoW와 PoS가 있다. PoS가 처음 제안된 백서에서는 PoS를 아래와 같은 식으로 정의했다.
Bprev는 이전 블록(previous Block), A는 계정(address), t는 타임스탬프(timestamp), bal(A)는 address A가 현재 소유한 잔액, D는 난이도(Difficulty), M은 난이도의 최대값을 의미한다.
식에 따르면, 블록 B의 해시 값은 A가 소유한 balance에 영향을 받는다. 많은 지분의 소유자가 쉬운 난이도의 문제를 풀게 되고 블록을 생성할 확률은 validator가 가진 지분에 비례하게 된다.
이 PoS기반으로 수많은 합의 알고리즘이 만들어졌으며 특히 현재 이더리움(비콘체인)의 PoS기반 합의 알고리즘은 Gasper이다. Gasper는 Casper Friendly Finality Gadget(Casper-FFG)와 Lastest Message-Driven Greedy Heaviest Observed Sub-Tree(LMD-GHOST) 포크 선택 알고리즘의 조합인데, Casper-FFG는 Finality를 보장하는 툴이고 LMD-GHOST는 포크 선택을 관장하는 툴이기에, 두개의 조합으로 이루어진 Gasper는 이더리움의 Finality 및 포크 선택이 보장되게 하는 합의 알고리즘이다.
Gasper is the mechanism defining how validators get rewarded and punished, decide which blocks to accept and reject, and which fork of the blockchain to build on.
이더리움 공식 docs에서는 Gasper가 Validator가 보상 및 처벌을 받는 방법, 어떤 블록을 수락하고 거부할지에 대한 방법, 블록체인 포크 중 Canonical chain을 결정하는 방법을 정의하는 메커니즘이라고 말하고 있다.
Casper-FFG와 LMD-GHOST가 각각 어떤 프로세스를 통해 Finality와 포크선택을 보장하는 것일까?
Casper is not a fully-specified protocol and is designed to be a “gadget” that works on top of a provided blockchain protocol, agnostic to whether the provided chain were proof-of-work or proof-of-stake.
Casper Friendly Finality Gadget이라는 이름에서 알 수 있다시피, PoW든 PoS든 어떤 프로토콜 위에서도 동작할 수 있는 가젯이다.
Casper의 역할은 각 부모로부터 나온 여러 자식들 중 하나만 선택하는 것인데, 블록이 2/3이상의 투표를 받으면 해당 블록은 checkpoint 됐다고 표현한다. 체크포인트된 블록 위에 체크포인트된 블록이 하나 더 올라가면 finality가 보장이 된다. Casper는 모든 블록을 보지 않고 Checkpoint된 블록의 subtree만 검증하면 되는 효율성을 제공하기에 의의가 있다.
PoS의 경우, 올바른 블록뿐만 아니라 여러개의 블록에 투표를 진행하는 것이 가능하다. 그렇다면 2/3이상의 투표를 받은 블록을 믿을 수 있는 것일까? 이를 해결하기 위해 validator는 다음과 같은 2가지의 규칙을 지키도록 하였다. 규칙을 지키지 않으면 슬래싱을 통해 패널티를 준다.
GHOST는 체인 선택에 대한 알고리즘으로, 블록의 검증이 더 많이 된 체인을 신뢰할 것이라는 이야기이다. 체인이 여러 갈래로 포크되었을 때, 분기가 시작된 블록으로부터 가장 보팅을 많이 받은 블록을 선택해 나가면서 이를 Canonical chain으로 선택한다
Gasper는 2/3이상의 보팅을 받아야하는데, 만약 오프라인인 벨리데이터가 많으면 합의가 이루어지지 않는게 아닐까하는 의문이 든다. Gasper는 오프라인인 밸리데이터에 대해서도 스테이킹한 ETH를 차감하는 방식을 택한다. 체인의 의사결정 과정에 활발히 참여하지 않으면 금전적인 불이익을 주고, 그들이 가진 파이를 줄여서 투표권을 행사하는 밸리데이터의 파이를 상대적으로 늘리는 방식이다. 1/3이상이 오프라인으로 참여를 하지 않아도 결국 시간이 가면 블록 완결성을 다시 보장하게 된다.
그런데 잘 돌아가는 체인을 왜?
이더리움의 PoS 알고리즘인 Casper가 무엇인지는 알겠으나, 잘 돌아가고 있던 체인을 바꿀만큼의 이익이 있는지는 잘 모르겠다. 비탈릭이 PoS로의 전환을 강력 주장한 이유에 대해 알아보자.
첫번째로, 비탈릭이 이더리움의 PoS 전환을 통해 이룰 수 있다고 주장하는 것 중 하나는 쓸데없이 낭비되는 자원을 줄인다는 것이다.
비탈릭이 트위터에서 머지로 전세계 전기사용량의 0.2%를 절감하게 될 것이라고 하였다. 그것이 사실인지 데이터로 확인해보도록 하자.
다음은 이더리움의 전기소모량에 대한 그래프이다. PoS전환 이후가 PoW일 때와 비교해 현저하게 낮은 것을 확인할 수 있다.
그런데 이것만 봐서는 이더리움이 소모하고 있던 전기사용량이 어느정도 되는것인지 모르겠다.
다음은 여러 작업들의 년 전기 사용량을 비교해놓은 도표이다.
유튜브에 비하면 작고 소중한 양의 전기를 쓰고 있는 것이 보인다. 하지만…
백악관 조사에 따르면 이더리움의 전기 사용량은 미국 전체의 티비가 사용하는 전기보다 많다고 한다. 그리고 아르헨티나 전체 일년 전기 사용량의 절반정도를 소비하고 있다. 위 자료를 통해 확실히 채굴의 리소스 낭비 문제가 세계적으로 컸고, PoS전환을 통해 확실히 전력사용량을 줄일 수 있다는 것을 알 수 있다. (그리고 유튜브 프리미엄구독을 해지했다.)
두번째 이유는 이더리움의 PoS 전환이 블록체인 참여의 진입장벽을 낮췄다는 것이다. PoW를 위해 고성능의 하드웨어가 요구됐던 것과는 달리 이더리움은 32ETH, 단돈 54,000,000원(2022년 11월 11일 기준 시세)만 있으면 블록체인에 참여할 수 있다. 하지만 32ETH가 있다고 스펙을 맞춰 노드를 돌리기는 감당해야할 리스크가 크기 때문에 개인의 대다수가 채굴풀에 참여하는 방식을 택하고 있다.
세번째는 51% 공격이 PoW보다 더 힘들다는 것이다. 이더리움 총 발행량이 현재 122,373,866 이더이니, 한화로 204642025703674원이고 이것의 51%는 10조정도로 PoS인 이더리움을 공격하기 위해서 10조를 투자해야한다. (빈살만은 가능하다!)
마지막으로, 경제적인 관점에서 Validator는 자신의 돈을 스테이킹하였기 때문에 해당 체인을 안정화시키기 위해 노력할 것이라고 주장한다. 빠져나가는 돈을 락업하였으니 가치 상승 또한 기대가 된다.
그러나, 위 이유만으로는 PoS가 PoW나 여타 다른 합의 알고리즘보다 안전하다고 할 수는 없을 것 같다.
그래서, PoS는 안전한가?
PoS의 대표적인 문제로 대두되는 것은 빈익빈부익부 문제, Nothing at Stake 문제와 초기 코인 분배 문제이다. 빈익빈부익부 문제는 PoS 방식에서 블록 생성 지분이 소유 지분을 기반으로 하기 때문에 코인을 많이 보유한 참여자가 블록 생성에 유리해 블록 보상을 받게되고 지분이 더 많아진 참여자는 더욱 블록 생성이 용이해져 중앙화될 수 있다는 문제이며, Nothing at Stake는 유효한 블록체인이 두 개 이상 존재하는 fork 상황에서 참여자들이 보상받을 확률을 높이기 위해, 하나가 아닌 블록에 대해 투표를 해 무엇이 Canonical chain인지 알 수 없게 되는 문제를 말한다. 또한 초기 코인 분배 문제는 PoS 방식에서 블록 생성 지분이 소유 지분을 기반으로 하기 때문에 초기에 코인을 많이 보유한 참여자가 블록 생성에 유리하다는 점에 의한 공정성에 대한 문제이다.
여기서 우리는 보통의 블록체인과 이더리움의 상황이 다르다는 문제에 주목해야한다. 이더리움은 디파이 생태계를 가진 가장 거대한 블록체인이기에 초기 코인 분배 문제에서 상대적으로 자유로우며, Casper의 슬래싱을 통해 Nothing at Stake 문제를 해결했고, 이더 스테이킹을 통해 받는 이더는 현재 연 5%로 빈익빈부익부 문제를 논하기에는 적은 비율이라 할 수 있겠다.
결국 PoS가 PoW보다 낫다고 말할 수는 없지만 이더리움의 조건에서는 PoS가 더 좋은 옵션이었을 것이라 생각된다. 특히 이 글에서는 다루지 않았지만, PoS의 보안상 허점 또한 아직 많이 존재하기 때문에, 이더리움은 지속적인 소프트웨어 업그레이드로 그 문제를 해결해 나갈 수 있을 것이라 기대되는 바이다.
Reference
https://arxiv.org/pdf/2003.03052.pdf
https://ethereum.org/en/developers/docs/consensus-mechanisms/
https://arxiv.org/pdf/1710.09437.pdf
https://bitfury.com/content/downloads/pos-vs-pow-1.0.2.pdf
https://ettrends.etri.re.kr/ettrends/169/0905169005/0905169005.html#r007
https://ethereum.org/en/energy-consumption/
https://carbon-ratings.com
https://digiconomist.net/ethereum-energy-consumption
https://www.whitehouse.gov/wp-content/uploads/2022/09/09-2022-Crypto-Assets-and-Climate-Report.pdf
Epoch Boundary Blocks(EBB): epoch의 경계에 있는 첫 블록, 한 epoch은 블록 64개 단위이다.
Epoch Boundary Pair(EBP): 각 epoch의 첫 블록과 해당 epoch, 예를 들어 epoch j의 경계 블록이 B라고 하면, EBP는 (B, j)를 의미한다. epoch 1의 EBP는 (Block64, 1)