Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sybil-resistant decentralized forums system #6043

Closed
ichorid opened this issue Mar 30, 2021 · 3 comments
Closed

Sybil-resistant decentralized forums system #6043

ichorid opened this issue Mar 30, 2021 · 3 comments

Comments

@ichorid
Copy link
Contributor

ichorid commented Mar 30, 2021

Current Channels architecture allows us to build a distributed forums system by reusing most of its building blocks, such as signed entries store, VSIDS popularity heuristic, etc.

Most important design points:

  • tree-based forum a la Reddit
  • users can vote up 👍 or 🚫 other users' messages
  • votes propagate back to the root, amount dropping exponentially. Example: message reply chain root(A) <- B <- C, voting for C gives A: +0.25; B: +0.5; C:+1 votes. See the algorithm winning DARPA balloon challenge 🎈
  • votes decay exponentially, VSIDS-style
  • votes are non-transitive, always counted locally
  • only personally voted messages and their ancestors are accepted (pull-based gossip) from other peers
  • votes for authors scoring high can be considered "reliable" in other forums/channels as well and pulled in speculatively

Top-level forums list design:

  • top-level list of forums uses the same VSIDS heuristic for forums popularity ratings. Subscribing works the same way as in Channels: pull-based gossip for a list of subscribed forums
  • each forum is a separate IPv8 community

(This description is WIP, illustrations coming soon)

@synctext
Copy link
Member

synctext commented Apr 7, 2021

tree-based forum a la Reddit

Lets schedule this after the pull request feature has been implemented on channels and we made progress on the Tribler roadmap. Nobody has ever been able to decentralise Youtube, Google search or Reddit discussions. "Estimation 1 months" means we're miscommunication the features I believe. Our first attempt and failure with this was in 2011 with CommentCast. Read the full master thesis report here.

We first need to make components like the VSIDS popularity heuristic resilient to attack. Anybody with a bit of skills and 100 💶 in VPN/VPS hardware can take our network down I believe.

@ichorid
Copy link
Contributor Author

ichorid commented Apr 7, 2021

We first need to make components like the VSIDS popularity heuristic resilient to attack. Anybody with a bit of skills and 100 euro in VPN/VPS hardware can take our network down I believe.

We're already using VSIDS to calculate popularity in the Channels system. Indeed, what you say is true even now: if someone creates a couple of hundred malicious nodes in the current Channels system, they can flood it with an endless stream of junk channels. Does that mean that we should take down the current Channels system in fear of this? Does that mean that we should put on hold the thumbnails and description feature that is already in main? Does that mean that we should not do the Wikipedia channel project? Does that mean we should take down the MusicDAO? Hell, that is even true for exit nodes! Anyone can flood the system with lots of fake exit nodes. The system will stop functioning right at that moment. Should we take down the tunnels system then? etc.

Adding a VSIDS-based forum rating system will not add more risks than we already have. Indeed, it will just make our current vulnerabilities more obvious. Like adding the "Popular" tab did with the Torrents Popularity system. While we're still under the radar, we have the luxury of being able to prioritise getting knowledge ("The Effective Engineer" states that in its opening chapter).

@ichorid ichorid added this to the Backlog milestone Sep 28, 2021
@ichorid ichorid removed their assignment Feb 17, 2023
@drew2a
Copy link
Contributor

drew2a commented Jun 3, 2024

It is not relevant anymore:

@drew2a drew2a closed this as completed Jun 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

3 participants