Deliverable: a decision memo selecting the group-keying approach for E2E sync and sharing. See NOTES.md — Group crypto.
The structural problem: MLS (RFC 9420) assumes a delivery service imposing linear order on group-changing commits; concurrent commits fork the group. This system is partition-tolerant P2P — concurrency is the normal case — so raw MLS fights the architecture.
Candidates:
- MLS + an ordering layer over gossip/relay (fights the grain; membership changes need connectivity to a sequencer).
- DCGKA — Weidner/Kleppmann et al., Key Agreement for Decentralized Secure Group Messaging with Strong Security Guarantees: group keying designed for causal broadcast and concurrent membership changes.
- Keyhive / BeeKEM (Ink & Switch): capability auth + concurrency-tolerant group keying purpose-built for automerge sync. Closest-fit prior art; at minimum steal the decomposition, possibly track as a dependency.
CRDT-specific criteria beyond the usual FS/PCS checklists:
- History handoff: what a new member/device receives (full history vs snapshot) is a policy knob that sets the read-back window.
- PCS on a sync workload is weaker in practice: history persists; recovery from compromise includes re-encrypting the past — a rotation job, not a ratchet step.
- Implementation maturity and wasm-portability (must run in-guest or over polymorph:webcrypto's surface).
Also in scope: whether device-group (one user) and sharing-group (many users) use one mechanism — the unification leaning from the identity issue assumes yes.
Deliverable: a decision memo selecting the group-keying approach for E2E sync and sharing. See NOTES.md — Group crypto.
The structural problem: MLS (RFC 9420) assumes a delivery service imposing linear order on group-changing commits; concurrent commits fork the group. This system is partition-tolerant P2P — concurrency is the normal case — so raw MLS fights the architecture.
Candidates:
CRDT-specific criteria beyond the usual FS/PCS checklists:
Also in scope: whether device-group (one user) and sharing-group (many users) use one mechanism — the unification leaning from the identity issue assumes yes.