Proof of Humanity - An Explainer

Proof of Humanity (or PoH) is a social identity verification system for humans on Ethereum. PoH combines webs of trust, reverse Turing tests, and dispute resolution to create a sybil-proof list of humans.

There are all sorts of amazing use cases and reasons to be on the PoH registry but for now, let’s look at how it works.

How Do I Register?

Profiles home page showing a variety of profile states and filtering options. 

Head on over to app.proofofhumanity.id and you’ll be greeted by a screen similar to the above.

Having connected your Web3 wallet (in this case Metamask) click on ‘Submit Profile’ to fill out the required information for your submission. A successfully registered profile requires a number of verification levels such as:

  • Video including speech and an Ethereum address linked to your profile clearly shown (yes deepfakes are getting better but this particular method is still hard to falsify),
  • User vouching with one verification from registered profiles required.

Enter all the required details or risk an incorrect submission challenge. 
Upload the video with your required ETH address clearly shown with the short sentence recorded. We got to beat the robots yo'. 

Enter all the details, add the visual content and carefully read over the policy regarding a valid submission.

Once you’ve done all of this, you are ready to submit by paying the deposit. This will be returned to you once the profile is successfully registered.

The deposit exists to help deter the creation of fake or spam accounts. As we will explain later, challenged profiles, which are ruled ‘invalid’ by Kleros jurors, will lose their deposit.
  • Sign the transaction in MetaMask.

Now that you've made your submission, you have to ask people you know to vouch for you. This web of trust adds greater protection to the whole system. In the early days, you will need one already registered user to vouch for you. This number might change in the future.

It is also possible to crowdfund your submission in which the deposit is collectively covered by other users. As you can see in the image above, the default option is ‘Self Fund’. To the right of this button, users can select ‘Crowdfund’ and subsequently share this out on various social media platforms, for example.

Here, you can see a fully registered profile with three vouches (more than the required one) vouches. 

Which phases will my profile go through before being registered?

Once you have submitted your profile, it will be in the “Vouching Phase” until you get vouched and your deposit gets fully funded.

Then, your profile will move to the “Pending Registration” phase during which anyone can challenge it if they think you are not human or if it violates the submission guidelines

If your profile isn’t challenged, you are “Registered”.

If you are challenged, you will either go back to “Pending Registration” phase or be “Removed” depending on the ruling of Kleros Court.

Once you are “Registered”, your profile can either expire after a year (if you don’t reapply) or someone can make a request for removal which will move it to the “Pending removal” phase during when anyone can challenge the removal.

If your profile is “Expired”, “Removed” or about to expire soon, you can reapply for submission which will bring you back to the “Vouching Phase”

After you've made your submission, your profile will pass through a number of periods en route to registration.

These are as follows:

  • Submission - Submit all required details as stated in the interface.
  • Challenge - During this period, the profile can be challenged by other users if they believe it doesn't comply with the guidelines. (However, the profile can also be challenged for removal at a later date, including after being registered.)
  • Vouching - Your profile is awaiting a vouch from a registered user.
  • Registered - Your profile is accepted and registered on PoH. You will receive your initial deposit back and collect UBI tokens at this stage.

Challenging Submissions

Users can challenge pending submissions that they think don’t comply with the requirements for acceptance. In order to do it, they need to submit a deposit which serves as a bounty available to other users able to correctly identify false positives in the registry (duplicates, bots, deceased, etc.).

Of course, in tandem to this first layer, there is dispute resolution in the form of Kleros or any other ERC 792 compatible resolution platform.

Relevant challenge types are the following:

  • Incorrect submission: This could be as simple as wrongly inputted data (or lack of required data). Not necessarily a malicious submission but not meeting the requirements will lead to challenges.
  • Deceased: The submitter has existed but does not exist anymore. The challenger can provide evidence that the submitter is dead such as death certificate, obituary, public records. The submitter can provide a video of himself reading a recent blockhash. Submitters not able to give recent proof of life should be considered deceased.
  • Duplicate: The submitter is already registered. The challenger has to point to the identity already registered or to a duplicate submission. If someone tries to register multiple times simultaneously, all submissions are to be rejected.
  • Does not exist: The submitter does not exist. For example, this can be used for videos showing computer generated persons.

When a submission is challenged, the decision goes to dispute resolution in an ERC 792 compliant dispute resolution system. As mentioned, it will originally start with Kleros, although this can be amended by governance.

When a challenge is won, the submission is not directly added but goes back in pending mode. This allows challengers to challenge it again for other reasons (but the same reason can only be used once).

For the duplicate challenge, it is possible to make parallel challenges (If someone challenges a submission for being a duplicate of Alice, someone else can challenge the same submission for being a duplicate of Bob).

If multiple parallel challenges are successful, the challenge referencing the duplicate which was initially submitted will get the bounty (it is possible for a submission to be a duplicate of multiple submissions at the same time due to pending submissions, when this happens, challengers have to challenge the submission pointing at the first submitted duplicate).

If a submission is rejected for as a ‘Duplicate’ or ‘Does not exist’ , all people who vouched for it are also removed from the registry.

Once the challenge period of a pending submission has passed, the submission is accepted and the individual is registered.

Vouching

This user hasn't vouched for Alice Smith yet. 

Users already in the registry can vouch for new people registering. By vouching for someone, a user guarantees that the person they vouch for exists and is not a duplicate of another entry in the registry. You should only vouch for people you have met in person in real life.

Vouching is not financially incentivized in the same way as challenging and submitting, however the more the list grows, the more secure and used it becomes.

Vouching costs gas for now but we are in the process of implementing gasless vouching (signature) in a next version of PoH.

There are a number of caveats with vouching:

  • People may remove their vouch to people they have already vouched for.
  • The number of vouches required is also decided through governance.
  • It is possible to vouch for people who are already registered (which can be useful for them when they need to reapply close to expiration).

A successfully vouched profile can be seen below.

Now the vouch button allows the user to remove their vouch for this profile. 

Disputes & Removal Requests

A request to remove someone from the list can be made at any time by submitting a deposit in the same fashion as submission and challenges. Anyone can make this deposit claiming the registration to be correct. If no one does, the individual is removed from the list. If there is a challenge to this removal request, the case goes to dispute.

Note: In the case of a successful removal request, people vouching for the user are not removed from the list.

Universal Basic Income

Universal basic income (UBI) is a token given to all users successfully registered on PoH. The token is streamed to each account every second.

And That’s All!

If you followed this guide by registering a profile, congrats and hope to see you on the final registered list.

For further information see this FAQ post and this use case post.


Where Can I Find Out More?

Join the community chat on Telegram.

Visit our website.

Follow us on Twitter.

Join our Slack for developer conversations.

Contribute on Github.

Download our Book