# Societal reputation system Here we are thinking about a reputation sytem for very big, general topics, that are hard to assess algorithmically, and need a more subjective and local assessment. ## Intuition behind reputation system There are different kinds of reputations for different use cases. From Uber rating, to the number of Twitter followers to politicians receiving some number of votes, these all confer some kind of repuation. What kind of repuation system do we want to build? Lets quickly have an overview of different reputation systems. #### Uber model Here Drivers and Riders are rated from 1-5, the ratings are averaged to give an average score. Here 1 is understood to be a bad rating, while 5 is good. This is a rating method used to evaluate a very simple thing, how good of a Driver/Rider the person is. This rating system is not a societal rating, it is based on one-off encounters which all conform to a very constrained segment of life. #### Twitter model In the twitter model, each person can follow other people, and can follow as many other people as they want to. In contrast to the Uber model, this model can be characterised as a societal repuation score, as people from differnt avenues of life (from politicians to scientists) all use Twitter, and their follower count can be directly compared. It is also good as a societal reputation system as, unlike Uber, it does not allow negative ratings. Here the lack of a positive rating is the worst thing that can happen. This model however rewards broad but low quality reputation, as people can give their votes to as many people as they want to. So people with a large number of followers will have the highest reputation, even if those followers are not highly commited. #### Splitting the vote model In this model, each person gets a fix number (e.g. 100) votes, and they can split that among people as they want to. (This is similar to the Twitter model, the difference is the number of people you can "follow" is constrained). This solves the commitment problem, as people cannot give out an arbitrary number of votes, and they can give a larger number of votes to people they are more commited to. However this is not ideal for a repuation system, as we must reward hierarchy in a reputation system. If the delegation of votes is in a single line of $A \rightarrow B\rightarrow C$, then surely C should have more reputation than B, as B themselves declares that they look up to C. In an even more stark example we could give B more followers, then B could have an arbitrary number for reputation, while C would always have only 1. #### Liquid VOTING model This is the model of liquid voting. Here you have a fixed number of votes that you can pass on to others, and you can also pass on the votes received from someone else. This means that in our model of $A \rightarrow B \rightarrow C$ they respectively have 0, 0, 2 votes, as B passes on his and A's vote to C. This is counterproductive, as someone who received votes loses them when they pass it on. #### Liquid REPUTATION model This is our described algorithm. In our toy example $A\rightarrow B \rightarrow C$ this will give us the result of 0, 1, 2 additional votes. This is exatly what we want, hierarchy is encouraged, but total number of votes is fixed for each person. (Sidenote: Here we could add a constant $a< 1$ where passed on votes are worth less than the original ones. E.g. B passes on only a votes to C, which gives C only $1+a$ votes. This does not behave well in the limit, as when we would have very long chains, $A_1 \rightarrow A_2 \rightarrow .. \rightarrow A_n$, then $A_i$ has $1+a+a^2 +..+ a^{i-2}=\frac{1-a^{i-1}}{1-a}$. This means that $A_{n-1}$ and $A_{n}$ have a similar number for their reputation, even though one gives all of their repuation to the other.) #### Money as repuation Money is not a good societal repuation system as it is not society oriented. Instead money is good for optimisation inside the boundaries of law, so money serves as economic repuation. ## Quick intro to liquid voting ### Liquid voting mechanism Our reputaion system is most similar to liquid democracy. In liquid democracy people split and allocate their vote to different delegates, and these delegates can then pass the votes they received to someone else. Finally at the end, a delegate votes on a given topic, law or question, using up all the votes that are received. Here cycles appearing in the graph can be easily dealt with, as votes are either used up for voting, or passed on to someone else. So cycles are not a problem, as they do not effect the final outcome of the mechanism, which is the voting. ### Assessment of Liquid voting The advantages of this system compared to direct voting mechanisms are that voters can be judges of human charachters instead of technical topics. Compared to our current government structure it can be said to be similar (as we already delegate votes to politicians who vote on things in the (Inter)National Assemblies), but it allows more freedom, as it allows voters to delegate their votes locally, to people they know and trust better, and it also allows them to split their votes. This splitting stops people from overcommiting to a single representative. However, the downside of liquid voting is the public nature of the whole mechanism. Voters need need to see how their delegates vote, so the vote and distribution of every delegate has to be public. And even if the vote distribution of the bottom layer is private, the local nature of delegation means that even that is quite easy to guess. ## Liquid reputation system ### Motivation, use cases Here we are thinking about general societal reputation systems. Liquid voting allocates social reputation in itself, even if the votes are delegated further, as we can count how many votes passes through a given person. This reputation is what the reputation system directly wants to capture, without the voting mechanism. Divorcing the reputation from the application of voting might seem to make the whole mechanism useless, but repuation is also a good in itself. Reputation games are an important part of social life, even if they are not directly applicable. For example the number of twitter followers a person has in a given community (such as CT) is an important metric used to gauge their expertise or commitment and the relevance of their tweets (even if the twitter reputation model is not perfect). Another example is that owning NFTs gives people a certain reputation, which they can trade directly for money. The NFT reputation game is based around money. We would like instead to make this repuation game human oriented (based on personhood, equal votes for all humans). This would make it better for human coordination and communication, and give it more social legitimacy. ### Technical changes and challenges Compared to the voting mechanism, the only change is that when a delegate passes on their votes, they keep the number of votes as their reputation. This means that if we have a simple chain of Alice, Bob and Charlie, passing their votes along: A -> B -> C, then A has 1, B 2, C has 3 reputation. This means that if you are part of longer chains, then your vote gets used more than once! #### Challenges, loops In this mechanism votes are not used up in votes. This means that loops are much more likely to occur, as everyone will delegate their tokens to someone else. Another factor is that when votes are passed on, they count towards the reputation of the delegator as well as the delegate. These two factors make loops much harder to handle. In liquid voting loops are only bad, as it causes votes to be uncast (but this does not break the system). Here if we allowed loops, then delegates could have infinite reputation, as votes go through them infinite times! (This would ofc break the system). So here we really have to have a mechanism to deal with loops. The ideal algorithm to distributing votes (and dealing with loops) in this mechanism is NP complete so it is not usable, but we will describe it here for the sake of completeness. NP complete algorithm: free feel to skip. Taking an A vertex, and traversing the graph along the the edges, starting from A assigning repuation along the way according to the weights. This generates a tree of all the possible paths we can go down on, and to avoid the paths becoming loops, we stop before reaching a vertex we have been on before. This makes the tree finite, so we can allocate A's votes along this tree. This is the tree of all cycle free paths starting from A (and is a subgraph of the universal cover of the graph (taking the universal cover and then averaging would be even better, but this subgraph is already too big)). We would then have to do this for each A, and aggregate the received reputation of each vertex. Unfortunately this graph is already too big, as we have an exponential number of paths strarting from A. So this is not a workable algorithm. #### Workable algorithm eliminating loops How to calculate the repuation then? The easiest solution is to eliminate loops directly in the graph. This would result in a DAG (directed acyclic graph) where we could easily (quadraticly in the number of vertices) calculate where the reputation of each person goes. However we do not want to calculate any DAG. Ideally, the DAG that we would calculate is the one where the total reputation (summing over all vertices) is maximal. Finding this DAG is also NP complete. Instead we can use the following approximating algorithm: start the graph empty, and add the edges one by one. Then we build the DAG alongside the graph. If it is possible to add an edge to the DAG (so that it remains a DAG), we include it automatically. If it is not possible to add the edge AB that means it creates a loop. This means there is already a path from B to A. Then we can remove the edges that point to A and are accessible from B. When we remove these, we also remove all paths leading from B to A. Then we can calculate the total reputation allocated in both graphs, and choose the graph where this number is higher. As a form of personal control, a user A should be able to stop other people from assigning their reputation to him (A). This would allow A "to game" the previous algorithm and to give reputation to B (if B is not blocking A), by first removing the accessible edges from B leading to A (before we run the previous algorithm, i.e. A could then vote on B). ## In conclusion: We described different reputation systems from Uber-like system that are domain specific, to Twitter-like system that are societal. We saw that twitter encourages low quality content. We saw that restricting the total votes number a person could assign wouold votes would encourage higher quality. This however does not encourage hierarchy (another way to phrase this is encourages populism), so we add the delegation feature which is similar to liquid democracy (and also to traditional politics). We encounter a problem: loops. Finally we propose multiple solutions to the looping problem.