πŸŒ™ LATE NIGHT MODE ACTIVATED β€” THE CLOWN IS WATCHING πŸŒ™

WireGuard
Explained.

The protocol that quietly replaced OpenVPN as the default for most modern VPNs. Smaller, faster, more boring. That's a good thing.

What WireGuard is

WireGuard is a VPN protocol designed by Jason Donenfeld and released in its first stable form in 2020. It was built with a single goal: replace the complex, configuration-heavy VPN protocols of the past (OpenVPN, IPsec/IKEv2) with something smaller, simpler, and faster.

It succeeded. By 2026, WireGuard is the default protocol for most commercial VPNs (ours included), is built into the Linux kernel since version 5.6, and has solid native or third-party implementations on every major platform.

The design philosophy

WireGuard's design choices are aggressive minimalism. Some examples:

  • One cipher suite β€” WireGuard uses ChaCha20 for encryption, Poly1305 for authentication, Curve25519 for key exchange, BLAKE2s for hashing, and HKDF for key derivation. No negotiation, no algorithm options, no legacy modes. If a vulnerability is found in any of these, you replace the protocol version wholesale.
  • UDP-only transport β€” no TCP option, no mode-switching. Faster and simpler.
  • Stateless server, by design β€” the handshake is brief, no connection-tracking required for mainstream operation.
  • Cryptokey routing β€” peers identified by public key, not by IP or credentials.
  • ~4,000 lines of code β€” compared to OpenVPN's ~70,000 and IPsec's hundreds of thousands.

How it works (briefly)

WireGuard sits as a network interface (like wg0) that your operating system treats as just another route. When you send a packet to an IP in the VPN's tunnel range, the kernel hands the packet to the WireGuard module, which:

  1. Looks up which peer corresponds to that destination (cryptokey routing).
  2. Encrypts the packet using the peer's pre-established session keys.
  3. Wraps it in a UDP packet and sends it to the peer's endpoint.

The peer receives the UDP packet, decrypts it, and emits the inner packet to wherever it was originally destined.

The handshake (which establishes the session keys) uses the Noise Protocol Framework. It typically completes in a single round-trip β€” fast enough that mobile users barely notice when networks switch.

Performance

WireGuard is genuinely faster than OpenVPN in most scenarios:

MetricWireGuardOpenVPN
Throughput (Gigabit link)~950 Mbps~250-400 Mbps
Handshake time~1 RTT (~5-50ms)~6 RTT (~50-500ms)
CPU usage at line rateLowHigh
Battery impact (mobile)LowModerate

The performance gap is real and consistent across benchmarks. For mobile users, the battery impact difference is especially noticeable β€” WireGuard's smaller handshake and more efficient crypto mean fewer wake-ups and less processor work.

Security

WireGuard's security has been the subject of multiple formal verification efforts and academic reviews. The design uses well-vetted cryptographic primitives, and the small code base makes vulnerabilities easier to spot. There have been no major security incidents in the protocol since release.

Known limitations:

  • Peer identification by IP persistence: because WireGuard maps public keys to last-known IPs, a peer's traffic patterns are slightly more traceable than OpenVPN's. In commercial VPN deployments, providers typically handle this with dynamic IP assignment.
  • No native authentication beyond public keys: for VPN providers, this means there's no username/password built into the protocol; user identity is handled at a different layer.
  • MTU sensitivity: some networks with unusual MTU configurations require manual tuning.

WireGuard at ClownVPN

We use WireGuard as our default protocol on Android. The choice was straightforward: faster, lower battery impact, smaller attack surface. Our implementation uses wireguard-go, the official Go implementation maintained by the WireGuard team.

For users on networks that block UDP (some corporate environments, restrictive hotel WiFi), we fall back to OpenVPN over TCP. See our OpenVPN explainer for details on when the fallback kicks in.

Where to learn more

Related reading

πŸŽͺ FAQ

Is WireGuard actually faster than OpenVPN?
Yes, measurably. In benchmarks across different hardware, WireGuard typically achieves 2-3x the throughput of OpenVPN on the same connection, and uses noticeably less CPU. The reasons: WireGuard runs in the kernel (on Linux) or in efficient native implementations on other platforms, uses a smaller and faster cipher suite (ChaCha20-Poly1305), and has a simpler handshake that's often complete in milliseconds versus seconds for OpenVPN.
Why is WireGuard's code base so small?
Deliberate design choice. The original WireGuard implementation is around 4,000 lines of code, compared to OpenVPN's ~70,000+ lines and IPsec's ~400,000+. The smaller surface makes the code easier to audit, less likely to contain bugs, and easier to formally verify in parts. The trade-off is fewer features β€” WireGuard doesn't try to do everything; it does the core VPN job and lets the OS / userspace handle the rest.
Does WireGuard have any security disadvantages compared to OpenVPN?
Two minor ones. (1) WireGuard's design assumes peers have static identifiers (public keys mapped to IPs), which makes some kinds of identity rotation more involved than in OpenVPN. (2) WireGuard doesn't natively support 'fragmentation' the same way OpenVPN does, which can cause MTU issues on weird networks. Both are addressed by reasonable client implementations but it's worth knowing they exist.
Is WireGuard's UDP-only nature a problem?
On most networks, no β€” UDP is the right choice for performance. But some restrictive networks (corporate firewalls, certain hotel WiFi, some censored country networks) block UDP entirely. OpenVPN can fall back to TCP-over-HTTPS-looking traffic in those environments. WireGuard implementations sometimes wrap UDP in TCP or use companion tools (udp2raw, wstunnel) but it's not native.
Does ClownVPN use WireGuard?
Yes β€” WireGuard is our default protocol on Android. We use the official wireguard-go implementation. We also offer OpenVPN as a fallback for users on networks that block UDP or have other compatibility issues.

πŸŽͺ WireGuard, Free

Default protocol on Android. Fast handshake. Low battery impact.

πŸ€– Get The Free App