block / block/buzz

Support Marmot Protocol (MLS / RFC 9420) for scalable group E2EE

Open
#3,336 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Rust
Stars
32.7k
Forks
4.3k
Avg merge
1d 13h
Merged PRs (30d)
253

Description

### Motivation

**What problem does this solve?**
Buzz lacks scalable E2EE for group channels. Relay operators can read raw conversations, code diffs, and agent logs.

Existing solutions like NIP-17 don't scale well:
* **Payload bloat:** Encrypting $O(N)$ times per message gets slow in active rooms.
* **No FS/PCS:** A leaked key compromises past and future logs.
* **Agent churn:** Revoking access when an AI agent leaves requires spinning up a new room or trusting the relay.

**Who runs into it and when?**
Anyone running Buzz on remote/shared relays who wants privacy for team chats and AI agent workflows without killing performance.

---

### Proposed solution

Integrate **Marmot** (MLS / RFC 9420 over Nostr):
* $O(1)$ message payload size for groups, $O(\log N)$ group updates.
* Native Forward Secrecy and Post-Compromise Security.
* Clean access revocation when agents/users leave via epoch updates (`Commit` events).
* Direct fit for Buzz's Rust stack using `openmls`.

---

### Alternatives considered

* **NIP-17 wrappers:** Heavy $O(N)$ fan-out, no continuous group key agreement.
* **Shared static key:** Zero forward secrecy, manual key rotation on member leave.

---

### Additional context

* Spec: [github.com/marmot-protocol/marmot](https://github.com/marmot-protocol/marmot)
* OpenMLS: [github.com/openmls/openmls](https://github.com/openmls/openmls)

---

**Duplicates:**
None found.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.