-
GotaTun은 Rust로 작성된 WireGuard 구현체로, 빠르고 효율적이며 안정적인 VPN 연결을 목표로 함
- Cloudflare의 BoringTun 프로젝트를 포크해 개발되었으며, DAITA와 Multihop 같은 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을 결합한 형태
-
DAITA와 Multihop 같은 Mullvad의 프라이버시 강화 기능을 통합
-
Rust의 안전한 멀티스레딩과 zero-copy 메모리 전략을 활용해 성능 최적화
- 2024년 11월 말 Android 버전에 배포 완료, 다른 플랫폼은 2026년 출시 예정
기존 wireguard-go의 한계
- Mullvad의 모바일 앱은 수년간 Go 기반 wireguard-go를 사용해 왔음
- 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 확장의 주요 전환점으로 설정