Search code examples
securitycryptographyp2ptrust

An algorithm for distributed or decentralised reputation/trust


Does anyone know of an algorithm for computing how much you 'trust' another user (their reputation) in a decentralised system.

Sites like this one use a centralised authority to track reputation points, but when you can't trust an authority to maintain this list impartially, or the infrastructure doesn't exist, how can you rank your peers' reputation?

I'm imagining something akin to PageRank - I trust my friend Alice, she trusts her friend Bob, therefore I have some transitive trust for Bob. If my other friend Carol also trusts Bob, then my trust for Bob increases.

Is there some way of computing this globally, or does each user have to track their own network?

I was thinking you could just 'declare' who you trust, which would give each person a corresponding set of incoming trust links, but I feel this would be easy to game by creating many zombie users who just create reputation points, like link farms in search results. And that may be the kernel of the problem: if Google still has problems with people generating bogus PageRank scores, it might not be a problem easily solved :)


Solution

  • Take a look at the EigenTrust algorithm:

    The EigenTrust Algorithm for Reputation Management in P2P Networks - S. D. Kamvar, M. T. Schlosser, and H. Garcia-Molina

    This algorithm assigns each peer in the network a global trust value.