비트코인 핵심, 노드 취약점으로 보안 위협… 암호화 경로 지원 중단 고려

비트코인 핵심(Bitcoin Core) 개발진이 암호화된 네트워크 경로 지원을 중단하는 방안을 검토하고 있다. 이는 현재 일부 노드의 낮은 건강 상태가 사용자들을 '이클립스 공격(eclipse attack)'에 더욱 취약하게 만들고 있다는 판단에 따른 것이다. 만약 이 제안이 받아들여진다면, 향후 비트코인 네트워크의 보안 및 연결성에 미묘한 변화를 가져올 수 있다.
**주요 쟁점: 얕은 피어 풀과 보안 위험**
최근 비트코인 핵심 개발자들 사이에서는 CJDNS(Chameleon Juggler DNS)와 같은 비표준 네트워크 전송 방식의 지원 유지 여부를 두고 활발한 논의가 진행 중이다. CJDNS는 비트코인 노드 간의 통신을 위한 대안적인 경로를 제공하지만, 현재 이 방식을 사용하는 노드들의 수가 현저히 적고 연결성이 불안정하다는 문제가 제기되고 있다.
구체적으로, 한 비트코인 코어 시더(seeder, 네트워크 초기 연결을 돕는 서버)의 데이터베이스 분석 결과, 22개의 CJDNS 주소에 도달했지만 그 중 오직 7개만이 '좋은 노드(good-node)' 기준을 충족한 것으로 나타났다. '좋은 노드'는 단순히 연결 가능한 노드를 넘어, 포트, 네트워크 서비스, 프로토콜 버전, 체인 높이, 그리고 지속적인 안정성 등 까다로운 기술적 필터를 통과한 노드를 의미한다. 이러한 엄격한 기준 때문에 실제로 활용 가능한 노드 풀은 매우 얕아진다.
다른 개발자인 마틴 줌산데(Martin Zumsande)는 자신의 노드에서 CJDNS만을 통해 연결되는 피어(peer)가 3~4개에 불과하다는 사실을 보고했다. 비트코인 코어는 기본적으로 11개의 고정된 CJDNS 시더를 제공함에도 불구하고, 실제 연결 수는 기대에 훨씬 못 미치는 상황이다.
**지원 중단 제안과 향후 일정**
이러한 상황은 CJDNS 지원을 단계적으로 축소하자는 제안으로 이어졌다. 첫 단계로, 비트코인 코어 32.x 버전에서는 사용자들에게 CJDNS 지원 중단에 대한 경고 메시지를 표시하고, 33.x 버전에서는 해당 기능을 완전히 제거하는 방안이 검토 중이다. 하지만 이러한 일정은 아직 확정된 것이 아니며, 현재까지도 오픈된 논의 사항으로 남아있다. 8월 23일 기준으로, 32.0 마일스톤의 개발 섹션에는 관련 구현 사항이나 코드 변경 요청(pull request)이 아직 포함되지 않은 상태이다.
**CJDNS의 역할과 양날의 검**
CJDNS는 비트코인 합의 메커니즘과는 별개로, 비트코인 코어 내에서 선택적 피어투피어(P2P) 전송 방식 및 주소 처리 기능으로 구현되어 있다. 이번 논의의 핵심은, 얕은 피어 풀로 인해 오히려 CJDNS만을 사용하는 노드들이 외부 공격에 더 쉽게 노출될 수 있다는 점이다. 즉, CJDNS가 네트워크 경로 다양성을 제공하는 장점이 있을 수 있지만, 그 작은 주소 풀이 이클립스 공격 위험을 높이는 요인이 될 수 있다는 것이다.
이클립스 공격은 특정 노드를 네트워크 상에서 고립시키기 위해 해당 노드의 연결 정보를 독점하는 방식이다. 특히, 알려진 주소 집합이 작은 전송 프로토콜에서는 공격자가 이러한 독점을 더욱 쉽게 수행할 수 있다. 만약 CJDNS 노드가 얕은 피어 풀로 인해 제한적인 연결만 유지하게 된다면, 공격자는 이 제한된 연결을 장악함으로써 해당 노드가 네트워크의 나머지 부분과 통신하는 것을 효과적으로 차단할 수 있다.
**개발진의 고민: 비용 대비 효용성**
비트코인 코어 개발팀은 CJDNS와 같은 기능이 여전히 네트워크에 중요한 보험 역할을 하는지, 아니면 유지하는 데 드는 비용이 효용성을 넘어서는 부담이 되고 있는지를 신중하게 저울질하고 있다. 줌산데는 CJDNS 지원을 계속 유지하기 위한 최소 피어 수 기준으로 세 자릿수의 낮은 숫자를 제시했는데, 이는 개발진에게 단순히 '사용률이 낮다'는 일반적인 불만을 넘어 구체적인 논의 지점을 제공했다.
하지만 단순히 피어 수를 기준으로 지원 여부를 결정하는 것만으로는 이클립스 공격으로 인한 잠재적 비용을 정확히 산정하기 어렵다. 비트코인 코어는 일반적으로 8개의 완전 릴레이(full-relay) 아웃바운드 연결과 2개의 블록 릴레이 전용 연결을 유지하며, 때로는 추가적인 연결을 맺기도 한다. CJDNS 연결에 대한 임계값을 설정할 때, 이러한 일반적인 연결 슬롯을 채우고 CJDNS 노드를 이클립스 공격으로부터 보호하는 데 드는 비용을 고려해야 한다는 의견도 나오고 있다.
**결론적으로,** 비트코인 코어 개발진은 CJDNS 지원을 유지함으로써 얻는 네트워크 경로의 다양성이, 얕은 피어 풀로 인해 발생하는 보안 취약성 증가와 유지보수 비용이라는 단점을 상쇄할 만큼 가치가 있는지에 대한 심도 깊은 고민을 이어가고 있다. 이번 결정은 비트코인 네트워크의 견고성과 사용자 보안에 직접적인 영향을 미칠 수 있는 중요한 사안이다. 개발진의 향후 행보에 따라 비트코인 네트워크의 연결성 및 보안 아키텍처에 변화가 예상된다.