이더리움 네트워크는 왜 멈추지 않을까?
다양한 블록체인을 운영하다 보면 한달에 1~2번 꼴로 특정 블록체인 네트워크가 뻗었다는 장애 알러트를 받습니다.
사실 솔라나, 수이 정도의 많은 사람들이 자주 사용하는 네트워크가 아니라면 일반 대중들에게는 체인이 멈췄다는 사실조차 잘 알려지지 않죠.
지난 2022년 9월 이더리움이 PoS로 전환한 The merge 업그레이드 이후 이더리움은 단 한차례도 멈춘적 없이 돌아가고 있습니다.
다양한 이유가 있겠지만, 이를 가능하게끔 하는 가장 큰 이유는 바로 "클라이언트 다변화" 입니다.
만약 밸리데이터들이 실행하는 노드 클라이언트 자체에 문제가 있다면 어떻게 될까요?
클라이언트를 개발한 개발자중 한명이 해커였다거나, 혹은 실수로 버그가 있는 코드를 반영했다면 어떻게 될까요?
아무리 노드가 탈중앙화 되어있다 하더라도 모두가 똑같은 클라이언트를 사용한다면 네트워크는 한번에 털릴 수 있습니다. 클라이언트에 버그가 있다면 체인이 멈춰버릴 것이고요.
실제로 얼마전 발생한 Sui 체인의 장애 이슈도 클라이언트의 작은 버그 때문이었습니다. 만약 이 버그가 단순히 네트워크 중단을 발생시키는 작은 버그가 아니라 해킹이 가능한 치명적인 결함이었다면 사건은 훨씬 심각했을 것입니다.
대부분의 경우 밸리데이터(노드 운영자) 들은 재단에서 제공하는 클라이언트 프로그램을 다운받고, 이를 실행해 네트워크에 참여합니다. 클라이언트를 개발하는 주체도 재단 하나이고, 모든 노드 운영자들은 별 의심 없이 이를 다운로드 받아 똑같은 클라이언트를 실행합니다.
이와는 다르게 이더리움은 재단에서 클라이언트를 개발하지 않습니다. 재단에서 표준을 정하고 스팩을 정의하면 다양한 기업, 오픈소스 생태계에서 각자 클라이언트를 개발합니다.
현 시점 이더리움 클라이언트의 사용률은 다음과 같습니다.
자세히 보기- 합의를 담당하는 Consensus Client의 경우, Prysm과 Lighthouse, Teku가 약 30%씩 차지하고 있고 이 밖에도 몇몇 클라이언트들이 노드 운영자들에 의해 사용되고 있습니다.
- 실행을 담당하는 Execution Client도 Geth, Nethermind, Besu 등 다양한 클라이언트들이 골고루 사용되고 있습니다.
이중 하나의 클라이언트에 치명적인 버그가 있거나 해킹에 취약한 문제가 있더라도, 다변화된 클라이언트로 인해 네트워크 전체가 멈추거나 공격받는 일은 발생하지 않습니다.
이더리움 밸리데이터의 30%를 차지하고 있는 Lido pool의 오퍼레이터들은 5~6개의 클라이언트를 10~25% 비율로 사용하는 더더욱 분산된 클라이언트 사용률을 보여줍니다.
Lido 밸리데이터 분기별 통계(2024 3Q)다양한 오픈소스 클라이언트 개발자들과 Lido와 같은 대형 풀들의 노력으로 이더리움은 단일 클라이언트 결함에 영향을 받지 않는 안전한 네트워크가 되었습니다.
원문트윗