-
Notifications
You must be signed in to change notification settings - Fork 451
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 channels crowdsourcing system (VSIDS) #6217
Comments
This alters the core of Tribler, so we need to think very carefully. I don't want to rush this in any way. Sorry for this formal bureaucratic procedural reaction. What is the design motivation behind the cardinal feature of making the tag space private permissioned property? Did you read the years of available prior work, before designing this architecture, if so how does it related to the prior art? |
It will not alter anything. Tribler is already collecting VSIDS stats by passively observing channels other people suggest, and storing the stats locally. The change will just extend the same local mechanism to collect stats about the incoming CR suggestions. So, no changes to protocols, core principles, etc. 🤷
The tag space is not going to be private property. If you search my comment for the word "tag", I'm not mentioning it at all. The issue is about adapting the rating system we already use (VSIDS) to discern between popular and unpopular CRs. That's it. No mention about tags. (The tags issue is the different one.)
Yes, I've read all the papers you suggested when I joined the team. I thoroughly read every paper you suggest. I take it seriously. Also, we are constantly discussing the Sybil problem with @grimadas , he is suggesting papers, and I read those too. The primary problem with every decentralized rating system I've read about is that such systems become more susceptible to Sybil attacks the more transitivity there is. The VSIDS-based system that is already working in Tribler for two years sidesteps this problem by allowing no transitivity at all . In fact, VSIDS is just a way of calculating temporal PageRank
It already works in Tribler. For years. p.s. |
The channels crowdsourcing system is based on a concept of a change request (CR) to a channel. Each CR must be confirmed by the channel's owner. This is really easy to achieve in a centralised system with fixed identities, high availability, and no risk of a Sybil attack.
Problem statement
Design a system for suggesting atomic changes (CRs) to a Tribler Channel, that will be:
The Solution
Reuse the existing VSIDS-based Channels rating system. Rank CRs inside a channel the same way we rank channels, ask users if they "recommend" 👍 a CR analogous to how they subscribe ✔️ to a channel.
Long description
Each CR is an atomic change to a particular Channel entity, such as adding or renaming a torrent or a channel folder. There are three kinds of participants in the system:
The system works as follows:
This way, CO gets to know about CR eventually. If CO keeps their Tribler instance running long enough, they will get a good picture of what CRs are supported in the community of the channel, and which are not. If CO likes the CR, they will accept it and as soon as the channel is updated for all subscribers, CR entries will get deleted/merged in CS databases. If CR is rejected, it will die out eventually.
In this system, CS-es will work as both a crowdsourced spam filter, change voters and intermediary CR storage. As a result, it is in everyone's best interest to keep their Tribler instances walking as long as possible: COs get more stats, CS-es get updates, influence and engagement, while SA's keep pushing their CRs to the community.
Note the system is very gentle on everyone's attention span: no one have to work through tons of queued up 💩 to get to the relevant stuff. Instead, there is a constant, community-curated feed of suggested changes sorted by relevance.
Implementation
The system will reuse the existing components: MetadataStore, VSIDS, RQC. On the Core side, it will require minimal changes, such as support for per-channel VSIDS ratings. On the GUI side, it will require adding a sorted feed of proposed changes and the CR interface such as described in #6208
The text was updated successfully, but these errors were encountered: