One obvious way this could be addressed are blocklists, but I can see that go *very* badly.
Another could be just being vile to the vile (this could also go sideways).
I don't know if nostr:nprofile1qyvhwumn8ghj7urjv4kkjatd9ec8y6tdv9kzumn9wshsz9thwden5te0dehhxarj9ehhsarj9ejx2a30qyd8wumn8ghj7ur4wfshv6tyvyhxummnw3ezumrpdejz7qgjwaehxw309ajhjetn9enrw73wd9hj7qgewaehxw309akkzarjd9uzuer9wfnkjemf9e3k7mf0qqsxu35yyt0mwjjh8pcz4zprhxegz69t4wr9t74vk6zne58wzh0waychnn7yc was joking but clients should actually offer protection against that kind of stuff -- perhaps not explicitly, but by means of allowing advanced relay choice for each kind of action and circumstance.
One obvious way this could be addressed are blocklists, but I can see that go *very* badly.
Another could be just being vile to the vile (this could also go sideways).
Blocklists and client-side filtering cannot do what proper relay selection can, because bad users can still make you use all your bandwidth and CPU on their trash.
Even rate-limits are already a form of moderation, so there is no point to not do better than that, and custom.