L0: Transport Layer
Evade rather than encrypt.
The L0 Transport layer provides censorship-resistant communication that hides in plain sight.
Core Components
LWF: Libertaria Wire Frame
A lightweight binary protocol optimized for minimal overhead.
Frame Structure:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version | Frame Type | Flags |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Session ID (64 bits) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number (32 bits) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Timestamp (64 bits, nanosecond precision) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length (16 bits) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Payload +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MAC (128 bits, XChaCha20-Poly1305) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Key Properties: - Fixed 72-byte header: Predictable parsing, cache-friendly - 1350 byte MTU: Fits in single Ethernet frame with overhead - XChaCha20-Poly1305: Modern AEAD encryption - Nanosecond timestamps: Sovereign time synchronization
MIMIC Skins: Protocol Camouflage
MIMIC makes sovereign traffic look like regular internet traffic.
Available Skins
| Skin | Appearance | Detection Risk | Use Case |
|---|---|---|---|
MIMIC_HTTPS | TLS 1.3 + WebSocket | Low | General use |
MIMIC_DNS | DNS-over-HTTPS | Very Low | Restricted networks |
MIMIC_QUIC | HTTP/3 | Low | Modern firewalls |
STEGO_IMAGE | JPEG/PNG | Minimal | Total lockdown |
MIMIC_HTTPS Flow
Client Server
| |
|------ TLS 1.3 Handshake ------>|
|<----- Encrypted Extensions -----|
|
|---- WebSocket Upgrade (HTTP) -->|
|<---- 101 Switching Protocols ---|
|
|====== LWF Frames (encrypted) ==|
| |
Polymorphic Noise Generator (PNG)
Even encrypted traffic has patterns. PNG masks these:
Per-Session:
- Traffic shaping profile (Netflix, YouTube, generic)
- Epoch rotation (100-1000 packets)
- Deterministic padding (both peers derive same pattern)
Noise Protocol Framework
We use the Noise Protocol Framework for cryptographic handshakes.
Patterns Used
| Pattern | Use Case | Properties |
|---|---|---|
Noise_XX | Mutual authentication | Both parties authenticate |
Noise_IK | 0-RTT resumption | Fast reconnection |
Noise_NN | Ephemeral only | Plausible deniability |
PQXDH: Post-Quantum Extension
Hybrid handshake combining X25519 + ML-KEM-768:
Ceremony (4 ECDH + 1 KEM → 5 shared secrets):
1. Alice generates ephemeral X25519 keypair
2. Alice encapsulates to Bob's ML-KEM-768 public key
3. 4 X25519 ECDH operations
4. 1 ML-KEM-768 encapsulation
5. HKDF-SHA256 derives root key from 5 secrets
Kenya Compliance: <20ms handshake on ARM Cortex-A53
UTCP: Unreliable Transport
UDP-based overlay with reliability semantics:
Features:
- Packet fragmentation/reassembly
- Forward error correction (optional)
- Out-of-order delivery handling
- Congestion control (BBR-inspired)
OPQ: Offline Packet Queue
Persistent queue for offline-first operation:
pub struct OfflinePacketQueue {
wal: WriteAheadLog, // Append-only durability
retention: Duration, // 72h default
max_size: usize, // Configurable limit
}
impl OfflinePacketQueue {
fn enqueue(&mut self, packet: LwfFrame) {
self.wal.append(packet);
// Deliver when peer comes online
}
}
Sovereign Time Protocol
Nanosecond-precision time without centralized servers:
Mechanism:
1. Each node maintains local clock (hardware or NTP-synced)
2. Peers exchange timestamp samples
3. Apply Marzullo's algorithm for Byzantine fault tolerance
4. Derive confidence intervals, not absolute time
See RFC-0105 for full specification.
Implementation
| Component | Location | Status |
|---|---|---|
| LWF Codec | core/l0-transport/lwf.zig | ✅ Stable |
| MIMIC Skins | core/l0-transport/mimic/ | ✅ Stable |
| Noise Integration | core/l0-transport/noise.zig | ✅ Stable |
| OPQ | core/l0-transport/opq.zig | ✅ Stable |
| Sovereign Time | core/l0-transport/time.zig | ✅ Stable |
Further Reading
Hide in plain sight. Communicate freely. ⚡