본문으로 건너뛰기

Ethereum의 익명성 신화: 연구원들이 검증자 15%를 어떻게 밝혀냈는가

· 약 5분
Dora Noda
Software Engineer

Ethereum 과 같은 블록체인 기술의 핵심 약속 중 하나는 일정 수준의 익명성이다. 검증자라 불리는 참여자들은 암호화된 가명 뒤에 숨겨져 실제 신원을 보호하고, 따라서 보안도 확보된다고 여겨진다.

하지만 ETH Zurich 와 기타 기관의 연구원들이 발표한 최근 논문 “Deanonymizing Ethereum Validators: The P2P Network Has a Privacy Issue”는 이 가정에 중대한 결함이 있음을 밝혀냈다. 그들은 검증자의 공개 식별자를 해당 검증자가 실행 중인 머신의 IP 주소와 직접 연결하는 간단하고 저비용인 방법을 시연했다.

요컨대, Ethereum 검증자는 많은 사람들이 생각하는 만큼 익명하지 않다. 이 발견은 Ethereum Foundation 으로부터 버그 현상금까지 수여받을 정도로 프라이버시 유출의 심각성을 인정받았다.

취약점 작동 원리: 가십(Gossip) 내 결함

취약점을 이해하려면 먼저 Ethereum 검증자들이 어떻게 통신하는지 기본적인 그림을 그려야 한다. 네트워크에는 백만 명이 넘는 검증자가 존재하며, 이들은 지속적으로 체인의 상태에 대해 “투표”한다. 이러한 투표를 attestation(인증)이라 하며, 피어‑투‑피어 (P2PP2P) 네트워크를 통해 모든 다른 노드에 전파된다.

검증자가 너무 많아 모든 투표를 모두에게 전파하면 네트워크가 즉시 과부하된다. 이를 해결하기 위해 Ethereum 설계자는 영리한 확장 방안을 도입했다: 네트워크를 64개의 별도 통신 채널, 즉 subnet(서브넷)으로 나눈 것이다.

  • 기본적으로 각 노드(검증자 소프트웨어가 실행되는 컴퓨터)는 이 64개 서브넷 중 두 개에만 구독한다. 노드의 주요 역할은 그 두 채널에서 보는 모든 메시지를 충실히 중계하는 것이다.
  • 검증자가 투표를 해야 할 때, 해당 attestation 은 무작위로 64개 서브넷 중 하나에 할당되어 전파된다.

바로 여기서 취약점이 발생한다. 예를 들어, 채널 12와 13만 관리하도록 설정된 노드가 있다고 하자. 이 노드는 하루 종일 그 두 채널의 메시지만을 전달한다. 그런데 어느 순간, 채널 45에 속한 메시지를 받게 된다.

이는 강력한 단서다. 왜 노드가 자신이 담당하지 않은 채널의 메시지를 처리하겠는가? 가장 논리적인 결론은 그 노드 자체가 해당 메시지를 생성했다는 것이다. 즉, 채널 45에 대한 attestation 을 만든 검증자가 바로 그 머신에서 실행되고 있다는 의미다.

연구진은 바로 이 원리를 이용했다. 자신들의 청취 노드를 구축하고, 피어들이 어느 서브넷에서 attestation 을 보내는지 모니터링했다. 피어가 공식적으로 구독하지 않은 서브넷에서 메시지를 보낼 경우, 그 피어가 해당 검증자를 호스팅하고 있다고 높은 확신을 가지고 추론할 수 있었다.

이 방법은 놀라울 정도로 효과적이었다. 세 날 동안 네 개의 노드만 사용해 팀은 161,000개 이상의 검증자 IP 주소를 찾아냈으며, 이는 전체 Ethereum 네트워크의 15% 이상에 해당한다.

왜 중요한가: 익명성 해제의 위험

검증자의 IP 주소가 노출되는 것은 사소한 문제가 아니다. 이는 개별 운영자를 겨냥한 공격은 물론, 전체 Ethereum 네트워크의 건전성을 위협하는 문을 연다.

1. 표적 공격 및 보상 탈취
Ethereum 은 다음 블록을 제안할 검증자를 몇 분 전에 공개한다. 공격자는 해당 검증자의 IP 주소를 알면 DDoS(서비스 거부) 공격을 감행해 트래픽을 폭주시켜 오프라인 상태로 만들 수 있다. 검증자가 4초 안에 블록을 제안하지 못하면 기회는 다음 검증자에게 넘어간다. 공격자가 바로 그 다음 검증자라면, 피해자 대신 블록 보상과 귀중한 트랜잭션 수수료(MEV)를 차지할 수 있다.

2. 네트워크 가용성 및 안전성 위협
자원이 풍부한 공격자는 이러한 “스니핑” 공격을 반복해 전체 블록체인의 처리 속도를 늦추거나 정지시킬 수 있다(가용성 공격). 더 심각한 경우, 이 정보를 이용해 네트워크 분할 공격을 수행해 체인의 이력에 대한 합의를 깨뜨릴 수 있다(안전성 공격).

3. 중앙화된 현실 드러남
연구는 네트워크 탈중앙화에 대한 불편한 진실도 밝혀냈다:

  • 극단적 집중: 팀은 하나의 IP 주소가 19,000개 이상의 검증자를 운영하고 있음을 발견했다. 단일 머신의 장애가 네트워크에 과도한 영향을 미칠 수 있다.
  • 클라우드 의존: 찾아낸 검증자의 90% 이상이 AWS, Hetzner 등 클라우드 제공업체에서 운영되고 있었다. 이는 개인 홈 스테이커가 아닌 클라우드에 의존하고 있음을 의미한다.
  • 숨겨진 의존성: 많은 대형 스테이킹 풀은 운영자가 독립적이라고 주장하지만, 연구 결과 서로 경쟁하는 풀의 검증자들이 같은 물리 머신에서 실행되고 있는 사례가 발견돼 시스템적 위험이 은폐돼 있음을 보여준다.

완화 방안: 검증자는 어떻게 스스로를 보호할 수 있는가?

다행히 이 익명성 해제 기법에 맞설 방법이 존재한다. 연구진은 다음과 같은 완화 방안을 제시했다:

  • 노이즈 증가: 검증자는 두 개 이상의 서브넷—심지어는 전체 64개—에 구독하도록 선택할 수 있다. 이렇게 하면 관찰자가 중계 메시지와 자체 생성 메시지를 구분하기 훨씬 어려워진다.
  • 다중 노드 운영: 운영자는 서로 다른 IP를 가진 여러 머신에 검증자 역할을 분산시킬 수 있다. 예를 들어, 하나의 노드는 attestation 전송에만 사용하고, 별도의 프라이빗 노드는 고가치 블록 제안에만 활용한다.
  • 프라이빗 피어링: 검증자는 신뢰할 수 있는 소수의 노드와 전용 연결을 구축해 메시지를 중계함으로써 진짜 출처를 작은 신뢰 그룹 안에 숨길 수 있다.
  • 익명 브로드캐스트 프로토콜: Dandelion 과 같이 메시지의 출처를 무작위 “줄기(stem)”를 통해 전달한 뒤 널리 퍼뜨리는 방식을 구현하면 출처 추적을 더욱 어렵게 만든다.

결론

이 연구는 분산 시스템에서 성능과 프라이버시 사이의 근본적인 트레이드오프를 강력히 보여준다. 확장성을 위해 Ethereum 의 P2PP2P 네트워크가 채택한 설계는 가장 핵심적인 참여자들의 익명성을 희생시켰다.

취약점을 공개함으로써 연구진은 Ethereum 커뮤니티에 문제 인식과 해결 방안을 제공했다. 이 작업은 보다 견고하고 안전하며 진정으로 탈중앙화된 네트워크를 구축하기 위한 중요한 첫걸음이다.