1P by GN⁺ | ★ favorite | 댓글 1개
  • Nomad Network는 가입, 약관, 데이터 제출, 권한 승인자 없이 사용자가 직접 소유·통제하는 비공개 탄력 통신 플랫폼을 만들기 위한 오프그리드 메시 통신 도구임
  • 기반은 LXMFReticulum이며, 암호화 메시 네트워크 기능과 P2P 메시지 라우팅을 제공해 패킷 라디오부터 광섬유까지 다양한 통신 매체에서 동작함
  • 공용 인터넷, IP, Ethernet 없이도 사용할 수 있고 packet radio, LoRa, serial line 위에서 운용 가능하며, Reticulum 덕분에 300bps 라디오 링크에서도 사용된 사례가 있음
  • 기능은 암호화 메시징, 제로 설정 메시 통신, 오프라인 사용자를 위한 분산 암호화 메시지 저장소, 페이지·파일 호스팅 노드, 텍스트 기반 브라우저와 페이지 캐싱을 포함함
  • 현재 베타 소프트웨어이며 암호화 모범 사례를 염두에 두고 만들었지만 외부 보안 감사를 받지 않았고 프라이버시를 깨는 버그가 있을 수 있음

Nomad Network가 제공하는 통신 모델

  • Nomad Network는 사용자가 완전히 통제하고 소유하는 비공개 탄력 통신 플랫폼을 구축할 수 있게 함
  • 가입, 약관 동의, 데이터 제출, 권한 승인자나 게이트키퍼가 필요 없음
  • 저장소는 공개 미러이며, 실제 개발은 다른 곳에서 진행 중임
  • 그래픽 사용자 인터페이스가 있는 LXMF 클라이언트를 원하면 Linux, Android, macOS용 Sideband를 사용할 수 있음

기반 기술과 네트워크 매체

  • Nomad Network는 LXMFReticulum 위에 구축됨
    • 두 프로젝트는 Nomad Network가 의존하는 암호화 메시 네트워크 기능P2P 메시지 라우팅을 제공함
  • 이 기반 덕분에 패킷 라디오부터 광섬유까지 매우 다양한 통신 매체에서 프로그램을 사용할 수 있음
  • 공용 인터넷 연결이 없어도 동작하며, IP 또는 Ethernet 네트워크도 필수 조건이 아님
    • packet radio, LoRa, serial line만으로 사용할 수 있음
    • 필요하면 분리된 네트워크를 인터넷이나 사설 Ethernet으로 브리지할 수 있음
    • 완전히 인터넷 위에서 동작하는 네트워크도 만들 수 있음
  • Reticulum을 사용하기 때문에 매우 낮은 대역폭 매체에서도 효율적이며, 300bps 라디오 링크에서 성공적으로 사용된 적이 있음

주요 기능

  • Reticulum이 지원하는 packet radio, LoRa, WiFi 등에서 암호화 메시징을 제공함
  • 제로 설정과 최소 인프라 기반의 메시 통신을 지원함
  • 오프라인 사용자를 위해 메시지를 보관하는 분산 암호화 메시지 저장소가 있음
  • 연결 가능한 노드는 페이지와 파일을 호스팅할 수 있음
  • 노드 측에서 PHP, Python, bash 등으로 페이지를 생성할 수 있음
  • 노드의 콘텐츠와 상호작용하기 위한 텍스트 기반 브라우저가 내장됨
  • 페이지 작성을 위한 사용하기 쉬운 대역폭 효율적인 마크업 언어를 제공함
  • 브라우저에서 페이지 캐싱을 지원함

설치와 실행

  • 가장 쉬운 설치 방법은 pip 사용임
pip install nomadnet
nomadnet
nomadnet --daemon
nomadnet --help
  • 일반 사용자 패키지 설치를 차단하는 운영체제에서는 ~/.config/pip/pip.conf[global] 섹션에 다음 설정을 추가해 pip 동작을 되돌릴 수 있음
[global]
break-system-packages = true
  • 격리된 환경에 설치하려면 pipx를 사용할 수 있음
pipx install nomadnet
pipx install rns
pipx install lxmf
nomadnet
nomadnet --daemon
nomadnet --help
  • 시스템에서 처음으로 pip로 프로그램을 설치한 경우, 실행 명령이 인식되지 않으면 시스템 재부팅 후 다시 시도해야 할 수 있음
  • 프로그램을 처음 실행하면 사용을 시작하는 데 필요한 정보를 담은 Guide section이 표시됨

packet radio, LoRa, 테스트넷 사용

  • packet radio 또는 LoRa에서 Nomad Network를 사용하려면 Reticulum 설치가 관련 packet radio TNC나 LoRa 장치를 사용하도록 설정돼야 함
  • 물리 네트워크를 직접 만들지 않고 시험하려면 인터넷을 통해 Unsigned.io RNS Testnet에 연결할 수 있음
    • 테스트넷에는 이미 일부 Nomad Network 및 LXMF 활동이 있음
    • 연결 후 nomadnet을 한동안 실행해 페이지나 서비스를 호스팅하는 다른 노드의 announce를 받을 수 있음
  • 직접 연결을 시도할 수 있는 테스트넷 노드:
    • abb3ebcd03cb2388a838e70c001291f9: Dublin Hub Testnet Node
    • ea6a715f814bdc37e56f80c34da6ad51: Frankfurt Hub Testnet Node
  • 아직 알려지지 않은 노드의 페이지를 탐색하려면 프로그램의 Network 섹션에서 Ctrl+U로 URL 대화상자를 열고 주소를 입력한 뒤 Go를 선택하거나 Enter를 누르면 됨
    • NomadNet은 요청한 노드를 발견하고 연결하려고 시도함

Android와 Docker

  • Android에서는 Termux를 사용해 Nomad Network를 설치할 수 있지만, 일반적인 한 줄 설치보다 명령이 더 필요함
    • 절차는 Reticulum Manual의 Android Installation에 문서화돼 있음
    • Reticulum 설치 후에는 pip로 Nomad Network를 설치할 수 있음
  • 네이티브 Android 그래픽 앱이 필요하면 Sideband를 사용할 수 있음
  • Nomad Network는 GitHub Packages에 Docker 이미지로 자동 게시됨
    • 이미지 태그는 최신 커밋용 master 또는 특정 릴리스 버전 번호 형식임
    • 예시 버전 태그는 0.2.0
docker pull ghcr.io/markqvist/nomadnet:master
docker run -it ghcr.io/markqvist/nomadnet:master --textui
docker run -i ghcr.io/markqvist/nomadnet:master --daemon --console

도구, 확장, 로드맵

  • Nomad Network는 유연하고 확장 가능한 플랫폼이며, 커뮤니티 제공 도구와 노드 측 확장이 있음
  • 지원 요청, 토론, 아이디어 공유는 Nomad Network discussions pages에서 할 수 있음
  • 개발 로드맵의 새 주요 기능에는 네트워크 전체에 전파되는 bulletin과 discussion thread, 협업 지도와 지리공간 정보 공유가 포함됨
  • 개선·수정 항목에는 링크 상태 표시, 메뉴 이동 단축키, 노드 공유, 일부 OS의 내부 편집기 문제 수정, 실패 메시지 재시도 메커니즘 등이 포함됨

보안 상태와 주의점

  • Nomad Network는 베타 소프트웨어로 간주해야 함
  • 암호화 모범 사례를 매우 우선해 만들어졌지만, 외부 보안 감사를 받지 않았음
  • 프라이버시를 깨는 버그가 있을 수 있음
  • 감사에 도움을 주거나 후원하려면 연락하라는 안내가 있음

댓글과 토론

Hacker News 의견들
  • NextNav가 900MHz ISM 대역의 큰 부분을 가져가면 그렇지 않을 수 있음: https://news.ycombinator.com/item?id=41226802
    https://en.wikipedia.org/wiki/ISM_radio_band
    여기서 의견을 등록할 수 있음: https://www.fcc.gov/ecfs/search/docket-detail/24-240

    • 그 의견을 남기는 방법이 바로 보이지 않음. 내가 못 찾을 정도면 다른 사람들도 그럴 수 있으니 어디로 가야 하는지 알려주면 좋겠음
    • 댓글 영역을 못 찾겠음. 나이 들고 눈도 침침하지만 보이지 않고, 에이전트도 링크를 못 찾음
    • LoRaWAN WiFi가 WiFi 6인지 7인지의 일부로 900MHz 대역에 있으니, 최악의 경우에도 예외로 처리되길 바람
  • 관련해서 진행 중인 스레드가 있음:
    Private, Secure and Uncensorable Messaging over a LoRa Mesh (2022) - https://news.ycombinator.com/item?id=41256623 - 2024년 8월, 댓글 21개

  • 이게 사용하는 기반 Reticulum 네트워크는 패킷 라디오 같은 전송 매체를 많이 지원해서 꽤 흥미로움

    • Reticulum은 엄청 유연하고, 개발 중인 도구 생태계도 있음. NomadNet은 메신저 중 하나일 뿐이고, 모바일 앱 클라이언트인 Sideband(https://github.com/markqvist/Sideband)와 Liam Cottle이 개발한 브라우저 기반 클라이언트 Reticulum MeshChat(https://github.com/liamcottle/reticulum-meshchat)도 있음
      Reticulum은 초당 5비트 이상의 처리량과 500바이트 MDU만 있으면 어떤 매체에서도 동작 가능함. LoRa, BLE, 패킷 라디오, Tor나 I2P 같은 오버레이 네트워크 등 수백 가지 캐리어 위에서 동작할 뿐 아니라, 이 캐리어들이 같은 네트워크의 일부가 될 수도 있음
      HF 라디오 위에서 동작하는 빠른 개념 증명을 만들어봤음. 약 144km 떨어진 두 노드를 구성했고, 둘 다 ICOM-7300과 Raspberry Pi 5를 써서 Reticulum 패킷을 받아 무선으로 보내는 소프트웨어 모뎀을 구동했음: https://www.youtube.com/watch?v=blwNVumLujc
      노드 1은 야외에 있었고 노드 2는 집에 있었음. 노드 2에는 HF 모뎀용 인터페이스 하나와 TCP 테스트넷에 연결된 다른 인터페이스 하나를 구성했기 때문에, 노드 1이 TCP 테스트넷에 있는 모든 피어에 접근할 수 있었음
      Reticulum의 기본 개념을 설명하는 짧은 입문 영상도 있음: https://www.youtube.com/watch?v=q8ltLt5SK6A
    • 실제로 있는 거라니 웃김. Neal Stephenson 소설 Anathem에 나오는 가상의 reticulum 컴퓨터 네트워크 농담인 줄 알았음
    • 프로토콜의 지연 허용성 부분을 보고 있는데, 전송 수단으로 스니커넷까지 지원하면 완벽할 것 같음
      수정: 아니었음. 링크별 설정이 아니라 전역 수준으로 설정되는 듯함
  • 개념은 흥미롭지만, iOS/iPadOS 기기를 쓰는 사람들과 통신하기가 문제임. 보통 운영체제 제한 때문에 이런 앱을 사용할 수 없고[1], 네트워크 효과 때문에 대부분의 사람이 쓰기 매우 어려워짐
    [1] https://forums.developer.apple.com/forums/thread/685525

  • Android나 iOS 기기의 터치스크린 키보드로 입력하면서도 프라이버시가 보장된다고 느끼는 게 이해되지 않음
    진짜 프라이버시를 원하면 텍스트 캡처와 표시, 암호화, 암호화된 패킷 전송을 위해 베어메탈 코드로 동작하는 키보드/터미널을 Reticulum 클라이언트 위에서 암호화된 블롭을 보내는 식으로 써야 함
    예를 들어 유선 시리얼이나 Bluetooth일 수 있고, 별도 MCU로 네트워킹과 프로토콜을 처리할 수도 있음. 핵심은 바이너리 블롭 없는 검증된 코드를 베어메탈에서 실행하고, 암호화된 페이로드만 네트워크 노드로 보내는 것임. 가능하면 터미널 컨트롤러와 네트워크 컨트롤러 사이에는 TTL 시리얼 링크가 좋음

  • NomadNet/Reticulum은 Yggdrasil, IPFS, Nostr, Scuttlebutt와 어떻게 비교되는지 궁금함

    • 그렇게 서로 다른 것들을 비교하기는 어렵지만 시도해보겠음
      Scuttlebutt: Reticulum은 실시간으로 데이터를 라우팅하는 네트워크 스택이지, 탈중앙 소셜 네트워크가 아님
      Nostr: Scuttlebutt와 같음
      IPFS: Reticulum은 데이터를 전송하지 저장하지 않음. 다만 LXMF처럼 Reticulum 위에서 동작하는 일부 프로토콜은 임시 메시지 저장 기능을 선택적으로 제공함
      Yggdrasil은 언급한 것 중 Reticulum과 가장 가까운 유사 사례지만, 대충 찾아봐서는 동작 방식에 대한 세부 정보를 찾지 못했음. 현재는 IPv4 터널을 어느 정도 쓰는 형태로 IPv6 위에서만 동작하는 것으로 보이는데, Reticulum은 무엇 위에서든 동작한다는 점이 다름
      관심이 있다면 Reticulum이 어떻게 동작하는지 보려면 최소한 http://reticulum.network/manual/understanding.html은 읽어보길 권함
  • 빠르게 훑어본, 어쩌면 잘 모르는 상태의 사용성 메모임
    신원인 주소로 쓰이는 숫자를 사용자가 의미를 이해할 수 있는 방식으로 앞에 보여주는 점은 대부분보다 나음. 그 신원과 신뢰를 대화 상자에서 함께 다루는 방식도 비교적 이해 가능해 보임. 신뢰됨/신뢰 안 됨(알 수 없음) 외의 범주가 있는 건 좋은 생각이지만 즉시 이해되지는 않음. 사용자는 이 맥락에서 "trust"가 정확히 무엇을 뜻하는지 교육받아야 함
    사용자는 Curve25519를 쓰고 있다는 사실까지 알 필요는 없고, 어떤 형태의 암호화가 성립했다는 것만 알면 됨
    신원 번호를 16진수로 표시하는 건 가능한 진법 중 최악임. 식별용으로 익숙한 10진수나 더 짧은 base32가 낫고, 신원 번호는 도움이 되는 그룹화 방식으로 일관되게 보여줘야 함. 예를 들면 5자리씩 4그룹 같은 식임

  • 이걸 읽으니 아주 흥분됨. 오프그리드 메시 네트워크 구축은 내 SF 소설 'Mesh'의 중심 전제임: https://inkican.com/mesh-middle-grade-scifi-thriller/

  • Meshtastic이 떠오르지만, Nomad는 PC용이고 Meshtastic은 마이크로컨트롤러용인 것 같음
    https://meshtastic.org/

  • 찾아봤지만 못 찾겠음. 이거 감사를 받은 적이 있나?

    • “Nomad Network는 베타 소프트웨어이며 그렇게 간주해야 합니다. 암호학 모범 사례를 최우선으로 고려해 만들어졌지만, 외부 보안 감사는 받지 않았고 프라이버시를 깨뜨리는 버그가 충분히 있을 수 있습니다. 돕고 싶거나 감사 후원을 돕고 싶다면 연락해 주세요.”
    • 지금 단계에서는 비용을 내거나 모금 활동을 주도할 게 아니라면, 비상업 제품에 정식 감사를 기대하는 건 합리적이지 않다고 봄