Adds the third federation layer above consensus + threshold-auth: the
collaborating set forms an MLS group (RFC 9420, via openmls) and derives a
shared group key with NO central server, so collaboration traffic is end-to-end
encrypted among members — the ownerless property.
tests/mls_keying.rs demonstrates it with three members: Alice founds the group
and adds Bob (both export the same group secret), then adds Carol (a new epoch;
Carol derives the same shared secret). It also asserts a member an epoch behind
derives a DIFFERENT secret — the forward-secret, epoch-bound property MLS gives.
openmls is a dev-dependency, so the library's runtime deps stay light.
So consensus (LockstepCluster, BFT), protected-op authorization (FROST t-of-n),
and group keying (MLS) are all implemented and tested. The one remaining
federation layer is the network transport (CommunicationOS/MoQT) — the wire
between members.
cargo test --workspace green; conformance pack still passes with no skips.
Co-Authored-By: Claude Opus 4.8 <[email protected]>