Chan difficulty setting #1361

Open
opened 2018-10-09 19:09:47 +02:00 by PeterSurda · 1 comment
PeterSurda commented 2018-10-09 19:09:47 +02:00 (Migrated from github.com)

Currently, PyBitmessage assumes chans have a difficulty of 1. It will use difficulty 1 when sending to a chan, and accepts difficulty of 1 when receiving a message to chan. Chans were probably conceived as a dirty hack without too much additional work necessary. Another reason why there isn't a difficulty adjustment for chans is that there is no consensus mechanism for chan members to agree on a single difficulty.

There are ongoing spam attacks, e.g. in the "bitmessage" an "general" chan, sending a couple of thousands messages per day. These attacks use a unique sender address for each message (or at least most of them), so they can't be blocked with a blacklist. I received requests for a countermeasure. There can probably be endless discussions about how to approach it, however the easiest one is to allow chans to have higher difficulty, with flexible minimum threshold that does not need to be agreed upon exactly, with the risk that in some cases some people will not receive all messages. People running older versions or alternative clients may also have problems sending messages to the chan (well, they will be able to send, just others may filter their messages). This may be acceptable during a spam attack. Over longer term, as people upgrade and the thresholds smooth out, it would become less of an issue.

My proposal is to allow chan members to increase a difficulty of a message sent to the chan if they think it's being spammed. The recipient will then see that a message with higher difficulty arrived, and use to to adjust the minimum acceptable difficulty using some formula, and will drop new messages with lower difficulty. At the same time it will know it needs to use a higher difficulty when sending messages as well. The exact formula is open for a debate. considering there is no consensus mechanism and the messages don't arrive in a particular order.

Requesting feedback.

Currently, PyBitmessage assumes chans have a difficulty of 1. It will use difficulty 1 when sending to a chan, and accepts difficulty of 1 when receiving a message to chan. Chans were probably conceived as a dirty hack without too much additional work necessary. Another reason why there isn't a difficulty adjustment for chans is that there is no consensus mechanism for chan members to agree on a single difficulty. There are ongoing spam attacks, e.g. in the "bitmessage" an "general" chan, sending a couple of thousands messages per day. These attacks use a unique sender address for each message (or at least most of them), so they can't be blocked with a blacklist. I received requests for a countermeasure. There can probably be endless discussions about how to approach it, however the easiest one is to allow chans to have higher difficulty, with flexible minimum threshold that does not need to be agreed upon exactly, with the risk that in some cases some people will not receive all messages. People running older versions or alternative clients may also have problems sending messages to the chan (well, they will be able to send, just others may filter their messages). This may be acceptable during a spam attack. Over longer term, as people upgrade and the thresholds smooth out, it would become less of an issue. My proposal is to allow chan members to increase a difficulty of a message sent to the chan if they think it's being spammed. The recipient will then see that a message with higher difficulty arrived, and use to to adjust the minimum acceptable difficulty using some formula, and will drop new messages with lower difficulty. At the same time it will know it needs to use a higher difficulty when sending messages as well. The exact formula is open for a debate. considering there is no consensus mechanism and the messages don't arrive in a particular order. Requesting feedback.
amuuza commented 2018-10-14 18:20:25 +02:00 (Migrated from github.com)

I like it. I don't know if there are other proposals.
Chans definitely need a fix, so any try seems worth it to me.

I like it. I don't know if there are other proposals. Chans definitely need a fix, so any try seems worth it to me.
This repo is archived. You cannot comment on issues.
No Milestone
No project
No Assignees
1 Participants
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Bitmessage/PyBitmessage-2024-12-07#1361
No description provided.