Groups cryptography (E2E vs open-history)
Buzzio groups expose an explicit encryption-model choice.
End-to-end groups (sender keys)
Model
Signal-style sender keys:
- Each member distributes a sender key to the group membership using pairwise/session crypto as implemented.
- On send: derive message key from chain → AES-GCM encrypt → ECDSA-secp256k1 sign → broadcast one ciphertext to the group.
- On receive: verify signature → advance chain to message index → AES-GCM decrypt.
Hardware-accelerated AES-GCM is used where available for performance.
Retention / history properties
- Servers relay ciphertext for short catch-up windows (on the order of ~5 days for relay buckets).
- Buzzio does not keep a durable readable transcript of E2E group content.
- Late joiners do not automatically receive a full historical open archive.
When to use
Maximum content secrecy among members; accept that continuity for new joiners is limited.
Open-history groups (server-held DEK)
Model
Text / message bodies are encrypted under a data encryption key (DEK) held by the service for that group so that:
- Authorized member devices can decrypt history
- Late joiners can catch up
- Consistent deletes/tombstones work across devices
Media (planned): images, video, and files are stored as CDN bytes on Bunny (membership + signed URLs), with content-hash deduplication so identical files reuse one object. That is intentional shared-mode design — not sealed E2EE. See Shared media deduplication.
History (text payloads) may live in Cloudflare R2 via history workers for cost/scale; media objects live on Bunny.
Retention
Durable history on the order of ~365 days by default class (subject to plan and media-pool limits).
Privacy label
Open-history text is encrypted at rest under service-managed keys. Open-history media (after the planned change) is CDN-stored with access control, not operator-blind. Neither is sealed E2EE. Buzzio can operate the feature; Buzzio does not sell the content.
When to use
Teams, classes, and clubs that need shared backscroll more than sealed-operator secrecy.
Lifetime orthogonal to crypto
Both models can be permanent or temporary (temporary windows up to about 30 days / 720 hours depending on settings). Lifetime controls group existence; encryption model controls secrecy vs continuity.