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

Whitewashing-proof reputation system #4015

Closed
ThomasdenH opened this issue Nov 12, 2018 · 10 comments
Closed

Whitewashing-proof reputation system #4015

ThomasdenH opened this issue Nov 12, 2018 · 10 comments

Comments

@ThomasdenH
Copy link

I have a question about the Turstchain balance. Isn't it trivial to reset any negative balance to 0 by deleting local Tribler data? Doesn't that mean that bad actors employing this technique can only be punished as severely as new users?

@Dmole
Copy link
Contributor

Dmole commented Nov 12, 2018

yes, I recommended a solution here;
#3657 (comment)

@ThomasdenH
Copy link
Author

Alright, I'll close this. But it seems like a quite fundamental issue. Someone who has only leeched for a week should not get preference over a new user, and in an anonymous system it is inherently impossible to have a lasting reputation.

@Dmole
Copy link
Contributor

Dmole commented Nov 13, 2018

I'd leave this issue open for now.

@ThomasdenH
Copy link
Author

Allright then. Let me layout the incentives as I understand them:

  • If a negative balance is penalized, users are incentivized to delete the relevant local data to reset their balance. If this can be called an attack, the attacker has an advantage compared to honest users with a negative balance.

  • If a slight negative balance is favored to completely new users, participants are incentivized to download from the network even if they don't use the data. Clearly this is not ideal either.

It seems that the game theoretic conclusion then becomes that a negative balance should be treated in the same way as a balance of 0, which means that new users are penalized as much as leech-only network nodes. It is possible to favor users with a positive balance, but since network capacity is limited, this is equivalent to a penalty for others.

This issue is due to the possibility of a negative balance. Usually a monetary system only has debt with the understanding that it should be paid back, which requires accountability.

@devos50
Copy link
Contributor

devos50 commented Nov 13, 2018

Very good question. The attack you are referring to is called the whitewashing attack since it allows users to 'whitewash' their accumulated reputation and re-join the system under a new identity. This is indeed an open challenge. One approach to fix this is by requiring validated identities (i.e. by linking some real-world personal data like a bank account). Our lab is working on a decentralized identity system (see Tribler/py-ipv8#328) where users are verified by a governmental stamp (attestation) but we doubt that it is a good idea to integrate this into Tribler.

Since more and more users are joining the Tribler network (as indicated by the growth of our blockchain and results from the network crawler), we have become a bit conservative and focus on stability first. Also, @Captain-Coder is working on the problem to detect free-riding behavior (see also #2571). Before we decide on a policy, we should first investigate available TrustChain records and see how a different policy effects usability.

The solution proposed by @Dmole:

The only way to make credits useful (unhackable) would be to make a history (of any sort) count for more than a weeks worth of seeding. (a fresh account should get less priority than a week old account with -1k points)
The UI would have to make this clear with
"seniority:5 weeks, credits: -1k = rank 4k"
vs
"seniority:5 minutes, credits: 1 = rank 1"

I think this addresses the issue and we will keep this in mind when doing more work on the whitewashing attack. Presenting this kind of information to the user is non-trivial.

@ThomasdenH
Copy link
Author

[...] we have become a bit conservative and focus on stability first.

Thank you for this.

I think this addresses the issue and we will keep this in mind when doing more work on the whitewashing attack.

It addresses the issue in the sense that it dis-incentivizes whitewashing. It doesn't fix the issue that new users are on the bottom of the reputation ladder, together with or even below the worst freeriders.

@Dmole
Copy link
Contributor

Dmole commented Nov 13, 2018

ThomasdenH, "Together but not below";
The problem with any solution that results in a different outcome is it requires loss of anonymity which is the main attractor to Tribler so most users would jump ship.

Anyway It's not a pressing issue for now as points are not worth anything yet (AFAIK) . The ~48 issues tagged as bug or worse should take priority.

I do hope that before points become worth anything this issue is addressed and the points are reset for all users.

@devos50
Copy link
Contributor

devos50 commented Nov 19, 2018

Yes, we will definitely address this issue at one point, but not for the 7.2 release. As indicated by the amount of issues left for this milestone, we have more than enough work to do. I will postpone this issue.

@devos50 devos50 modified the milestones: V7.2: Credit mining and trading, Backlog Nov 19, 2018
@ichorid ichorid changed the title Question about balance Whitewashing-proof reputation system Jul 17, 2020
@Dmole
Copy link
Contributor

Dmole commented Feb 15, 2021

v7.8.0 "Showed token balance again" without fixing this.

@qstokkink qstokkink removed this from the Backlog milestone Aug 23, 2024
@qstokkink
Copy link
Contributor

It looks like the question of OP has been answered years ago and the remaining discussion is about the token component that was also removed years ago. I'll close this issue now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

5 participants