homeblog aboutcontact

the fathom whitepaper:

The Fathom Protocol

This page has four parts: First, an overview is given of the different elements that make up the fathom network. Second, the process of creating certificates and being assessed in them is presented step-by-step. The third part lays out the incentive structure that makes it economically disadvantageous to deviate from the protocol. The last part presents potential attack vectors and how they are mitigated.

Architecture Overview

This section will introduce the three main components of a fathom-assessment: First and second, a concept, representing an assessable quality and the concept-tree, which relates all concepts to each other. Third, assessments which draw individuals from the concepts to be assessors and, upon a positive assessment, add new individuals to them.

Concept

Concept is an umbrella term to capture any kind of skill, quality, piece of knowledge or fact that can be established about an individual. Therefore, each concept \(C\) has the following properties:

The Concept-Tree

As all concepts have at least one parent, the entirety of all concepts forms a tree. The ‘mew’-concept is at the root and as one moves down concepts become more specific. The weighted parent-child connection between concepts is also reflected in the the weights of their members: Individuals who have been assessed in a child concept are also added as members of the parent concept(s), with their weight(s) reduced by the connection strength. The set of individuals in a child concept can therefore be seen as a specific subcommunity of the parent-community. Individuals are therefore members of many more concepts than those they have been assessed in, although those will be the ones where their weight will be highest.

This nesting of knowledge-communities is valuable when sampling members to create a pool of potential assessors. If a concept has not enough members for the pool they can be drawn from the parent concepts. The members of a parent concept will have related experience(as it has been populated by the concept and siblings), and hence have a higher probability of being able to assess the concept in question.

The Assessment Game

An assessment is the process by which a jury of qualified individuals (assessors) decides whether or not some candidate (assessee) fulfills the necessary conditions to become a member of a concept. When initiating an assessment in a concept, the assesse decides how many assessors they want and how much they are willing to pay to each one of them. That offer is forwarded to potential assessors (see setup for drawing specifics) who must stake the offered amount in order to accept. Thus, a market forms around assessments, allowing the system to scale from easy to assess, and hence cheap, concepts, to more involved, complicated, and hence expensive ones.

Upon completion of the assessment, assessors are paid the price offered by the assessee and a proportion of their stake if they come to consensus around the applicants skill. The proportion of the stake being paid back is proportional to the assessor’s proximity to the average score of the biggest cluster of scores and will also be added a portion of the stake of dissenting assessors, should there be any (see payout for details).

Also, the mechanism by which assessors log in their scores is designed such that colluding assessors can double cross each other, thereby creating a coordination problem in an adverserial environment, where the only point of coordination (schelling point) left is a truthful assessment. In case the majority vote of the assessors is positive, the assessed candidate will get i) a score in the assessed concept, similar to a grade in university or school, ii) a weight in the concept and iii) a weight in all parent-concepts, proportionally reduced by their respective connections strenghts.

Assessment Process

A fathom assessment goes through five phases: A setup phase, where the assessors are called from the concept tree, the assessment, where the assessors determine the assessee’s skill, commit- and reveal-phases, where the assessors log in their score and, at last, the calculation of the result.

For each phase this section is gonna depict the choices of the involved participants, their interactions and what happens if they deviate from the protocol.

Setup

Creating the assessment:

Wanting to be certified in a concept \(C\), the assessee needs to specify the following parameters:

  1. A timeperiod during which they would like the assessment to start and end (latest start- and end-time).

  2. The number of assessors \(N_a\) to be assessed by. While there is a minimum number of five assessors to guarantee a fair voting, the assessee might want to be assessed by a bigger number in order to receive a higher weight and higher chances to become assessors themselves (given that they end the assessment with a passing score).

  3. The price \(cost_a\) that each assessor will be paid.

Calling assessors from the concept-tree:

A pool of potential assessors is created by probabilistically drawing members from the concept and its parents until a pool size \(N_p\) of 200 times desired number of assessors is reached or the mew-concept is reached. The selection of potential assessors happens according to a tournament-selection of size 2, starting at the assessed concept:

Thus it is assured that each member has a chance of being called as assessor (the chance of being drawn first), whilst giving a higher chance to members with higher weights).

As it is crucial that participants can not foresee who will be called as assessor, no more than half of the members of each concept can be called as assessors. Therefore, this process is repeated at most \(Y\) times for each concept at hand, with \(Y\) being the remaining number of required assessors given that this number is smaller than half the number of members in the concept \(m_c\):

\[ Y = \min (200*N_a, \frac{m_c}{2}) \]

After \(Y\) attempts, (on average resulting in \(Y/2\) members being added) the remaining \(r = 200*N_a - \text{poolsize}\) are drawn from the concept’s parent. In the case that there is not only one parent but \(p\), the process is repeated trying to draw \(r/p\) from each concept (again limited to a maximum of at most half the members of the respective parents concepts, as described by the above equation.

Assessors confirm by staking:

Each assessor that is being called, can decide to participate in it by staking the offered price. Once the desired number of assessors has confirmed, the assessment moves to the next stage. Assessors from the pool self-select whether they think would be competent judges on concept in question. If so, they signal their intent to participate by staking the offered price. More considerations why assessors would or wouldn’t want to confirm are elaborated in incentivization. If not enough assessors can be found before the desired start-time of the assessment, the Assessment is cancelled and everybody who deposited collateral is refunded.

Assessment of the candidate

In a fathom-assessment there is no notion or form what constitutes a test and the form or procedure of how candidates are evaluated is left to each individual assessor. Ultimately, assessors express their verdict of assessee’s skill as a number on a scale (e.g. between 0 and 100) - with everything above half being considered a passing score.

Yet, what exactly defines a failing, passing or barely passing assessment can be different for each concept as well and should be agreed upon by the community (see frontend). Moreover, the assessment could also be the place to put up some sybil protection mechanism in the form of extra requirements that make it hard to repeat an assessment (see sybil-attack for more details on how this could work).

Committing a Score

Sending in a score follows the commit-reveal procedure common in blockchain applications. Assessors signal that they have decided on a score by concatenating it with a secret element, also refered to as ‘salt’ and submitting its hashed value (hash=sha3(score+salt)).

If any assessors fails to commit a score before the assessment ends their stake is being burned. If, as a consequence, less assessors than would be required for the minimum size of a viable assessment have committed, the assessment is cancelled and everyone is being refunded. Otherwise, the assessment progresses to the next stage.

Steal and Reveal

To end the assessment, the assessors reveal their verdict by submitting their score and salt separately. Any assessor (or external person) who knows about another assessor’s score and salt, can do so as well, thereby stealing half of the assessor’s stake, burning the rest and eliminating him/her from the assessment game. This prevents the assessors from credibly garuanteeing each other their committment to logging in a specific score, thus making it harder to collude.

While stealing is possible at all times after an assessor has committed (even if others have not yet), revealing will only be possible after all assessors have committed and a buffer period of 12 hours has elapsed. The buffer ensures that there is time to challenge someone’s commit, even if they waited until moments before the end of the assessment period to send it in. Should any assessor fail to reveal, their stake is burned and they are eliminated from the assessment game. [^2] If the number of assessors decreases below the necessary minimum, the rest of the participants is being refunded and the assessment ends without a score.

Determining the Outcome

In order for an assessment to result in a final score, one score must be in consensus with enough other scores to form a 51% majority. Two scores are considered to be in consensus if their difference is less than the consensus-distance \(\phi\). If such a score \(s_{origin}\) exists, the final score \(s_{final}\) is computed as the average of all scores that are in consensus with \(s_{origin}\).

Should there be two scores with majorities of equal sizes, the one that will result in a lower final score wins. If there is no point of consensus, the assessment is considered invalid and all stakes are burned. Otherwise the assessors’ payments will be computed as described in the following section.

Also, in case the result \(s_{final}\) is a passing score, the assessee is registered as new member of the concept with a weight \(w_i = s_{final} * N_{in}\). They get a weight in all parents and grandparent-concepts, reduced by the respective connection weights until their weight is below a certain threshold.

Payout of Assessors

An assessor’s payout \(p_i\) is composed of three parts: i) a portion of their own stake \(stake_i\), inversely proportional to their distance from the final score, ii) the payment \(p\) set out by the assessee and iii) a proportion of the stake of assessors outside the consensus-range. While assessors whose score is inside that range will receive all three parts, any assessors outside will only receive the first - a proportion of their own stake. Also, that proportion will be calculated slightly differently dependent on whether the assessor is inside the consensus-range or outside of it.

Therefore, an assessor’s distance \(dist_i\) from the final score \(s_{final}\) is measured against the consensus range \(\phi\):

\[ dist_i = \frac{\lvert s_i - s_{final} \rvert}{\phi} \]

The first part, the assessor’s returned stake \(rs_i\), decreases linearly with respect to the distance \(dist_i\):

\[rs_i = \begin{cases} stake_i * (1 - dist_i) & \quad \text{,if } dist_i<=\phi\\ stake_i * \frac{(2 - dist_i)}{2} & \quad \text{,if } \phi < dist_i < 2\phi\\ 0 & \quad \text{,otherwise} \end{cases}\]

The first case is true when assessors are inside the consensus range. The second and third case depict assessors when they are outside of it, with distances greater than one or two times the consensus range \(\phi\), getting back part of their stake or nothing, respectively.

All assessors inside the largest cluster will also receive the payment \(p\) of the assessee as well as a share of the stake not returned to the assessors outside of it. For the latter, all stake not returned to the outside assessors is distributed equally amongst the assessors inside the winning cluster. Thus, an assessor’s share of the redistributed stake \(\tilde{rs}_{out_i}\) is calculated as:

\[ \tilde{rs}_{out_i} = \frac{1}{N_{in}} * \sum_i^{N_{out}} 1-rs_i \]

,with \(N_{out}\) and \(N_{in}\) denoting the number of assessors outside and inside the winning cluster. The total payout \(p_i\) of assessors inside the winning cluster is therefore:

\[ p_i = rs_i + p + \tilde{rs}_{out} \]

Figure 1 in the appendix shows the total payout to assessors to outside and inside the winning cluster, in relation to their distance from the final score.

[^2] This should be unlikely, as at that point assessors have nothing to lose but rewards to gain.