58 lines
3.5 KiB
Markdown
58 lines
3.5 KiB
Markdown
# 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:key` or `did:web` identifiers. 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 |
|