이더리움 콘스탄티노플 하드포크에 대하여
콘스탄티노플이란?
이더리움 코어 개발자 그룹은 원래 2018년 11월에 예정되었던 콘스탄티노플 하드포크를 지연하기로 결정한 지 한달 후인, 지난 12월 6일 미팅에서 하드포크를 7,080,000번째 블럭에서 진행하도록 결정을 하였습니다. 대략 한국 시간으로 2019년 1월 15~17일 즈음이 될 것 같습니다.
지난번 게시물을 통해 비트코인캐시 하드포크에 대해서 알아 봤듯이, 이번 시간에는 이더리움 콘스탄티노플 하드포크에 대해서 살펴보도록 하겠습니다. 이는 갑작스럽게 논의된 하드포크가 아니라 이더리움 릴리즈 과정의 큰 틀 속의 한 업데이트 단계에 해당됩니다. 이더리움 릴리즈 4단계는 다음과 같습니다.
이더리움은 완벽한 탈중앙 오픈 플랫폼입니다. 어느 한 기업이나 집단이 소프트웨어를 개발하는게 아니라 이더리움 코어 개발자 그룹에서 네트워크 프로토콜을 제안, 결정하고 배포를 하면 몇몇 이더리움 개발팀들이 각자의 코드를 만들어 릴리즈하는 구조입니다. 한 번 프로토콜이 네트워크에 적용되어 블록들이 생성되기 시작하면 프로토콜 업데이트가 쉽지 않습니다. 그래서 이더리움은 처음부터 최종 안정기에 도달할 때까지 4단계로 나누어 릴리즈를 계획 했습니다. 현재는 POW(작업 증명방식)에서 POS(지분 증명방식)로 합의 알고리즘을 변경하는 최종 단계인 세레니티의 전 단계인 메트로폴리스 단계입니다. 세레니티를 위한 중간 과정이라 보시면 됩니다. 또한 메트로폴리스는 두 번의 하드포크 업데이트가 계획 되어있는데, 첫 번째가 지난 2017년 10월에 있었던 비잔티움(Byzantium) 하드포크였고 두 번째가 이번 콘스탄티노플 하드포크입니다.
그러면 이번 콘스탄티노플 하드포크에는 어떤 프로토콜 업데이트가 포함되었는지, 그리고 이것들이 왜 필요한지 알아봅시다.
무엇이 업데이트되는가?
비트코인에 BIP(Bitcoin Improvement Proposals)가 있듯이 이더리움에도 EIP(Ethereum Improvement Proposals)가 있습니다. 누구든지 이더리움 개발자 그룹에 가입을 해서 이더리움 업그레이드 내용을 제안할 수 있습니다. 개발자 그룹의 맴버들로부터 채택이 되면 하드포크 업그레이드에 포함이 될 것입니다. 이번 콘스탄티노플에는 5개의 EIP가 적용됩니다.
EIP 145(https://eips.ethereum.org/EIPS/eip-145)
EVM(이더리움 버추얼 머신; 컨트랙트 실행기)에 비트 쉬프트 연산자를 추가하는 제안입니다. 비트 쉬프트 연산자가 없을 때 기존 연산자로 35 gas가 소모되는 연산을 이 연산자를 통해 3 gas로 실행할 수 있습니다.
EIP 1052(https://eips.ethereum.org/EIPS/eip-1052)
한 컨트랙트에서 다른 컨트랙트의 코드를 검증할 때 타 컨트랙트의 모든 소스를 가져와야만 했습니다. 이는 많은 가스비를 부담해야 했습니다. 이 제안에서는 추가되는 EVM 연산자에 의해 컨트랙트 소스의 해시 값만 얻어올 수 있도록 하여 가스비를 드라마틱하게 줄일 수 있습니다.
EIP 1014(https://eips.ethereum.org/EIPS/eip-1014)
비탈릭 부테린에 의해 제안된 EVM 연산자입니다. 컨트랙트를 생성하는 연산자인데, 기존의 연산자와는 조금 다르게 이더리움 체인상에 없는 주소로 컨트랙트를 만들 수 있도록 했습니다. 이는 비트코인의 라이트닝 네트워크 같은 오프 체인(off chain) 기술에서 사용할 수 있도록 한 기능입니다. 일부 보도 자료에서는 이 기능에 대해 이더리움 네트워크에 오프체인 상태 채널(state channel)이 추가된 것이라고 표현하기도 했지만 사실 상태 채널을 추가한 것은 아니고 상태 채널의 한 기반을 마련한 것으로 보는게 정확합니다.
EIP 1283(https://eips.ethereum.org/EIPS/eip-1283)
SSTORE라는 EVM 연산자의 gas 소모 계산 방식을 바꿔 gas 비용을 줄입니다.
EIP 1234(https://eips.ethereum.org/EIPS/eip-1234)
현재 적용되어 있는 난이도 폭탄(difficulty bomb) 알고리즘을 1년 정도 지연시킵니다. 이 업데이트를 이해하려면 배경 지식이 필요합니다. 이더리움은 스마트 컨트랙트의 빠른 실행을 위해 현재의 POW 합의 알고리즘을 캐스퍼라는 POS 방식의 합의 알고리즘으로 전환할 계획입니다. 하지만 어느 순간부터 갑자기 POS로 전환하게 되면 기존 마이너들이 이에 동의하지 않고 계속 마이닝을 유지하려고 할 것이고, 이로 인해 체인 분할을 초래하게 될 것입니다. 이를 막기 위해 이더리움 진영은 합의 알고리즘을 서서히 이동시킬 계획을 구상했습니다. 즉, 어느 기간 동안은 네트워크 상에서 POW, POS를 모두 허용하되(하이브리드 방식) POW의 난이도를 점차 높혀 보상 비율을 줄이는 방식입니다. 그렇게 되면 마이너들은 점차적으로 POW 채굴을 포기하게 되고 최종적으로 네트워는 POS로 전환될 것입니다. POS 알고리즘은 현재 구현중이고 아직 네트워크에 적용되어 있지는 않습니다. 하지만 난이도를 점차적으로 높이는 난이도 폭탄은 프론티어때부터 이미 구현되어 있고, 적용되어 있습니다. 이 난이도 폭탄 알고리즘은 현재 블록 번호에 의해 조절되는데, 블록 번호가 커질 수록 난이도가 기하급수적으로 커지게 되어 있습니다. 애초에 POS로의 전환을 예상해서 넣은 알고리즘이지만 POS 적용이 지연됨에 따라 난이도 상승율을 낮출 필요성이 생겼습니다. 이를 위해 지난 비잔티움 하드포크때 난이도 폭탄 알고리즘을 1.4년 지연시킨 바 있는데, 이번 콘스탄티노플 하드포크에서도 1년 더 지연하게 되었습니다.
이와 함께 블록 보상을 3ETH에서 2ETH로 줄였는데, 그 이유는 난이도 폭탄을 지연시킴에 따라 채굴자들에게 생긴 이득을 상쇄시키기 위해서 입니다.
이번 하드포크의 성격
업데이트 내용을 보시면 아시겠지만, 큰 기능 업데이트라기보다는 자잘한 EVM 효율성 개선과 캐스퍼 개발 지연으로 인한 난이도 폭탄 지연이 주 내용입니다. 크립토 시장에서 가장 주목하는 부분은 채굴 보상이 2/3로 줄어든다는 부분인데, 작년 비잔티움 하드포크 때를 고려해서 판단하시면 도움이 될 것입니다. 보다 중요한 부분은 이더리움의 네트워크 업데이트는 생각보다 느리게 진행되고 있으며, 테스트넷에서의 합의 불일치 문제도 주목되는 부분입니다. 그리고 마이너들이 적극적으로 업데이트를 진행할 지의 여부도 중요한 부분입니다. 현재로서는 체인 분리를 선언한 세력이 없지만(이더리움 클래식 비젼이라는 하드포크 선언을 한 단체가 있는데, 이는 콘스탄티노플 하드포크와는 관련이 없습니다. 현재 조사중입니다.), 업데이트 소홀로 인해 체인 분리될 가능성이 전혀 없다고는 볼 수 없습니다. 물론 의도치 않은 체인 분리는 곧 소멸로 이어질 것이지만 네트워크의 안정성 면에서 마이너들의 적극적인 동조는 중요한 요소임에는 틀림없습니다.
이더리움이 범용 스마트 컨트랙트 플랫폼으로서 지위를 굳히기 위해서 구현해야 할 기술들이 많이 산재되어 있습니다. 확장성을 위한 오프체인 기술, 플라즈마, 샤딩, 캐스퍼 등 많은 과제들이 예정되어 있는데 이더리움의 성공은 이들 프로젝트들의 성공에 달려있다해도 과언이 아닙니다. 일부 이더리움 지지자들은 이오스나 트론 같은 DPOS 블록체인보다 업데이트가 느리게 진행되는 것에 불만을 가질 수 있습니다. 하지만 이는 철저히 탈중앙 방식으로 운영되는 이더리움 개발 생태계의 특성 때문이지, 이더리움 개발진의 문제로 보긴 어렵습니다. 이오스나 트론이 하드포크 업그레이드가 필요할 때 별 이슈없이 진행할 수 있다는건, 그들이 아직까지 탈중앙 개발 생태계를 가지고 있지 않다는 점을 반증하는 것은 아닐까요? 느리게 가는 것, 그것이 탈중앙 블록체인 생태계의 숙명이고, 이더리움은 비트코인과 함께 탈중앙 가치를 실현하고 있는 가장 큰 규모의 블록체인 프로젝트임을 다시한번 확인하는 계기가 되었으면 합니다.