status-im / specs

Specifications for Status clients.
https://specs.status.im/
MIT License
14 stars 14 forks source link

Limit flooding of Community Owner's nodes #163

Open D4nte opened 2 years ago

D4nte commented 2 years ago

Problem

Currently, the Waku (v2) network does not implement anti-spam solutions. Work is currently in progress with RLN https://github.com/status-im/nim-waku/issues/394 https://rfc.vac.dev/spec/17/.

In the following Community type:

Community Owner's nodes have to process and, for manual approval community types, request the Community owner to take action for incoming join requests.

With the current design, the Community Owner and their node can be subject of flooding attacks:

  1. In the case of a restricted community, an attacker could create new keys for each message
  2. In the case of a token gated community, if the token requirement is low (e.g 1 token to participate, token cost a few cents), the user could setup several accounts and flood using them

Proposed solution

  1. Investigate the use of centralized service hCaptcha (not preferred)
  2. Design a decentralized captcha system
D4nte commented 2 years ago

@cammellos @John-44 I tried to summarize the problem we are trying to solve, please let me know if I am correct.

D4nte commented 2 years ago

Regarding 2, I am not convinced it can be an issue. If a community is token gated then the Community Owner should set the minimal number of tokens to a significant amount (e.g. $5) to stop this kind of flooding.

Can you please clarify what is the possible spamming scenario with token gated communities?

D4nte commented 2 years ago

Here are some relevant research done for project plebbit:

D4nte commented 2 years ago

The project plebbit is still designing their decentralized captcha. I am not totally convinced at this stage that we can apply their design to an application level as their design rely on nodes being aware of the captcha protocol and being able to block out spammer that sends captcha challenge requests without captcha challenge solutions.

It means that such design would sit better at Waku protocol level. I haven't researched whether an application level protocol could work.

D4nte commented 2 years ago

After further review, please note that it should be possible to use RLN in this scenario.