Local Trust

EigenTrust basic principles

EigenTrust helps map trust from a peer A to peer B in a graph. The primary input to EigenTrust is how much each peer directly trusts each other peer. These direct trust levels are called local trust values (LTVs), a function P(A, B) which translates to how much the peer A trusts peer B. The quality of interactions experienced by a peer A while dealing with another peer B determines the level of direct trust that A places in B. These direct trust levels are called local trust values (LTVs).

Local Trust Values Are Not Necessarily Symmetric

Over the same set of interactions, A may trust B more than B trusts A. Hence, there are two local trust values: how much direct trust A places in B, and how much direct trust B places in A.

Fidelity & Consistency Of Local Trust Values Matter

It is OK to let users define local trust levels (for other users) arbitrarily according to their intuition. However, in order to improve the fidelity of local trust levels, developers may want to provide users with a mental framework. For example, a social network developer may want to provide users with categories of other connected users, e.g. immediate family members, close friends/extended family members, friends, acquaintances, and so on.

Topical Trust Axes Are Helpful

In the typical case where peers are modeled as human actors, it is worth noting that actors most often assume different roles; A may trust B as:

  • A friend to seek emotional support in

  • A dependable coworker/resource of help

  • An insightful visionary

  • An on-time debtor

  • A graphic artist

  • A musician

The trust levels of peers as each of these roles can be, for example, inferred from pairwise activities such as:

  • Frequency of words/phrases of encouragement in comments

  • Tokens of appreciation exchanged in Q&A settings

  • Posts that garner a large number of likes and comments

  • On-chain repayment event logs

  • Graphical NFT activities (on DeviantArt-/Pixiv-like Web3 platforms)

  • Musical NFT activities (on SoundCloud-like Web3 platforms)

These topical axes bear higher fidelity to specific activities than, say, a simple follower-based pairwise trust, and in general cater much better to users’ interests. We encourage developers to try to bring topical/fine-grained trust data as well as more general/coarse-grained trust data.

Modeling Distrust

By default, EigenTrust revolves around degrees of trust above the neutral trust level: A local trust level of 0, for example, indicates a peer places the default amount of trust that they would in any other random peer in the network with which they have had no interaction at all. Trust levels cannot be negative; negative trusts are clipped at zero. This implements the untrusted-by-default model; the original EigenTrust research paper shows that this model is effective, for example, in detecting and thwarting Sybil attacks—a common use case for EigenTrust.

If an application does need a way of expressing/calculating the level of distrust below the neutral trust level, ex: where a somewhat-trusted-by-default model is needed, developers may want to experiment with the positive/negative karma model, where two EigenTrust scores are computed: One that revolves around trust above the neutral trust (zero is neutral trust, above zero is positive trust), and another below the neutral trust (zero is neutral trust, above zero is negative trust). Then the resulting scores may be combined to calculate the final trust score.

Last updated