BlogMessenger
How to deal with spam in public chats?
Messenger

How to deal with spam in public chats?

N
Nick Bolduc
on Dec 15, 2021
Tired of working for a living? Want to sit at home, do nothing, and earn thousands?

Currently, many of the public chats in Status are bombarded with spam. But why is this a problem for Status, and not many other chat applications? The foremost solutions to spam generally lead to contradictions with our principles. Specifically, solutions to spam in Status should be...

  • Decentralized: spam filtering mechanisms should not rely on a centralized server or decision-making authority (thus, a single entity deciding what is or is not spam is not feasible)
  • Transparent: Status is—and will always be—open source, so proprietary spam filtering solutions are not feasible.
  • Censorship resistant: Status is committed to enabling the free flow of information. We do not surveil content, nor do we want to jeopardize our stance as an agnostic platform for information. Solutions to spam that lead to non-malicious users being censored are not feasible.
  • Private: Status is determined to protect privacy and remain a pseudo-anonymous platform, striving to provide the right of total anonymity. Solutions that involve collecting personal information like phone numbers or email addresses are not feasible.

So how do we solve the problem, given these constraints? The existing countermeasures to spam are:

  • a size limit on outgoing and incoming messages
  • a rate limit of 5 messages per second
  • a block feature that allows users to block other users (e.g. spammers)

However, as can be observed in many of the public chats, these countermeasures are still not preventing a lot of spam.

Some further options that have been proposed by community members and contributors include:

A setting to only show messages from people with ENS names. This would filter any spam sent from accounts without ENS names, but would also filter messages from non-malicious users.  It would reinforce the existing countermeasure of blocking users as well—blocking a spammer with an ENS name is more effective, because it becomes less financially viable for a spammer to create new accounts to continue spamming (this is not to say that there are no spammers that can afford buying ENS names, rather that it may not be worth it for a spammer to do so).

Remove public chats entirely. This would have the fairly obvious consequence of preventing spam in public chats, but will also impede any users currently relying on public chats. The experience in public chats dealing with spam is effectively unusable in their current state, although not all public chats have these issues.

Allow users to share block lists. This would mean each user can expend far less effort to arrive at a block list that filters the spam. However, it still requires continued effort on the part of users to have a spam-free experience in public chats.

Cryptoeconomic decentralized moderation. A system by which people stake tokens to chat (or to obtain chatting privileges), and could stake tokens to report a message as spam, and would be rewarded if a sufficient number of people report the message. This type of solution would incentivize and reward users for their efforts in combating spam, but is nontrivial to implement and would have to be handled carefully to avoid creating incentives or mechanisms for abuse (e.g. coordinating reports of non-malicious posts)

Keyword filters. Much like keyword filtering on Twitter, a user could automatically filter all incoming messages that contain words or phrases like "earn thousands", "Viagra", etc. This is a relatively trivial feature, but is also prone to incorrectly classifying and filtering messages. It's difficult to capture every spam message without also capturing several legitimate messages, and allowing all legitimate messages likely means allowing several spam messages. Which leads to...

Bayesian spam filtering in clients. This sort of filtering relies on more complex mechanisms than (just) word presence to classify messages. Implementation is tricky given Status's commitment to decentralization, but a system that handles filtering at each user's client is feasible. Users could choose and import spam-classification databases, and their clients would filter according to the users' preferences.

Status is focusing resources on delivering tokenized communities, which will have different mechanisms for preventing this problem, but in the meantime we should do something about the spammed public chats.

The question is: what? What should we do? What do you think?

Let us know, either in the comments, on our Twitter, or in our Discuss forums. Your input drives Status.

For additional discussion, see this recent Discuss post, or our previous blogs on the subject.

NI
Nick Bolduc
Share article on: