n0-computer/iroh의 repo 설명은 길지 않다. "IP addresses break, dial keys instead." Rust로 만든 modular networking stack이라는 설명까지 붙어 있다. 짧은 문장이지만 네트워킹을 바라보는 기준이 꽤 분명하다. 주소를 절대적인 접점으로 믿지 말자는 쪽이다.
IP 주소는 편하다. 대부분의 웹 개발자는 서버 주소를 알고, 그 주소로 요청을 보내고, 실패하면 재시도하는 방식에 익숙하다. 하지만 주소는 위치에 가깝다. 네트워크가 바뀌거나 NAT 뒤로 들어가거나, 모바일 환경처럼 접속점이 계속 달라지는 상황에서는 이 위치 정보가 생각보다 쉽게 낡는다. iroh의 "IP addresses break"라는 문장은 그 불편함을 먼저 인정한다.
"dial keys instead"는 다른 방향을 제안한다. 연결 대상을 주소가 아니라 키로 잡는다는 것은 "어디 있느냐"보다 "누구냐"를 먼저 묻겠다는 뜻에 가깝다. 이 관점은 분산 앱, P2P 파일 전송, 로컬 퍼스트 동기화처럼 고정된 서버 endpoint만으로 설명하기 어려운 시스템에서 특히 중요해진다. 장치와 사용자가 이동하는 환경에서는 주소보다 정체성이 더 오래 살아남을 수 있다.
물론 키를 다이얼한다고 해서 네트워킹의 어려움이 사라지는 건 아니다. 키 관리가 필요하고, 신뢰 모델을 정해야 하며, discovery와 연결 실패를 어떻게 다룰지도 남는다. 모듈식 스택은 자유도를 주지만, 그만큼 어떤 조각을 어떻게 붙일지에 대한 판단도 요구한다.
그래서 iroh의 인기는 단순히 Rust repo 하나가 빠르게 별을 모았다는 이야기로 끝나지 않는다. Rust rank 13, stars today 326이라는 숫자는 관심의 신호일 뿐이다. 더 흥미로운 건 네트워크를 안정적인 배관으로 보지 않고, 언제든 깨질 수 있는 환경으로 본다는 태도다. 좋은 네트워킹 도구는 실패를 숨기지 않는다. 실패를 설계 안으로 끌어들인다.