출처=Emily Morter/Unsplash
출처=Emily Morter/Unsplash

가상자산, 블록체인은 누구에게나 어렵습니다. 그러다 보니 사실과 다르거나 사실이 아니지만, 사실인 마냥 알려진 사례가 많습니다. '틀린 그림 찾기'는 <코인데스크 코리아>가 직접 팩트 체크를 해서 사실만 전달하고자 하는 약속입니다. 팩트 체크가 필요한 모든 것을 코인데스크 코리아에 물어봐 주시기 바랍니다. - 편집자 주 

이더리움2.0이 시작된 지 2년이 넘었다. 이더리움2.0은 기존 작업증명(PoW) 방식으로 운영하던 이더리움을 지분증명(PoS) 방식으로 바꾸기 위한 과정이다.

그런데 25일 이더리움2.0에서 블록이 재배치(reorg)되는 사건이 발생했다. '블록 재배치'란 블록 생성 과정에서 블록 배치가 바뀌고 블록이 무효가 되는 현상을 뜻한다.

출처=비콘체인 웹사이트 캡처
출처=비콘체인 웹사이트 캡처

비콘스캔 데이터를 보면, 이더리움2.0 비콘체인의 388만7075~388만7081번째 블록이 ‘forked’로 기록돼 있다. 비콘체인의 388만7075(이하 75)부터 388만7081(이하 81) 사이에 있는 7개의 블록이 무효가 됐다는 의미다.

그렇다면 7개의 블록이 어떻게 무효가 된 걸까?

지분증명 방식을 채택한 비콘체인에서는 네트워크의 각 노드들은 블록을 검증한다.

다만 이때 포크가 발생한다면 검증인들은 알고리듬에 따라 앞서 생성된 두 블록 중 가중치가 높게 책정된 블록을 바라보고 블록을 검증해 생성한다.

예를 들어, A라는 노드가 있고 ㄱ블록과 ㄴ블록이 거의 동시에 생성됐고 포크가 발생했다고 가정해보자. A 노드는 다음 위치에 블록을 검증해 생성하려고 한다. 그러면 ㄱ블록과 ㄴ블록 중 하나를 골라서 붙어야 하는데 둘 중 가중치가 높은 블록에 붙어서 네트워크를 이어간다.

바르나베 모노 이더리움 재단 리서치 담당자는 이번 재배치를 그림을 통해 설명했다.

동그라미는 가중치, 네모는 블록이다. 그림의 시점은 83번 블록이 형성될 때다. 출처=바르나베 모노 서브스택 웹사이트 캡처
동그라미는 가중치, 네모는 블록이다. 그림의 시점은 83번 블록이 형성될 때다. 출처=바르나베 모노 서브스택 웹사이트 캡처

73번 블록이 생성된 후 74번 블록과 75번 블록이 거의 비슷한 시기에 나타났다. 간단히 말하면, 포크(fork)가 발생한 것. 

김형기 DSRV 소프트웨어 엔지니어는 "74번 블록이 생성됐지만 75번 블록을 생성하는 검증인에게 전달이 늦었고, 이에 따라 포크가 발생한 것"이라고 설명했다.

이때까지 이 두 블록의 가중치는 비슷했다. 하지만 여기서 재배치가 나타나게 된 주요한 원인인 제안자 부스트와 관련한 문제가 발생했다.

이더리움 프로토콜 개발자인 테렌스 차오는 “제안자 부스트란 LMD 고스트 공격을 막기 위한 기능으로 제시간에 만든 블록에 추가적인 가중치를 부여한다”고 설명했다.

LMD 고스트 공격이란 특정 공격자가 네트워크를 지연시키는 것이다. 이를 종합하면, 제시간에 형성된 블록에 제안자 부스트 기능을 활용해 가중치를 주고 가중치가 높은 블록 뒤로 다른 블록들이 생성된다는 의미다.

하지만 주목할 점은 비콘체인의 모든 노드에서 제안자 부스트가 활성화된 게 아니었다는 것.

76~81번에 생성된 블록의 제안자들은 제안자 부스트가 활성화된 상태에서 75번 블록에 붙어 블록을 생성했다.

그동안 제안자 부스트가 활성화되지 않은 비콘체인 네트워크의 제안자들은 투표를 통해 74번 블록에 가중치를 더했고 제안자 부스트가 활성화되지 않은 82번 블록의 제안자는 74번 블록이 가중치가 높다고 판단, 74번 블록 뒤에 블록을 생성했다.

이에 따라 75~81번 블록이 재배치되면서 무효가 된 것이다.

결과적으로 76~81번 블록은 업그레이드가 적용돼 생성이 됐고, 업그레이드가 적용되지 않은 82번 블록의 제안자가 74번 블록을 선택함으로써 블록 재배치가 이뤄졌다.

이더리움 개발자인 프레스톤 반 룬은 이와 관련해 “이번 재구성은 포크 선택의 결함이 있는 게 아니라 업데이트된 클라이언트(노드)의 소프트웨어와 업데이트되지 않은 클라이언트의 소프트웨어 간 차이 때문에 발생한 것”이라고 설명했다.

그렇다면 이번에 발생한 비콘체인 블록 재배치가 31일 기준 현재 진행되고 있는 이더리움2.0에 큰 영향을 미치는지에 대해 관심이 쏠린다.

이에 전문가들은 큰 영향을 미치지는 않을 것이라고 진단했다.

김형기 DSRV 소프트웨어 엔지니어는 “이더리움이 PoW에서 PoS로 전환하는 건 PoW가 PoS보다 안정적이지 않아서 전환하는 게 아니다. 재배치가 있다고 방향을 바꾸지는 않을 것”이라며 “클라이언트들이 업그레이드를 하는 등 문제를 인지하고 해결하고 있기 때문에 이더리움2.0 계획에 큰 영향을 미치지는 않을 것으로 보인다”고 말했다.

바르나베 모노 리서치 담당자는 “이번 문제는 검증인이 동일한 구성으로 운영됐다면 발생하지 않았을 것”이라고 말했다.

이어 “특히 이러한 재배치는 더 머지 이후였다면 발생하지 않았을 것이다. 더 머지에서 업데이트하지 않으면 컨센서스에서 완전히 추방되기 때문”이라며 더머지 업데이트 이후에는 이러한 문제가 생기지 않을 것이라고 설명했다.

기존 이더리움 메인넷과 비콘체인을 병합하는 업데이트인 더머지는 올해 하반기 진행할 예정이다.

제보, 보도자료는 contact@coindeskkorea.com
저작권자 © 코인데스크코리아 무단전재 및 재배포 금지