I'm creating an issue instead of a PR because I don't fully understand the protocol yet and would like to get some feedback before proposing breaking changes.
The problem:
MIP-03 states that clients should include an h tag with the nostr_group_id value from the marmot extension data. This is separable to spam since any observer can read the h tag and publish bad data that clients will have to download and attempt to parse.
Proposal 1:
Create version 2 of the marmot group data extension that has a nostr_group_key with a 32 byte private key that can be rotated in a similar way to the existing nostr_group_id. Then this key should be used by all members of the group to encrypt, sign, and publish the kind 445 events.
This should mitigate the spam problem since only members inside the group could publish valid kind 445 events. This shouldn't' effect the anonymity of group members either since there isn't a difference between publishing with a common h tag and a common key
Proposal 2:
Similar to proposal 1 but use the MLS exporter_secret to derive a nostr private key to encrypt, since, and publish the kind 445 events.
I don't fully understand what the exporter secret is used for in MLS but its available and seems to be indented to allow MLS bind to other protocols. the downside of this would be that the nostr private key (and by extension pubkey) would rotate every commit. which could make it difficult for clients to follow?
I'm creating an issue instead of a PR because I don't fully understand the protocol yet and would like to get some feedback before proposing breaking changes.
The problem:
MIP-03 states that clients should include an
htag with thenostr_group_idvalue from the marmot extension data. This is separable to spam since any observer can read thehtag and publish bad data that clients will have to download and attempt to parse.Proposal 1:
Create version 2 of the marmot group data extension that has a
nostr_group_keywith a 32 byte private key that can be rotated in a similar way to the existingnostr_group_id. Then this key should be used by all members of the group to encrypt, sign, and publish the kind 445 events.This should mitigate the spam problem since only members inside the group could publish valid kind 445 events. This shouldn't' effect the anonymity of group members either since there isn't a difference between publishing with a common
htag and a common keyProposal 2:
Similar to proposal 1 but use the MLS
exporter_secretto derive a nostr private key to encrypt, since, and publish the kind 445 events.I don't fully understand what the exporter secret is used for in MLS but its available and seems to be indented to allow MLS bind to other protocols. the downside of this would be that the nostr private key (and by extension
pubkey) would rotate every commit. which could make it difficult for clients to follow?