Blockchain : a question of reputation
Reputation systems are necessary to organize social interactions, power connected objects or prioritize ideas. With the advent of decentralized identities and claims, blockchains reinvent these systems, simultaneously assuming their role of trust machines for the world wide web.
Reputation systems are nothing new, particularly on the Internet. Whether they are used to run online markets or fight misinformation and fake news, current algorithms mostly rely on third parties and have proven to reach the limits of such highly centralized models prone to manipulation, opacity and, in a way, inefficiency. Truly decentralized technologies could help tackle these flaws  and at the same time strengthen their own models, reaching neglected populations or supporting the rise of decentralized finance for instance .
In order to be accepted and adopted, new systems of this kind must check some prerequisites :
- Innovation should not add a burden to the user. Ideally, reputation systems should be autonomous, not requiring any dedicated interaction to operate.
- New entrants must demonstrate their superiority over established systems. Decentralized reputation can now take advantage of Blockchain core capabilities and embrace some of its most promising virtues.
- They should open up new avenues of opportunity and be ready to take on their role as standardized reputation systems for the decentralized era.
These goals were the ones we pursued when we laid our first idea of the foundation of a reputation system based on blockchain technologies. This work started as a submission to The Graph hackathon in September 2019 and is backed by a proof of concept.
A reputation system backed by decentralized claims
Our design came from the union of two concepts : flow-based reputation models and decentralized claims. Let’s try here to build it one step at a time.
Reputation and peer-to-peer schemes
Over the years, many reputation systems emerged and one type in particular gained popularity with peer-to-peer schemes : flow-based models.
Flow-based reputation is built on the concept of trust transitivity which formalizes the intuition that if an entity i trusts another entity j, then it would also have a certain degree of confidence in entities originally trusted by j. In most implementations, interactions are all rated by involved entities as either positive, neutral or negative. Once normalized and aggregated, these ratings create a Markov chain which steady vector, computed in practice by iterating a few Markov steps until a stable state is reached, can be considered the global reputation vector.
With flow-based models like EigenTrust , computation of the global reputation vector can be automated while generated trust information can suit the need of a wide range of uses. For these reasons and because decentralized identities and claims share many common characteristics with other peer-to-peer architectures, we chose this type of model to carry our first experiments.
Decentralized claims on the Blockchain
It is a fact that blockchains have serious assets on their own to make them the ideal support for decentralized identities. Being sources of trust, always available, open and extremely flexible, the number of applications that could leverage these new frameworks is staggering.
Decentralized identities, which may represent individuals, states or connected objects for instance, all interact with each other through claims.
Claims are bits of data stored on a blockchain and created at the initiative of one identity to speak about another identity. This data may be encrypted or in plain text, of various types and sizes. It does, however, increasingly comply with community-driven standards like ERC 735 on Ethereum which specifies for instance how types of claims, their issuers and subjects could be used by other applications, most notably reputation systems.
When a State recognizes on the blockchain the identity of one of its citizens, it may do it with the help of a claim, of a certain standard type like
id-verified, issued by its own decentralized identity and pointing to the concerned citizen’s identity. When submitting a claim, an identity thus both supports his statement with the strength of his reputation, and at the same time puts his reputation at stake depending on the quality of his statement as judged by its peers.
It is precisely this intertwining of causes and consequences that brings the use of claims as sources of an on-chain reputation models closer to flow models, and which we found fruitful to continue to connect in our study.
From claims to trust ratios
Computation of Eigentrust scores starts in file-sharing schemes with the evaluation of local trust values
s_i_j from the number of packets of data received by i from j. If the observed number of satisfactory transactions is greater than the one of unsatisfactory transactions, then this value will be positive, and otherwise it will be negative, reflecting the negative previous experience i had with j.
Now imagine that instead of counting satisfactory and unsatisfactory packets of data, you could assign a trust ratio
sigma_l to each type of claim.
id-verified mentioned above could for instance be assigned a high score while an opposite type
malicious-id-flagged could have a negative ratio.
With this simple predicate, everyone could calculate their local trust value in another identity by averaging on-chain ratios of claims they have submitted to their regard and which may be publicly verified on-chain. Eigentrust algorithm could then be run in a conventional way to compute normalized local trust values
c_i_j, aggregate these in a matrix
C and run a few Markov steps to finally get a vector of global trust values
Unlike any reputation system before, the one described here is totally transparent and verifiable, drawing its strength from the very foundations of the Blockchain. In short, it brings trust back to the trust system.
From the day the algorithm appeared in the literature, the issue of data access became apparent. In 2003 , the creators of the algorithm shared their concerns :
The challenge for reputation systems in a distributed environment is how to aggregate the local trust values
s_i_j[…], how to store
In our solution, all the data necessary to compute global trust values is publicly available on the Blockchain and anyone is free to run calculations from scratch. In this context, TheGraph is the perfect tool to scan submission of new claims on the fly and make this data available to everyone efficiently. Some questions, partly addressed by our proof of concept, remain unanswered about the practicality of this solution. At this stage of the design process however, foundations for a new type of reputation system have already been put in place.
Multiple domains of reputation
When Eigentrust was published, it enabled generation of a single reputation score for all peers, addressing one specific need : creation of global trust values in peer-to-peer file-sharing networks. However in our example,
malicious-id-flagged types of claims may be assigned a different factor according to the goal of a reputation system. What if one type of claim could be assigned different reputation ratios for some generic domains of reputation such as recognition, level of autonomy or popularity. Most of these ratios would be null and thus insignificant on final reputation scores, but others would be positive or negative in specific reputation domains, bearing a real impact on trust values.
One could then create his own custom reputation score, most suited to his use case, by mixing various generic reputation scores in different rates. If, for example, the safety of a chemical was a matter of debate and that different research institutes published results on its level of dangerousness, then multiple indices could be created. One reputation system could choose to highlight global recognition of research institutes while another could favour their independence, leading to different and complementary assessments of the chemical’s safety.
A self-sustaining system
At this stage, we built a new kind of flexible and promising reputation system, in some respects superior to its predecessors. However, the choice of the value of trust ratios has so far been somewhat omitted. We need for all types of claims and all generic domains of reputation an on-chain trust ratio
sigma_l_m which subsequently has a profound influence on identities’ trust values. Trust ratios could be discussed off-chain, as the subject of an EIP for instance, and be pushed on-chain after deliberation. But it would in fact take very little to set up a fully on-chain self-sustaining design.
What if indeed we used this very reputation system to vote on the value of reputation ratios ? With only two initial types of claims and a dedicated domain of reputation, we could implement a liquid voting system to dynamically and autonomously update trust ratios and therefore revise the whole system. The dedicated domain of reputation would only regulate this specific vote on ratios. All types of claims would be insignificant in this domain except vote-on-trust-ratio claims to materialize a vote and delegate-vote-on-trust-ratio to delegate portions of votes and therefore trust other peers in maintaining the system.
That way, the design is kept reasonably simple and most importantly does not add a burden to the final user.
This project was initiated during The Graph hackathon in September 2019 and most of design choices were made chiefly for the sake of delivering a first proof of concept. If brought to another level, any piece of information covered in this article should absolutely be subject of other discussions. Many concerns like scaling and privacy issues were furthermore not addressed in this synthetic paper.
Sure enough, decentralized identities and claims are not real yet. Their specifications are still far from frozen. This study is thus very prospective and may bring a smile to some faces. Nevertheless, it provides a framework for further thinking and action in which decentralized identities take on a new importance, engaging us one step further towards the increasingly realistic promises of the Blockchain.
Let’s point again that the proposed scheme establishes a transparent, flexible, certified and autonomous reputation system, suited to the people, objects and ideas that will circulate on the decentralized and trusted networks of tomorrow. Therefore this project, despite its modest initial ambition, should not be dismissed too quickly. It simply aspires to play its part in writing a future in which we trust.
 Lee, S. (2018). A Decentralized Reputation System: How Blockchain Can Restore Trust In Online Markets. Forbes.
 Xie, L. (2019). Decentralized identity and reputation.
 Kamvar, S.D., Schlosser, M.T., Garcia-Molina, H. (2003). The eigentrust algorithm for reputation management in p2p networks. Proceedings of the 12th International Conference on World Wide Web