Rust로 분산 메시 네트워크 구축 — 글로벌 사우스의 교훈

발행: (2026년 4월 6일 AM 05:09 GMT+9)
9 분 소요
원문: Dev.to

Source: Dev.to

Rust로 구축한 탈중앙화 메시 네트워크 — 글로벌 사우스의 교훈 표지 이미지

Michael Muriithi

2.6 십억 명이 신뢰할 수 있는 인터넷 접근이 부족합니다. 재난이 발생하거나 인프라가 무너지거나 커뮤니티가 외딴 지역에 있을 때—전통적인 통신은 가장 중요한 협력이 필요할 때 정확히 무너지게 됩니다.

저는 케냐 나이로비에 사는 사이버보안 학생입니다. 커뮤니티가 연결성을 잃었을 때 어떤 일이 일어나는지 직접 보았습니다: 홍수 후에 가족들이 서로 확인할 수 없고, 구조팀은 조율에 어려움을 겪으며, 활동가들은 안전하게 조직할 수 없습니다.

그래서 저는 GhostWire를 만들었습니다 — 중앙 서버 없이도 작동하는 탈중앙화·검열 저항 메시 커뮤니케이션 플랫폼.

GhostWire란?

GhostWire는 Rust로 작성된 피어‑투‑피어 암호화 통신 플랫폼입니다. 서버에 연결하는 대신, 장치들이 서로 직접 연결됩니다. 메시지는 사용 가능한 경로를 따라 노드에서 노드로 전송됩니다.

  • 노드가 오프라인이 되면, 메시는 그 노드를 우회하도록 라우팅됩니다.
  • 인터넷이 끊기면, GhostWire는 Wi‑Fi Direct, Bluetooth, 혹은 LoRa 라디오까지 전환합니다.

Live site:
GitHub:

아키텍처

네트워킹: libp2p

우리는 libp2p — IPFS와 Ethereum이 사용하는 동일한 P2P 네트워킹 스택을 사용합니다. 이는 피어 탐색, 연결 설정, 멀티플렉싱을 처리합니다. 그 위에 라우팅을 위한 S/Kademlia‑강화 DHT와 메시지 전파를 위한 Gossipsub을 실행합니다.

// Simplified peer discovery
let swarm = SwarmBuilder::with_new_identity()
    .with_tokio()
    .with_tcp(
        tcp::Config::default(),
        noise::Config::new,
        yamux::Config::default,
    )?
    .with_behaviour(|_| Behaviour::new())?
    .build();

암호화: 방어 심화

모든 메시지는 디바이스를 떠나기 전에 종단 간 암호화됩니다:

레이어알고리즘목적
대칭AES‑256‑GCM메시지 암호화 + 무결성
키 교환X25519완전 전방 비밀성
서명Ed25519신원 검증
포스트‑양자ML‑KEM‑768미래 대비 (계획 중)

서버도, 릴레이도, 중간 노드도 평문을 볼 수 없습니다.

AI‑기반 라우팅

여기서 GhostWire가 흥미로워집니다. 고정 라우팅 규칙 대신, 우리는 바르셀로나의 GuifiSants — 세계에서 가장 큰 커뮤니티 메시 네트워크 중 하나 — 로부터 실제 메쉬 네트워크 데이터를 사용해 AI 모델을 학습했습니다.

  • L1 — LightGBM 이상 탐지기: AUC 1.0, 76.7 µs 추론, ONNX로 내보내어 Rust에서 ONNX Runtime을 통해 연결.
  • L3 — 그래프 신경망: 31일 동안 63개의 노드에서 7,931개의 샘플로 학습. 실제 환경에서 어떤 경로가 가장 좋은지 학습합니다.
# Training pipeline (simplified)
model = lgb.LGBMRegressor(
    n_estimators=500,
    learning_rate=0.05,
    max_depth=7,
    num_leaves=31,
)
model.fit(X_train, y_train)

onnx_model = convert_lightgbm(model, initial_types=initial_type)
onnx.save(onnx_model, "ghostwire_routing.onnx")

이 모델은 76.7 µs에 실행됩니다 — 라즈베리 Pi에서도 실시간 라우팅 결정을 내리기에 충분히 빠릅니다.

7개의 전송 레이어

전송범위사용 사례
Wi‑Fi Direct~100 m도시 메시, 디바이스‑투‑디바이스
Bluetooth LE~50 m실내, 저전력
LoRa~15 km농촌, 장거리
WebRTCInternet네트워크 간 브리지
TCP/IPInternet표준 연결
ReticulumMulti‑hop아마추어 라디오 메시
BriarBluetooth/Wi‑Fi활동가 통신

GhostWire는 사용 가능한 최적의 경로를 자동으로 선택합니다. 인터넷이 없나요? RF 메시로 전환합니다. Wi‑Fi가 없나요? 블루투스로 전환합니다. 메시는 스스로 적응합니다.

왜 Rust인가?

  1. GC 없는 메모리 안전 – GhostWire는 리소스가 제한된 디바이스(라즈베리 Pi, 구형 노트북)에서 실행됩니다. 비상 통신 중에 가비지 컬렉터 일시 정지를 감당할 수 없습니다.
  2. 두려움 없는 동시성 – 네트워킹 스택은 수백 개의 동시 피어 연결을 처리합니다. Rust의 소유권 모델은 데이터 레이스에 대한 걱정을 없애줍니다.
  3. 성능 – LightGBM 추론이 76.7 µs에 실행됩니다. 암호화는 하드웨어 가속됩니다. Rust를 사용하면 하드웨어에서 매 마이크로초를 짜낼 수 있습니다.

인간적인 측면

GhostWire는 단순한 기술 프로젝트가 아닙니다. 그것은 하나의 철학에 기반합니다:

힌두교와 불교 우주론에서 인드라의 그물은 무한한 웹입니다. 각 교차점에는 보석이 걸려 있고, 그 보석은 모든 다른 보석에 비춰집니다. 어느 보석도 더 중요하지 않습니다. 그물은 중심도, 가장자리도 없습니다.

원래 인터넷 설계자들은 수천 년 동안 아프리카 철학이 인코딩해 온 것을 독립적으로 재발견했습니다: 중앙 권위보다 상호 관계에 기반한 시스템이 더 회복력 있고, 더 공평하며, 존재 자체와 더 잘 맞는다는 점을.

우리는 GCD4F 2026 대회(글로벌 기후 데이터 포 미래) “AI for Society” 트랙의 일환으로, 케냐 오픈 대학교를 대표하여 이 프로젝트를 구축하고 있습니다.

우리는 기여자를 필요로 합니다

GhostWire는 AGPL‑3.0 라이선스를 가지고 있으며 활발히 기여자를 찾고 있습니다:

  • Rust developers – libp2p 네트워킹, 전송 레이어, 암호화
  • AI/ML engineers – GNN 모델 학습, 라우팅 최적화
  • Security researchers – 독립 감사, 위협 모델링

관심이 있으시면 GitHub 저장소에서 이슈를 열거나 풀 리퀘스트를 제출해 주세요. 함께라면 세계가 오프라인이 되더라도 메쉬를 살아있게 유지할 수 있습니다.

# Eat Modeling

역할

  • 프론트엔드 개발자 – React/TypeScript 대시보드
  • 문서 작성자 – 가이드, 튜토리얼, 번역

시작하기

  • Good first issues는 GitHub에 라벨이 붙어 있습니다.
  • 우리의 CONTRIBUTING.md에는 자세한 설정 안내가 포함되어 있습니다.
  • Website:
  • GitHub:
  • Docs:
  • Security:

Built in Nairobi, for the world. 🇰🇪

0 조회
Back to Blog

관련 글

더 보기 »

Friendica – 분산형 소셜 네트워크

탈중앙화 - 중앙 권한이나 소유권이 없는 탈중앙화 아키텍처. - 호환 가능한 모든 시스템 간에 관계를 형성할 수 있어, 네트워크를 생성한다.