Web of trust
This page translated in other languages: Vertrauensnetz (de)
A web of trust feature within MediaWiki provides the possibility to document and evaluate the relationship between the single users and can be used as a base for quite different tasks e.g.:
- providing a trust based authentication mechanism e.g. for avoiding sock puppets.
- having a tool to measure the reliability of the authors of an article and thus the article itself.
- authentication aspects can be used to base vote systems on it.
- automatic blocking of vandals if they are below a certain threshold.
- creation of expert groups on certain topics.
A web of trust does not necessarily mean that you like the person, you only need to trust his competence in following the encyclopedic principles (NPOV e.g.), his knowledge and that his work is valuable.
Every logged in user has a special page with a predefined web form (e.g. as part of the preference pages) only editable by the user where he can add or remove users and attributes to that users in a standardized way:
- User Name (existing account)
- meet in person yes/no (one bit)
- trust/distrust/neutral flag (+1, -1, 0)
- trust/distrust (depends on flag above, if set to 0 this point isn't editable) in expert knowledge of that person, indicated by entering existing categories names (e.g. "Astronomy" category), lets say up to five possible categories can be entered, in other fields outside this categories the person gets general knowledge trust as it would be if no category is set. To prevent it from beeing babylonic you can only choose from a (community admin) predefined list (e.g. drop down list).
- perhapes a small comment field (string)
To prevent from entering the user name by hand (and also to avoid checking if the user name even exists) you can only add users if you go on the user page of the person you want to rate and then click in the "toolbox" onto an entry similar to "User contributions" called "rate person". With that action you create a new entry in your personal list with the name of this user and you are directed to your personal rate list.
Usage restrictions and other conditionsEdit
- A user can use the web of trust feature at first some days after his first edit (e.g. 7 days), that way people get time enough to check the edits.
- The number of persons on the rate list of a user (trust, distrust and neutral get counted together) is limited by his current number of edits (the maximum number of persons in the list is a function of own edits)
- To discourage the use of sock puppets in a positive manner (that is if you create a sock puppet you are in a disadvantage compared to the use of only one account) the maximum number of persons in your list is a nonlinear function of the own edits. So the basic design condition is that a person needs to get a larger maximum number of people on the voting list if it doesn't split his edits between the two accounts: ("x" are the edits of account one and "y" the edits of account two). This leads to the following easy to check conditions for a function:
- starting in the origin:
- monotonic increase:
- A trivial function reaching this aim would be
- The problem with a simple power function is that the maximum number of allowed people on your list would increases quite fast (of course this can be reduced if you modify the function somewhat). But you can also avoid this problem if you introduce the additional condition that the functions has to be linear in infinity: A function that would also fit into this condition would be:
The advantages of the conditions pointed out above are:
- It is very hard to create a "sock puppets web of trust link farm army" that would undermine a web of trust otherwise.
- Although you can never avoid creation of sock puppets people are put off this behaviour as it would be for them less worthwhile than only having one account.
- Everything that counts are the edits so again it pushes people in getting involved and doing the work by themselves (we are a meritocracy).
meet in personEdit
On a special page you can see the users (with links to that users) the person has given his "meeting flag" (but you only see this and nothing else e.g. the trust/distrust you gave this person). So everyone looking at this page can browse and evaluate the meeting connections and also look at the "what links here" page to look which people say that they meet this person.
- The trust points of a user get calculated by the trust and distrust connections pointing to him. "Neutral" doesn't count as connection but is a interruption in the web. The connections get evaluated by starting from the user and going reverse through the connections pointing to him.
- A direct trust connection counts 1 point, a second degree connection 1/2 point, a third degree connection 1/3 point and so forth up to a maximum degree (perhapes it is only necessary taking up to maximum 3. degree relationship into account).
- A direct distrust connection counts -1 point, a direct distrust connection plus a trust connection starting from this second user to a third counts additional -1/2 point for the first user, a direct distrust connection followed by two trust connections counts additional -1/3 point and so forth.
- If you reach at a second distrust connection along the path the path for this user stops here as if there would be a normal end of the web.
- Perhapes only the shortest connections between a user and his neighbours in the web of trust should be taken into account for evaluation (and only one of two alternative equally long ways).
The rating list of a person isn't shown to others to prevent people from adding others to their list in form of a demonstration (e.g. preventing that you only set persons on your trust list that also trust you). But on the same special page as above in a second chapter you can see the summary tust points a user got.
- For expert knowledge only direct connections get evaluated as expert groups can only work if the persons have a direct relationship. So counting 2. degree relationships and so forth is not reasonable for this.
- The expert knownledge of a person is evaluated the same way as above (but only for direct connections) and could be done together with it as attributes as the two webs are the same topologically by design.
- If one person gave this person expert knowledge in a sub category the expert knowledge of that person in the categories above get added to this category so that you can define a "core".
As above the expert knowledge other persons gave you gets counted in summary and shown on the special page in an own chapter within a list with the category and the knowledge trust points a person got within that category.
The individual valuations are only "yes", "no" and no setting (that could be represented with the numbers 1, -1 and 0). A valuation with more degrees (eg. -10 to + 10) is IMHO to much and this could also be exploited by sock puppets in giving themselves always the maximum points. The yes/no mechanism is quite sock puppet safe as you can give one point directly connected with your maximum allowed number of persons on your list.
A web of trust of that kind could be used now for manual and automatic evaluation and could be used as a basis for other features as article valuation etc. There already exist some hand made web of trusts (see links) which you could also analyse during the realisation of this feature.