하드포크가 실패하는 경우도 있을까요?
안녕하세요?
이더리움 같은 경우에는 올해부터 내년까지 수 많은 하드포크가 예정되어 있습니다.
하드포크가 성공하면 좋겠지만 실패할수도 있을것 같은데 그런 사례가 있을까요?
답변 미리 감사드립니다.
일반적으로 하드포크를 한다는 것은 체인의 '분기(나뉘어서 갈라짐)'를 의미하는데요, 하드포크의 경우 그러한 분기점이 '새로운 블록'이 되고 해당 블록을 기준으로 새로운 블록을 생성하며 포크가 이루어집니다.
이처럼 하드포크 시점을 미리 예고하고 변경된 내용으로 새로운 블록을 생성할 수 있도록 클라이언트 소프트웨어를 업데이트 함으로써 변경된 내용이 포함된 새로운 블록이 만들어지게 되고 두 체인으로 분리가 되는 것입니다.
이더리움의 하드포크를 예로 들어보면 2018년에 콘스탄티노플 하드포크를 메인넷에서 단행하기 전에 테스트넷에서 먼저 하드포크를 진행한 적이 있는데 이때 마이닝 노드들이 클라이언트 소프트웨어를 업그레이드하지 않음으로써 예정된 블록에서 합의에 도달하지 못하여 블록의 생성이 지연되었고 결국 테스트넷 상에서의 하드포크가 실패로 돌아가 한 차례 하드포크가 미뤄졌던 사례가 있습니다.
또한 그 이후로 2019년 1월에 또다시 보안 취약점이 발견되어 하드포크가 실패로 돌아가 또 한 차례 더 연기된 바가 있고 올해 2월에야 하드포크가 성공적으로 이루어진 바가 있습니다.
따라서 이더리움 콘스탄티노플 하드포크의 경우는 테스트넷에서 하드포크를 성공하지 못한 것, 보안 취약점의 발견으로 인해 예정되어 있었던 하드포크가 제대로 이루어지지 못하고 연기된 것을 '실패'라고 부른다고 볼 수 있습니다.
다만 이러한 '실패'라는 평가는 여러 가지 평가 중 하나의 평가이거나 견해일 뿐 실제로 테스트넷 단계에서 하드포크의 테스트를 하는 이유가 메인넷에서의 하드포크 전에 문제점이 있는지 점검하기 위한 것이고, 하드포크 전에 보안 취약점을 발견하게 되어 하드포크가 연기된 문제 역시 하드포크 전에 당연히 발견하고 수정해야 하는 것으로 저 개인적으로는 실패했다고 평가하기 보다는 해야 할 일을 했다고 보는 것이 맞다고 생각합니다.
끝으로 개발팀이 제대로 개발을 진행하는 블록체인 프로젝트의 경우 앞서 살펴본 이더리움 블록체인의 예에서와 같이 하드포크 전에 테스트넷을 통해 미리 테스트하여 메인넷의 하드포크를 실행하게 되므로 실패할 확률이 높지 않다고 보시면 좋을 듯합니다.
답변이 도움이 되길 바랍니다.