Private-Groups Spec (v1)
A specification for implementing private groups in scuttlebutt.
The fundamentals of this spec are:
- uses envelope for encryption of content
- has group_ids which are safe to share publicly
- adding people to the group is done with group's knowledge
- supports disclosing of message content
- but this leaks info about the group (peak at other messages / authors)
envelope encryption in scuttlebutt
In adition to the envelope-spec, there are some scuttlebutt-specific specifications
See spec here
recipient key derivation
box1 took feedIds from the content.recps
field and directly used these for encryption.
In envelope, we instead take "ids" from content.recps
, and map each to a pair{ key, key_type }
where":
key
is the shared key which we're going to a key_slot
, andkey_type
is the "key management schema" which that key is employing
Type of id | How key is found | scheme |
---|
private group id | a key-store | "envelope-large-symmetric-group" |
classic feedId | diff-hellman styles | "envelope-id-based-dm-converted-ed25519" |
published private key | TODO | "envelope-signed-dh-key-curve25519" ?? |
see key-schemes.json
for the canonical list of accepted
group management
A minimal amount of agreement to make coordination easier:
TODO
describe
- how all these things might be woven together
- where state is tracked off-chain (in a key-store)
scuttlebutt private-groups spec (v2)
Could modify this spec:
-
-
-
- supports privacy fiendly disclosing of message content
- all internal cypherlinks are "cloaked"