분산 해시 테이블(DHT)이란?
분산 해시 테이블은 데이터를 찾는 작업을 여러 독립적인 컴퓨터에 분산하는 공유 주소록입니다. 데이터가 어디에 있는지 한 서버가 답하는 대신, DHT를 사용하면 네트워크가 함께 올바른 위치를 찾아줍니다. 파일이 어디 있는지 똑똑한 사람들에게 물어보면, 몇 번의 빠른 경유만으로 답을 알려주는 것과 비슷합니다.
DHT는 파일을 영원히 저장합니다. 그렇지는 않습니다. DHT는 데이터 자체가 아니라 데이터를 찾을 위치를 저장하며, 데이터는 여전히 호스팅하기로 선택한 피어에 저장됩니다.
분산 해시 테이블(DHT)의 작동 방식
앱이 콘텐츠 해시로 표시된 항목을 사람들에게 묻는다고 상상해 보세요. 작동 과정을 간단히 살펴보겠습니다.
- 1단계: 스웜에 참여해 노드 중 하나가 됩니다.
- 2단계: X 항목을 원하면 해당 콘텐츠의 해시를 계산합니다. 이 해시는 고유 ID 역할을 합니다.
- 3단계: 가까운 피어에게 질의를 보내면, 피어들이 수학적으로 해당 ID에 더 가까운 피어를 향해 질의를 전달합니다.
- 4단계: 질의가 담당 피어들 근처에 도착하면, 이들은 현재 X 항목을 가진 피어가 누구인지 알려줍니다.
- 5단계: 해당 피어에 연결해 직접 다운로드합니다. 빠르고 간편하게 끝납니다.
실제 사례를 살펴보겠습니다. IPFS(InterPlanetary File System)는 DHT를 사용해 특정 해시의 콘텐츠를 보유한 피어를 찾은 다음, 해당 피어에서 콘텐츠를 가져옵니다.
분산 해시 테이블(DHT)이 중요한 이유
덕후 점수 말고도 이 기술에 관심을 가져야 하는 이유는 무엇일까요?
- 장점: 중앙의 통제자 없이 콘텐츠를 빠르게 찾을 수 있어 속도와 복원력이 향상됩니다.
- 관점: 탈중앙화 네트워크의 핵심 구성 요소입니다. 이런 네트워크에서는 여러 참여자가 검색을 처리해 단일 장애 지점을 줄입니다.
- 관련성: 파일 공유를 위한 피어 검색, 댑의 데이터 가용성, 나아가 피어 투 피어 거래에서 거래 상대를 찾는 데도 활용됩니다.
DHT에 데이터가 있다고 누군가 말하면, 데이터 자체는 어디에 저장되어 있는지, 또 이를 고정하거나 복제하는 피어는 몇 개인지 물어보세요. 위치 정보는 백업이 아닙니다.
분산 해시 테이블(DHT)의 주요 특징
암호화폐와 피어 시스템 전반에서 꾸준히 활용되는 이유는 다음과 같습니다.
- 검색: 키가 주어지면 대규모 네트워크에서도 대략 로그 규모의 홉을 거쳐 담당 피어를 찾습니다.
- 분산: 인덱스를 공유하므로 단일 서버가 검색 기능을 중단시킬 수 없습니다.
- 복원력: 피어가 네트워크에 참여하거나 이탈해도 네트워크는 경로를 찾아 질의를 전달합니다.
- 검증 가능성: 키가 해시이므로 가져온 데이터가 키와 일치하는지 확인할 수 있습니다.
종류
라우팅 방식과 장단점이 각기 다른 여러 유형이 있습니다.
- Kademlia: 널리 사용되며 XOR 거리를 기준으로 라우팅하고, 오래 연결된 피어를 선호합니다.
- Chord: 피어를 링 형태로 배열하고 핑거 테이블을 사용해 라우팅합니다.
- Pastry: 근접성을 고려하는 접두사 기반 라우팅을 사용합니다.
DHT는 디렉터리이자 라우팅 시스템이지, 진실을 담은 데이터베이스가 아닙니다. 콘텐츠는 여전히 해시로 검증하고, 피어의 주장은 신중하게 받아들여야 합니다.
예시
IPFS(InterPlanetary File System)를 사용하는 앱에서 콘텐츠 해시를 요청하면 DHT가 여러 피어 주소를 알려주고, 앱은 해당 피어에 직접 연결해 데이터를 가져옵니다.
재미있는 사실
가장 널리 쓰이는 DHT 유형인 Kademlia는 2002년에 등장해 BitTorrent 마그넷 링크부터 암호화폐 프로젝트에서 사용하는 최신 콘텐츠 주소 지정 저장 방식까지 다양한 기술에 조용히 영향을 미쳤습니다. 오래된 논문이지만 영향력은 여전합니다.
요약
간단히 말해 DHT는 피어 네트워크가 중앙 서버에 묻지 않고 필요한 것을 찾도록 돕는 주소록입니다. 단순한 아이디어지만 영향은 큽니다.