토렌트는 어떻게 '중앙 서버 없이' 돌아갈까
토렌트로 파일 받아보신 분들 많죠? 토렌트가 신기한 게, 중앙에 있는 서버 한 대가 파일을 쫙 뿌려주는 방식이 아니에요. 수많은 사람의 컴퓨터가 서로서로 조각을 주고받으며 파일을 완성하는 구조거든요. 그럼 '내가 받고 싶은 파일 조각을 누가 갖고 있는지' 어떻게 찾을까요? 예전엔 '트래커(tracker)'라는 중앙 안내소가 그 역할을 했어요. 그런데 트래커가 막히면 토렌트 무리 전체가 마비되는 약점이 있었죠.
그래서 등장한 게 DHT(분산 해시 테이블, Distributed Hash Table)예요. DHT가 뭐냐면요, 두꺼운 전화번호부를 한 권으로 묶어 한 곳에 두지 않고, 참여한 모든 사람이 전화번호부의 한 페이지씩 나눠 갖는 방식이에요. 누군가를 찾고 싶으면 '그 번호는 너랑 가까운 누가 갖고 있을 것 같아?' 하고 이웃에게 물어물어 점점 가까이 다가가요. 중앙 서버가 아예 없으니 막을 곳도 없는 게 장점이죠.
'그걸 통째로 긁어보겠다'는 연구
이 논문(Scott Wolchok, J. Alex Halderman / 미시간대 / USENIX WOOT 발표)은 바로 이 DHT를 처음부터 끝까지 크롤링(crawling, 자동으로 훑어 빠짐없이 수집)하는 게 실제로 가능한지 보여준 연구예요. 좀 오래된 고전이지만, 분산 시스템을 공부하는 사람이라면 지금 봐도 무릎을 치게 되는 내용이거든요.
흔히들 DHT는 각 노드(참여 컴퓨터)가 '내 주변 이웃 몇 명'만 알면 되는 구조라, 전체를 한눈에 들여다보긴 어렵다고 생각했어요. 그런데 저자들은 평범한 장비 한 대로도 BitTorrent의 메인라인(Mainline) DHT와 Vuze DHT 전체를 짧은 시간에 스냅샷 찍듯 떠낼 수 있다는 걸 증명했어요. 수백만 개 노드를 빠르게 순회하면서, 사실상 '지금 이 네트워크에 누가 들어와 있고 무엇을 주고받는가'를 통째로 관찰할 수 있었던 거죠.
프라이버시 측면에서 섬뜩한 부분
여기서 중요한 함의가 나와요. 토렌트는 IP 주소가 공개되는 구조인데, DHT를 통째로 긁으면 '어떤 IP가 어떤 파일에 관심 있는가'를 대규모로 수집할 수 있다는 뜻이에요. 분산이라서 막을 중앙 서버가 없다는 장점이, 거꾸로 '아무도 막을 수 없게 전부 관찰당할 수 있다'는 단점으로 뒤집힐 수 있다는 거죠.
논문은 여기서 한 발 더 나가요. 당시 'Vanish'라는 흥미로운 시스템이 있었어요. 메시지를 암호화한 뒤 그 열쇠 조각을 DHT 여기저기에 흩뿌려 두는데, DHT 노드들이 시간이 지나면 자연히 데이터를 잊어버리는 성질을 이용해서 '시간이 지나면 저절로 복구 불가능해지는 자기파괴 메시지'를 만들겠다는 아이디어였죠. 그런데 저자들은 DHT를 부지런히 통째로 긁어 그 열쇠 조각들을 사라지기 전에 미리 다 주워 담아 두면, 나중에 메시지를 복구할 수 있다는 걸 보여줬어요. '저절로 사라진다'는 전제 자체가 무너진 거예요.
업계 맥락에서 다시 보기
이 연구의 진짜 교훈은 '분산 = 자동으로 안전하고 프라이버시도 보장된다'는 막연한 믿음을 깨뜨린 데 있어요. 요즘도 IPFS, 블록체인의 P2P 계층, 각종 멤버십·가십(gossip) 프로토콜처럼 DHT나 그 사촌 격 기술을 쓰는 분산 시스템이 많거든요. 이들 모두 '네트워크를 통째로 관찰하는 공격자'라는 위협을 똑같이 안고 있어요.
한국 개발자에게 주는 시사점
P2P나 분산 시스템을 설계한다면, 위협 모델을 짤 때 '바깥에서 전부 들여다보는 관찰자(global passive observer)'를 반드시 한 칸 넣어두세요. 노드를 익명화하려면 추가 계층(예: 양파 라우팅, 더미 트래픽)이 필요하고, '시간이 지나면 데이터가 사라진다' 같은 가정은 공격자가 미리 수집해 둘 수 있다는 전제 아래 다시 검증해야 해요. 분산 구조를 멋으로 쓰기 전에, 그게 가져오는 새로운 공격면을 함께 따져보는 습관이 중요하다는 걸 이 논문이 잘 보여줘요.
한 줄 정리
'분산되어 있다'는 건 검열엔 강할지 몰라도 관찰엔 오히려 약할 수 있어요. 여러분이 설계 중인 시스템에서 '누군가 전체를 긁어 간다면 무엇이 드러날까?'를 한번 떠올려 보면 어떨까요?
🔗 출처: Hacker News
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공