BuzzioDocs

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:

  1. Each member distributes a sender key to the group membership using pairwise/session crypto as implemented.
  2. On send: derive message key from chain → AES-GCM encrypt → ECDSA-secp256k1 sign → broadcast one ciphertext to the group.
  3. 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.