앞으로 몇시간 안에 시가총액 기준 세계에서 두 번째로 큰 블록체인 이더리움(Ethereum)에서 하드포크를 통한 전체 시스템 업그레이드가 연달아 일어난다. 횟수로 따지면 여섯 번째와 일곱 번째 업그레이드에 해당하는 이번 업그레이드를 통해 이더리움 코드에 어떤 변화가 일어날지 살펴보자.
우선 각 업그레이드의 이름은 이미 알려진 대로 콘스탄티노플(Constantinople)과 상트페테르부르크(St. Petersburg, 영어 발음으로 피터스버그). 각각 도시의 이름을 딴 두 업그레이드는 모두 하드포크를 통해 진행된다. 즉 이전 버전에서 구동되지 않는 새로운 원칙과 코드를 동시에 이더리움 클라이언트 소프트웨어에 설치하는 것이다. 두 업그레이드(하드포크)는 이더리움의 728만 번째 블록이 채굴되는 시점에 잇달아 진행될 예정이다.
업그레이드를 실행하면 먼저 콘스탄티노플 하드포크가 일어나고 곧바로 상트페테르부르크 업그레이드가 이어진다. 앞서 1월 중에 단행될 예정이던 콘스탄티노플의 이더리움 개선제안서(EIP) 코드 가운데 EIP 1283에서 스마트계약 보안 부분에 결정적인 오류가 발견됐다. 이더리움 개발자들이 곧바로 코드를 수정하기 시작했지만, 오류를 완벽히 고칠 때까지 하드포크를 마냥 미룰 수는 없으므로, 해당 EIP는 보류한 채 나머지만 가지고 콘스탄티노플을 진행하기로 했다. 대신에 곧이어 상트페테르부르크 하드포크를 단행해 콘스탄티노플의 EIP 1283만 제거하기로 한 것이다.
EIP 1283을 제외하면 콘스탄티노플을 통해 새로 가동될 이더리움 개선제안서 코드는 다섯 개가 있는데, 독립적인 이더리움 개발자 레인 레티그는 다섯 개 가운데 네 개는 일반 이용자들에게 별다른 영향을 미치지 않을 것으로 내다봤다. 레티그는 앞서 지난해 9월 코인데스크와의 인터뷰에서 콘스탄티노플을 가리켜 “시스템 유지와 최적화에 초점을 맞춘 업그레이드”라고 평가했다. 그러면서 새로운 코드에 영향을 받을 이들은 이더리움 트랜잭션을 검증하고 기록해 블록을 생성해 보상을 두고 경쟁할 채굴자들과 채굴 풀 운영진 정도가 될 거라고 말했다.
콘스탄티노플과 상트페테르부르크 업그레이드가 완료되고 나면 이더리움 채굴 보상은 현재 블록 하나에 이더(ETH) 3개에서 2개로 줄어든다. (앞서 비잔티움(Byzantium) 하드포크를 통해 채굴 보상은 5개에서 3개로 줄어든 바 있다) 레티그는 “채굴자들은 채굴 보상이 줄어드는 데 직접적인 영향을 받을 수밖에 없다”고 말했다.
이더리움 블록체인 네트워크 관련 데이터 사이트 이더허브(ETHHub)를 만든 에릭 코너는 콘스탄티노플과 상트페테르부르크를 이더리움의 다음번 주요 업그레이드로 예정된 세레니티(Serenity)에 맞춰 현재 블록체인의 채굴자를 새로운 유형의 검증자로 대체하는 과정에 필요한 업그레이드라고 설명했다. 지난해 9월 코인데스크와 인터뷰에서 코너가 한 말을 보자.
“2018년 말부터 2019년 초까지 이더 공급량이 원래 이더리움 커뮤니티가 예상했던 것을 초과했다. 현재 인플레이션이 7.5% 정도인데, 채굴 보상을 3개에서 2개로 줄이면 인플레이션을 4.5% 수준으로 낮출 수 있고 일단 지분증명 방식으로 합의 알고리듬을 바꾸는 캐스퍼(Casper)가 완료될 때까지는 이 정도 임시방편이 요긴하게 쓰일 것이다.”
이미지=Shutterstock
한국시간 3월1일로 예정된 하드포크의 주요 내용을 정리하면 다음과 같다.
1. 여러 가지 업그레이드 동시에 진행
앞서 설명했듯 콘스탄티노플에 포함된 이더리움 개선제안서는 여러 가지가 있다. 캐스퍼 업그레이드를 완료해 지분증명 방식의 합의 알고리듬을 도입하는 데 밑거름이 될 내용이 담겼는데, 여기에는 이더리움 가상머신(EVM)의 비트와이즈 작동 방식을 추가하는 EIP 145, 스키니 크리에이트투(Skinny CREATE2) 기능을 담은 EIP 1014, EXTCODEHASH 운영코드를 담은 EIP 1052 등이 있다.
이더리움 기반 부동산 장터 임브렉스(Imbrex)의 CEO 스테판 킹은 EIP 145에 관해 이렇게 말했다.
“비트와이즈 작동 방식을 추가하면 이더리움에서 몇몇 기능을 수행하는 데 드는 비용을 약간 절감할 수 있다. 댑(dapps) 개발자들이 이더리움에서 앱을 개발하는 데 드는 비용을 좀 더 효율적으로 집행할 수 있게 되는 일이므로 바람직하다.”
2. 하드포크를 실시간으로 보고 싶다면?
블록체인 관련 검색 사이트 앰버데이터(Amberdata)가 예상한 콘스탄티노플과 상트페테르부르크 하드포크가 일어나는 시각은 한국시각으로 3월 1일 새벽 4시 15분이다. 물론 채굴 속도가 블록마다, 매시간 달라지기 때문에 정확한 시간을 알고 싶다면 이더리움 이용자와 채굴자, 개발자들은 728만 번째까지 블록이 쌓이는 것을 계속 예의주시해야 할 것이다. 하드포크가 시작되면 이용자들은 개발자들이 이용하는 포크 모니터(fork monitor)라는 툴을 이용해 이더리움 블록체인 관련 데이터가 시계열로 시각화해 정리되는 그래프를 확인할 수 있다.
해시레이트나 이더 가격, 노드 숫자와 같은 이더리움과 관련한 다른 핵심 지표들의 변화도 실시간으로 확인할 수 있다.
(아직 콘스탄티노플을 진행하기 위해 따로 이더리움 개발자 회의가 예정되지는 않았다. 개발자들은 업그레이드 이후 금요일(한국시각 토요일 새벽)에 열릴 정례 개발자 회의에서 업그레이드가 예정대로 잘 진행됐는지를 비롯한 제반 사안을 논의할 예정이다)
3. 여러 차례 연기된 이유
앞서 콘스탄티노플은 여러 가지 이유로 수차례 연기된 바 있다. 예정된 시각을 앞두고 업그레이드를 또 미룰 만한 오류가 발견되지 않고 있다고 해도 여전히 완전히 안심할 수는 없는 이유도 과거에 마지막에 업그레이드가 연기된 적이 있기 때문이다. 또한, 하드포크가 진행된 뒤에도 갈라져 나온 새 블록체인으로 옮겨갈지, 아니면 기존 블록체인에 남을지 결정하는 것은 결국 커뮤니티의 몫이다.
이더리움 개발자들은 지난해 7월부터 콘스탄티노플을 실행하는 방안에 관해 본격적인 논의와 시험을 시작했는데, 하드포크를 가로막는 장애물을 여러 차례 만났다. 제일 처음에는 지난해 10월 콘스탄티노플을 단행할 계획이었다. 그러나 이더리움 개발자들이 따로 만들어둔 테스트넷 롭스텐(Ropsten)에서 콘스탄티노플을 구동한 결과 복잡한 코드 탓에 제대로 운영되지 않았고, 올해 1월로 한 차례 업그레이드를 연기했다.
이어 개발자들은 지난해 12월 708만 번째 블록이 채굴될 때 콘스탄티노플을 진행하겠다고 발표한다. 그러나 업그레이드를 코앞에 두고 결정적인 보안상 오류가 발견돼 블록을 20만 개 더 뒤로 미룬 728만 번째로 하드포크 시기를 미뤘다.
4. 이더리움 커뮤니티는 하드포크를 받아들일까?
적잖은 진통 끝에 단행하는 업그레이드인 만큼 이더리움 커뮤니티가 하드포크로 생겨날 새로운 이더리움 네트워크를 얼마나 잘 받아들이고 채택할지도 관심사다. 블록체인 지갑 툴인 마이크립토(MyCrypto)의 CEO 테일러 모나한은 코인데스크에 이렇게 말했다.
“핵심 개발자들이 온통 콘스탄티노플에만 매달려 있느라 전체 이더리움 네트워크와 커뮤니티, 블록체인 생태계가 사실상 방치되고 혁신이 멈춘 측면도 없지 않다. 업그레이드가 단행되고 나면 앞으로 이더리움 생태계를 어떻게 꾸려나가야 할지 서둘러 논의를 재개해야 한다.”
레인 레티그의 생각도 다르지 않다. 레티그는 콘스탄티노플 하드포크가 질질 끌어도 너무 끌었다며, 개발자들이 신경 써야 할 일이 하드포크 외에도 정말 많다고 강조했다.
“업그레이드 전에 확인하고 점검해야 할 사항을 빠짐없이 다 한 거로 보인다. 테스트넷에서도 아무런 문제 없이 돌아갔으니 이제 예정대로 업그레이드를 하면 된다. 발목 잡는 일, 걱정거리가 드디어 사라진 상황이니 이제 다음번 목표를 세우고 이를 향해 나아가야 할 때다.”