2P by GN⁺ 4일전 | ★ favorite | 댓글 1개
  • 암호학 기반 네트워킹 스택으로, LoRa·패킷 라디오·WiFi 등 다양한 매체에서 작동하며 초저속·고지연 환경에서도 안정적 통신을 지원
  • 종단 간 암호화, 발신자 익명성, 자동 구성 멀티홉 라우팅, 위조 불가능한 전달 확인 등 보안 중심 기능을 포함
  • IP 스택에 의존하지 않으며, Python 3 환경에서 커널 모듈 없이 사용자 공간에서 실행 가능
  • 저비용·자율적 네트워크 구축을 목표로, 중앙 통제나 검열 없이 수천 개의 독립 네트워크를 상호 연결 가능
  • 분산형 통신 인프라 구축과 오프그리드 네트워킹을 위한 오픈소스 도구로서, 개발자와 연구자에게 높은 활용 가치

Reticulum 개요

  • Reticulum은 암호학 기반 네트워킹 스택으로, 일반 하드웨어를 이용해 지역 및 광역 네트워크를 구축할 수 있음
    • 고지연·저대역폭 환경에서도 작동
    • 종단 간 암호화, 발신자 익명성, 자동 구성 멀티홉 전송, 효율적 주소 지정, 위조 불가능한 전달 확인 기능 제공
  • 목표는 누구나 자신의 네트워크 운영자가 되어, 중앙 통제 없이 자율적·연결 가능한 네트워크를 구축하도록 하는 것
  • Reticulum은 단일 네트워크가 아니라, 수천 개의 독립 네트워크를 구축하는 도구로 설계됨
  • IP를 기반으로 동작할 수도 있어, 인터넷이나 사설망 위에서 터널링 가능
  • Python 3 환경에서 실행, 커널 모듈이나 드라이버 불필요

주요 기능

  • 글로벌 고유 주소 지정자동 구성 멀티홉 라우팅 지원
    • 다양한 물리 매체와 토폴로지에서 데이터 전송 가능
  • 발신자 익명성 보장: 패킷에 소스 주소 포함하지 않음
  • 비대칭 X25519 암호화Ed25519 서명 기반 통신
    • 512비트 Curve25519 키셋 사용
  • Forward Secrecy 지원, AES-256-CBC 암호화 및 SHA256 HMAC 인증
  • 확장 가능한 인터페이스 시스템으로 사용자 정의 인터페이스 추가 가능
  • 간단한 API 제공으로 분산형 애플리케이션 개발 용이
  • 대용량 데이터 전송 지원, 자동 압축·체크섬·전송 조정 기능 포함
  • 경량 Request/Response 메커니즘효율적 링크 설정(3패킷, 297바이트)

참조 구현 및 프로토콜

  • 이 저장소의 Python 코드가 공식 참조 구현이며, 프로토콜 정의의 기준
  • Reticulum License로 배포, 프로토콜은 2016년 퍼블릭 도메인에 기증
  • 호환성은 참조 구현과의 완전한 상호운용성으로 정의됨

활용 예시

  • rnsh: Reticulum 기반 원격 셸 세션
  • LXMF: 분산형 메시지 전송 프로토콜
  • LXST: 실시간 오디오·신호 전송 프레임워크
  • Nomad Network: 오프그리드 암호화 메시 통신 플랫폼
  • Sideband: 파일 전송·음성통화·지도 기능을 갖춘 GUI 앱
  • MeshChat: 웹 기반 LXMF 클라이언트, 이미지·음성·파일 전송 지원

지원 매체 및 장치

  • 최소 5bps 이상의 반이중 채널500바이트 MTU를 지원하는 모든 매체에서 작동
  • LoRa, 패킷 라디오, WiFi, 이더넷, 광통신 링크 등 사용 가능
  • RNode는 Reticulum용 LoRa 인터페이스로, 직접 제작 또는 완제품 구매 가능
  • Raspberry Pi 등에서 LoRa·패킷 라디오·WiFi를 혼합 구성 가능

지원 인터페이스

  • 이더넷, LoRa(RNode), 패킷 라디오 TNC, KISS 모뎀, 시리얼 장치, TCP/UDP, stdio 파이프 등 지원
  • 사용자 정의 인터페이스 모듈 추가 가능, 실사용 검증된 PR 환영

성능 및 상태

  • 목표 성능 범위: 250bps~1Gbps, 현재 약 150bps~500Mbps
  • 핵심 프로토콜 기능 완전 구현, API와 포맷 안정 상태

연결 부트스트래핑

  • Reticulum은 가입형 서비스가 아닌 자율 네트워크
  • 커뮤니티가 운영하는 공개 엔트리포인트 디렉터리를 통해 초기 연결 가능
    • 예: directory.rns.recipes, rmap.world

암호학적 구성요소

  • Curve25519 기반 512비트 키셋, Ed25519 서명, X25519 키 교환
  • HKDF, AES-256-CBC, HMAC-SHA256, SHA-256/512 사용
  • 기본적으로 OpenSSLPyCA/cryptography를 통해 제공
  • 순수 Python 구현체도 포함되어 있으나, 보안 검증 수준이 낮음
Hacker News 의견들
  • 나는 여러 지역 커뮤니티에서 Mesh 네트워크를 깊이 다뤄왔지만, Reticulum을 실제로 사용하는 큰 네트워크는 본 적이 없음
    커뮤니티들이 참여하지 않는 주된 이유는 이 프로젝트가 사실상 1인 개발자 중심이라서, Git 변경 내역이 “Update”, “Better Version”, “Cleanup” 같은 식으로만 되어 있어 추적이 거의 불가능하기 때문임

    • 그 한 사람이 3주 전부터 프로젝트의 공개 활동에서 물러났음
      앞으로는 예측 불가능한 간헐적 업데이트만 있을 뿐, 지원이나 커뮤니티 관리가 전혀 없을 것이라고 밝힘
      결국 또 하나의 번아웃된 1인 오픈소스 프로젝트가 된 셈임
    • 그는 MIRROR.md에 “이제 각자의 길을 가자, 악감정은 없다”는 메시지를 남겼음
      이별의 인사처럼 느껴지는 글이었음
    • 초보자에게 추천할 만한 다른 Mesh 프로젝트가 있는지 궁금함
  • Reticulum은 프로덕션 수준의 전체 네트워크 스택으로, 암호화와 익명성이 핵심임
    LoRa 전용이 아니라 전송 계층 독립적
    하지만 두 가지 문제가 있음

    1. 라이브러리가 Python으로 작성되어 있어, C 기반 서버나 임베디드 장치에는 부적합함
      C API를 가진 작은 라이브러리가 더 나을 것 같음
    2. 대부분의 사용자용 소프트웨어의 UI가 매우 열악함
      다만 Columba 같은 앱이 조금씩 개선 중임
      현재 C++, Zig, Rust, Go 등으로 저수준 언어 버전을 만드는 시도가 4개 정도 있음
      그중 Beechat의 Rust 구현체가 가장 성숙해 보이지만, 실제 사용 사례는 거의 없음
    • 놀랍게도 그 Rust 버전은 Std 전용이라서 임베디드 문제를 해결하지 못함
  • “예전 방식”은 브라우저의 자물쇠 아이콘을 신뢰하는 것이었고, “Zen 방식”은 해시 지문을 직접 검증하는 것임
    하지만 이런 접근은 UX가 끔찍함
    기술자인 나조차 설정에 애먹었는데, 일반 사용자가 쓸 리가 없음
    결국 대중화를 원한다면, 그 초록색 자물쇠 아이콘이 필요함

  • 아무도 언급하지 않아 놀랐는데, Yggdrasil이라는 라우팅 프로토콜이 있음
    암호 기반 주소를 사용하며 TCP/IP나 LoRa 위에서도 동작함
    나는 몇 주째 Tailscale 대체로 사용 중인데, 지연도 비슷하고 꽤 안정적이었음
    Reticulum과의 차이가 궁금함
    Yggdrasil 공식 사이트

    • 나는 몇 년째 Yggdrasil을 같은 용도로 쓰고 있는데, 너무 안정적이라 존재를 잊고 살 정도
    • Reticulum은 Yggdrasil 네트워크 위에서 통신할 수 있지만, 반대로 구현된 예는 아직 없음
    • 나는 현재 Headscale을 쓰고 있는데, Tailscale처럼 쓰려면 구체적으로 어떻게 설정하는지 궁금함
    • Yggdrasil은 너무 대형 네트워크라서, Reticulum이 사용하는 저대역폭 무선망에서는 적합하지 않음
  • 실제로 내가 가장 신경 쓰는 건 메시지 전달 보장성
    Reticulum은 “Store and Forward”를 기본 모드로 삼고 있음
    메시지가 즉시 전달되지 않아도, 나중에 연결이 생기면 전송됨
    하지만 메시지가 순서대로 도착하지 않을 때, 클라이언트가 이를 올바르게 정렬할 메타데이터를 포함하는지가 궁금함

  • Reticulum이 1.0.0 버전에 도달했고 실제로 잘 작동함
    시작하려면 meshchat이나
    Android용 Sideband를 써보면 됨
    LoRa로 사진과 음성 채팅도 가능하며, 대역폭이 부족하거나 링크가 끊기면 자동으로 다른 전송 방식으로 전환됨

  • 내가 혼란스러운 건, 공식 프로토콜 명세가 공개되지 않았다는 점
    LoRa 같은 무선 칩용이라면 마이크로컨트롤러에서 돌아야 하는데, Python이나 Rust std 버전은 그런 환경에서 쓸 수 없음

    • Reticulum은 LoRa 전용이 아니라, 직렬 링크나 적외선부터 고속 LAN, 이더넷까지 어떤 전송에서도 동작하도록 설계됨
    • 아마도 당신이 찾는 건 RNode 펌웨어일 것 같음
  • 라이선스를 보니 완전한 자유 소프트웨어는 아님
    “인간에게 해를 끼치지 말 것”과 “AI 사용 금지” 조항이 포함되어 있음

  • 세 가지 모두 eBGP처럼 다중 스패닝 트리 구조를 갖춘 마스터–슬레이브 노드 구성이 필요함

  • 누군가가 Anathem의 팬인 것 같음

    • 정말 훌륭한 책이라, 아직 안 읽은 사람에게 강력히 추천함