DMs aren't used all that much right now, and maybe clients could only request all DMs within the last X amount of time by default to reduce the amount of bandwidth, only requesting older DMs if the user scrolls up and requests to "load previous" or "search for previous." That would help with the bandwidth considerations. The benefits for spam mitigation is what I am more interested in. Maybe not a terrible tradeoff. Are we basically admitting that NIP-17 DMs are the best we're going to get for the time being, and we should just make them as good as they can be. I know there have been some struggles getting MLS to play nice with Nostr, especially for group chats. I think I more or less understand how your proposal would work, as @Vitor Pamplona explained it. I assume that since you still don't see the pubkey of the sender, each side of a given conversation would have its own public conversation code?