You can easily delete contacts you don't want to receive messages from -- and in fact the UI is lacking in this regard: if you delete someone and subsequently change your mind, the only way to fix this is to edit the config file manually and remove them from the list of blocked contacts.
Source: am a very happy Ricochet user.
That's where spam forces us to choose between blacklisting people and whitelisting (which breaks anonymity).
But say you're a journalist who wants to protect their source (on your end) e.g. a total stranger who is going to tell you some secrets then no need to even have a contact list. No need for a history. You just use the ricochet-id once. Maybe in a short-lived VM, Qubes or Tails whatever ... And tear down the whole system anyway once I'm done with the chat.
So in the first case you can simply avoid spam with boostrapping a safe rendezvous point, the second case would never see any spam.
The entire early Internet worked this way and it was lovely.
If you're a journalist who wants to receive a message from a total stranger, then you'd have to accept a contact request from a that stranger. Spammers can then deny the journalist access to anonymous requests by spamming them with anonymous requests.
The journalist could try to keep their contact ID a secret, but then anonymous sources would have no idea how to contact the journalist.
as mentioned you can use other anonymous channels before you switch to another one such as ricochet. the point isn't to establish authenticity before moving to anonymity but to add a layer of protection that allows you to decide on the rendezvous point and further increase plausible deniability
But people can spam your email account as well. When this became a problem, spam filters were developed. There's no reason the same thing couldn't happen in Ricochet if spam became a problem.
Ricochet's problem isn't that too many spammers are using it. It's that almost nobody at all is using it.
I'm not saying that spam is a problem today, but that the design goals of Richochet don't allow it to deal with the spam problem for users who actually want anonymous messaging.
There is nobody to send abuse complaints to, by design, and therefore no requirement to be able to respond to them.
It describes one of its goals as, "Resist blacklisting or denial of service against users."
Preventing both blacklisting and DoS seems contradictory to me in an anonymous messaging protocol. If an anonymous party wants to spam me to make the product effectively unusable, I either need to be able to blacklist them, or to whitelist known contacts, in which case none of them are anonymous.