이더리움 프리즘 클라이언트에서 메인넷 장애 발생: 리소스 고갈로 인해 대규모 블록 및 증인 누락 발생.
오데일리 플래닛 데일리에 따르면, 프리즘 팀은 12월 4일 이더리움 메인넷 후사카 세션 동안 거의 모든 프리즘 비콘 노드가 특정 증명을 처리하는 과정에서 리소스가 고갈되어 검증자 요청에 제때 응답할 수 없었고, 이로 인해 수많은 블록과 증인이 누락되었다고 명시한 메인넷 사고 요약 보고서를 발표했습니다.
이번 사건은 411439번째 에포크부터 411480번째 에포크까지, 총 42개의 에포크에 영향을 미쳤습니다. 1344개의 블록 슬롯 중 248개가 누락되었으며, 이는 약 18.5%의 누락률에 해당합니다. 네트워크 참여율은 한때 75%까지 떨어졌고, 검증자들은 증인 보상으로 약 382 ETH를 손실했습니다. 근본적인 원인은 Prysm이 메인넷과 동기화되지 않았을 가능성이 있는 노드들로부터 증명을 수신했기 때문입니다. 이러한 증명은 이전 에포크의 블록 루트를 참조하고 있었습니다. Prysm은 증명의 유효성을 검증하기 위해 이전 에포크의 상태를 반복적으로 재생하고 비용이 많이 드는 에포크 전환을 수행했으며, 이로 인해 노드들이 높은 동시 접속 상태에서 리소스가 고갈되었습니다. 관련 결함은 한 달 전에 테스트넷에 배포된 Prysm PR 15965에서 비롯되었지만, 동일한 시나리오를 유발하지는 않았습니다.
공식적인 임시 해결책은 버전 7.0.0에서 `--disable-last-epoch-target` 매개변수를 활성화하는 것이었습니다. 이후 버전 7.0.1과 7.1.0에는 과거 상태의 반복적인 재생을 방지하고 증명을 검증하기 위해 최신 상태를 사용하는 장기적인 수정 사항이 포함되었습니다. Prysm은 12월 4일 4시 45분(UTC) 이후 문제가 점차 해결되었으며, 411480번째 에포크까지 네트워크 참여율이 95% 이상으로 회복되었다고 밝혔습니다.
Prysm 팀은 이번 사건을 통해 클라이언트 다양성의 중요성을 강조했습니다. 단일 클라이언트가 전체의 3분의 1 이상을 차지할 경우 일시적인 연결 종료 불능 상태가 발생할 수 있으며, 3분의 2를 초과할 경우 연결 종료 체인이 잘못될 위험이 있다고 지적했습니다. 또한, 기능 전환 관련 불명확한 소통과 대규모 비동기 노드를 시뮬레이션하지 못한 테스트 환경의 문제점을 되짚어보고 향후 테스트 전략 및 구성 관리를 개선할 것이라고 밝혔습니다.
