Nice!
How does this handle groups?
Double ratchet NIP — Signal style DM encryption on Nostr. Deployed on https://iris.to
nostr:naddr1qvzqqqr4gupzq3frhevd89d3kxt2nwxg9vpck6y4evptdq7scff6j4gx3kapltxsqq2kgjzlx338g4zsfymky6ncw4r5ys6nw9rrx2qhejc
Double ratchet invites:
nostr:naddr1qvzqqqr4gupzq3frhevd89d3kxt2nwxg9vpck6y4evptdq7scff6j4gx3kapltxsqq2kve6tw9c9xn202eny56edvfjhxmzh2gkkuaadaur
Nice!
How does this handle groups?
Not yet I believe. But MLS will come!
I haven't done groups yet, but we can do it like signal: Group members send their group-specific Nostr public key & symmetric decryption key to all other users in the group. Rotate key now and then, at least when users leave the group.
Also for multi-device use we can do like Signal: have multiple double ratchet sessions with your own devices and devices of others, send to all of them. https://signal.org/docs/specifications/sesame/
Good to focus on DMs first.
For groups MLS is interesting, the Merkle tree makes key rotation on user exit a lot more scalable, plus it's designed for the "fediverse", which seems to translate well to nostr.