Ethereum의 P2P 네트워크: 더 큰 풀은 왜 항상 안전하지 않은가
수년간 블록체인 분야에서 일반적인 상식은 “클수록 좋다”는 것이었습니다. 이더리움 글로벌 네트워크(EGN)는 이더리움 메인넷부터 수많은 다른 프로젝트에 이르기까지 수천 개의 서비스를 지원하는 방대한 피어‑투‑피어(P2P) 레이어로, 바로 이 생각에 기반해 구축되었습니다[cite: 4, 25]. 이론은 간단했습니다: 모두가 같은 공간을 공유하는 거대하고 혼합된 네트워크가 노드 탐색을 촉진하고 생태계를 공격에 더 탄력적으로 만든다는 것이었습니다[cite: 34, 35].
하지만 “A Place for Everyone vs Everyone in its Place: Measuring and Attacking the Ethereum Global Network”라는 중요한 연구 논문은 이 근본적인 믿음에 도전합니다. 연구 결과는 “모두를 위한 장소” 아키텍처가 강점이 아니라 심각한 비효율성과 위험한 보안 취약성을 초래하며, 총 시장 가치가 5천억 달러가 넘는 서비스에 영향을 미칠 수 있음을 보여줍니다[cite: 6, 24].
효율성 악몽: 군중 속에 외치기
EGN의 약속은 노드가 동일한 서비스를 제공하는 피어를 쉽게 찾고 연결할 수 있다는 것이었습니다[cite: 34]. 현실은 정반대였습니다. 연구에 따르면 노드들은 방대한 EGN의 소음 속에서 동료 를 찾기 위해 필사적으로 고군분투하고 있습니다[cite: 8].
비효율성은 충격적입니다:
- 낭비된 연결: 노드의 연결 시도 중 75% 이상이 전혀 다른 서비스의 피어에게 향합니다[cite: 8].
- 극단적인 연결 비용: 놀라운 사례에서, 한 노드는 단 하나의 유효한 이웃을 찾기 위해 평균 45,908번의 연결 시도를 해야 했습니다[cite: 9]. 이는 비트코인의 성공률이 4분의 1이라는 추정치와 크게 대조됩니다[cite: 54].
- 뒤로 물러나는 한 걸음: 개선을 목표로 만든 최신 탐색 프로토콜 Discv5는 오히려 더 나쁜 성능을 보였습니다. 12시간 테스트에서 Discv5를 사용한 노드들은 세 개 이하의 연결만을 수립했으며, 이는 서비스 광고를 위한 핵심 “주제 탐색 메커니즘”이 모든 주요 클라이언트에서 구현되지 않았기 때문입니다[cite: 57, 59].
핵심 문제는 EGN의 대부분 노드가 라우팅 테이블(‘주소록’)에 관련 없는 피어들로 가득 차 있다는 점입니다. 연구에 따르면 대부분의 Discv4 노드는 DHT(분산 해시 테이블)에서 동일 서비스 피어를 5% 미만만 유지하고 있습니다[cite: 44].
보안 환상: 취약한 거인
“클수록 안전하다”는 논리의 두 번째 기둥은 보안이었습니다— EGN의 거대한 규모가 공격자의 영향력을 희석시킬 것이라는 주장[cite: 35]. 논문은 악성 노드가 네트워크 주소록을 자체 엔트리로 가득 채우는 DHT 오염 공격을 시뮬레이션함으로써 이 가정을 무너뜨립니다[cite: 61, 62].
결과는 EGN의 혼합 특성이 방어가 아니라 치명적인 취약점임을 보여줍니다[cite: 10, 65]:
- 압도적으로 효과적: 전체 네트워크의 0.3% 미만에 해당하는 300개의 악성 노드만으로도 대부분 서비스의 연결 성공률을 1% 이하로 떨어뜨릴 수 있습니다[cite: 11, 63].
- 대규모 격리: 24시간 만에 이 소규모 공격은 네트워크를 성공적으로 분할시켜 수천 개의 정직한 노드가 자신의 서비스를 이용하지 못하도록 만들었습니다[cite: 11, 64].
- 설계상의 문제: 이 취약점은 버그가 아니라 혼합 아키텍처의 내재된 결과입니다[cite: 65]. 동일한 공격을 서비스별로 분리된 전용 네트워크에 적용했을 때는 라우팅 테이블이 깨끗하고 관련 피어만 포함하고 있어 “대체로 효과가 없었다”는 결과가 나왔습니다[cite: 66].
앞으로의 길: “제자리에 있는 모두”
연구는 EGN의 혼합 아키텍처가 특히 비효율적이고 불안정한 환경에서 작은 서비스들을 부수적으로 피해를 입히는 구조라고 결론짓습니다[cite: 37]. 해결책은 글로벌 네트워크를 포기하는 것이 아니라, “모두를 위한 장소”에서 “모두가 제자리에 있는” 구조로 전환하는 것입니다[cite: 522].
논문이 제시하는 두 가지 핵심 해결책:
- 서비스별 DHT: 모든 노드가 자신의 서비스 정보를 Ethereum Node Record(ENR)에 직접 포함하도록 의무화합니다[cite: 490, 491]. 이 간단한 변경만으로도 노드가 동일 서비스 피어를 필터링하고 우선순위를 두게 되어, 탈중앙성을 해치지 않으면서도 탐색 효율성과 보안을 크게 향상시킬 수 있습니다[cite: 495].
- 보다 신뢰할 수 있는 부트노드: 시뮬레이션은 부트노드가 네트워크 분할에 대한 최후 방어선 역할을 한다는 점을 강조했습니다[cite: 496]. 논문은 각 서비스가 부트노드 수를 늘리고, 동일 서비스 피어를 저장하도록 구성해 네트워크 복구를 위한 탄탄한 백본을 구축할 것을 권고합니다[cite: 499].
개발자와 전체 생태계의 건강을 위해, 이 발견은 중요한 경각심을 일깨워 줍니다. 견고하고 효율적인 P2P 레이어는 모든 탈중앙화 서비스의 기반입니다. 제안된 수정 사항을 구현함으로써, 커뮤니티는 모두에게 작동하는 보다 조직적이고 안전하며 진정한 글로벌 네트워크를 향해 나아갈 수 있습니다.