3.5 KiB
3.5 KiB
Technology Suggestions for quicnprotochat
Transport & Networking
- LibP2P or iroh (from n0) — Decentralized peer discovery, NAT traversal (hole-punching), and relay fallback. Move beyond client-server to a mesh/hybrid topology where peers can communicate directly when possible.
- WebTransport (HTTP/3) — Expose QUIC transport to browsers, enabling a web client without WebSocket degradation.
- Tor / I2P integration — Onion-routed transport layer for metadata resistance. MLS protects content, but connection metadata still leaks to the server.
Storage & Persistence
- SQLCipher or libsql (Turso) — Encrypted-at-rest SQLite for durable group state, key stores, and message history.
- CRDT-based sync (Automerge / Yrs) — Conflict-free replicated data types for multi-device state synchronization without a central authority.
- Object storage (S3-compatible) — For encrypted file/media attachments with server-side ignorance of content.
Cryptography & Privacy
- ML-KEM + ML-DSA hybrid — Hybrid X25519+ML-KEM-768 KEM for MLS init keys. One of the first post-quantum MLS implementations.
- Private Information Retrieval (PIR) — Let clients fetch messages/key packages without revealing which recipient they are (SealPIR / SimplePIR).
- Sealed Sender (Signal-style) — Encrypt sender identity inside the MLS ciphertext so the server can't see who sent a message to whom.
- Key Transparency (RFC draft) — Verifiable log of public keys to detect server-side key substitution attacks.
Identity & Authentication
- DID (Decentralized Identifiers) — Self-sovereign
did:keyordid:webidentifiers. Portable across servers. - OPAQUE (aPAKE) — Password-authenticated key exchange where the server never sees the password.
- WebAuthn / Passkeys — Hardware-backed authentication for device binding (YubiKey, Touch ID, etc.).
- Verifiable Credentials (W3C VC) — Prove attributes (org membership, role) without revealing full identity.
Application Layer
- Matrix-style federation — Let multiple quicnprotochat servers federate for cross-server communication.
- WASM plugin system — Sandboxed WASM plugins for bots, bridges, custom message types.
- Double-ratchet DM layer — Signal-style double ratchet (X3DH + Axolotl) for efficient 1:1 conversations.
Observability & Operations
- OpenTelemetry (tracing + metrics) — OTLP export for distributed tracing, latency histograms, and dashboards.
- Prometheus + Grafana — Metrics on message throughput, MLS epoch advancement rate, queue depths.
- Testcontainers-rs — Docker stack in Rust integration tests for true end-to-end CI.
Developer Experience
- Tauri or Dioxus — Native cross-platform GUI client in Rust, sharing core crate.
- uniffi or diplomat — FFI bindings from Rust core to Swift/Kotlin for mobile clients.
- Nix flakes — Reproducible dev environment bundling capnp, Rust toolchain, and test infra.
Top 5 Priority Implementations
| Priority | Technology | Why |
|---|---|---|
| 1 | Post-quantum hybrid KEM | ml-kem already vendored — finishing this makes the project cutting-edge |
| 2 | SQLCipher persistence | Unlocks M6, multi-device, and offline usage |
| 3 | OPAQUE auth | Zero-knowledge passwords, massive security uplift for auth layer |
| 4 | iroh / LibP2P | NAT traversal + optional P2P mesh makes this deployable without central infra |
| 5 | Sealed Sender + PIR | Metadata resistance is the frontier — content encryption is table stakes now |