GotaTun – Mullvad의 Rust 기반 WireGuard 구현

1 month ago 13

  • GotaTun은 Rust로 작성된 WireGuard 구현체로, 빠르고 효율적이며 안정적인 VPN 연결을 목표로 함
  • Cloudflare의 BoringTun 프로젝트를 포크해 개발되었으며, DAITAMultihop 같은 Mullvad의 프라이버시 기능을 통합
  • 기존 wireguard-go에서 발생하던 충돌 문제를 해결하기 위해 Android 버전에 먼저 적용, 충돌률 0.40% → 0.01% 로 감소
  • Rust 기반으로 전환하면서 FFI 복잡성Go 런타임 불안정성 문제를 제거, 유지보수성과 디버깅 효율 향상
  • Mullvad는 2026년에 모든 플랫폼으로 GotaTun 확대보안 감사 및 성능 개선을 계획

GotaTun 개요

  • GotaTun은 Mullvad VPN이 개발한 Rust 기반 WireGuard® 구현체로, 빠른 속도와 안정성, 효율성을 목표로 함
    • Cloudflare의 BoringTun을 포크하여 개발
    • 이름은 BoringTun과 스웨덴 예테보리의 터널 Götatunneln을 결합한 형태
  • DAITAMultihop 같은 Mullvad의 프라이버시 강화 기능을 통합
  • Rust의 안전한 멀티스레딩zero-copy 메모리 전략을 활용해 성능 최적화
  • 2024년 11월 말 Android 버전에 배포 완료, 다른 플랫폼은 2026년 출시 예정

기존 wireguard-go의 한계

  • Mullvad의 모바일 앱은 수년간 Go 기반 wireguard-go를 사용해 왔음
    • 여러 VPN 제공업체가 동일한 구현체를 사용
  • 2024년 중반부터 Mullvad는 DAITA와 Multihop 지원을 위해 wireguard-go를 포크해 유지
  • 그러나 Google Play 개발자 콘솔에서 보고된 충돌의 85% 이상이 wireguard-go에서 발생
    • 일부 문제는 해결되었으나 다수는 여전히 남아 있음
  • Rust와 Go 간 FFI(외부 함수 인터페이스) 사용으로 인한 복잡성과 불안정성 존재
    • Go 런타임의 동작이 Rust 코드에서 불투명하며, 충돌 시 스택 추적 복구가 어려움
    • 이로 인해 디버깅과 장기 유지보수가 어려운 상황

Android에서의 결과

  • GotaTun 도입 후 단 한 건의 충돌도 발생하지 않음
    • wireguard-go에서 발생하던 모든 충돌이 제거됨
  • Android 앱 버전 2025.10(11월 말 출시) 이후 사용자 체감 충돌률이 0.40% → 0.01%로 감소
  • 사용자 피드백에서도 속도 향상과 배터리 사용량 감소가 보고됨

향후 계획

  • 2026년 초 제3자 보안 감사 진행 예정
  • 모든 플랫폼(데스크톱, iOS 포함) 에서 wireguard-go를 GotaTun으로 교체 예정
  • 성능 개선 작업을 지속 추진
  • Mullvad는 2026년을 GotaTun 확장의 주요 전환점으로 설정

Read Entire Article