Proof of Humanity is a system combining social verification with video submission in order to create a Sybil-proof list of humans. It is meant to be used by individuals as a point-of-entry to a myriad of new use cases that require Sybil-resistance to be able to be deployed at scale and also to be plugged into a variety of existing and new applications in need for such identity systems.
Check out the numerous use cases of proof of humanity in this post.
Proof of Humanity is a dapp created with the purpose of creating a Sybil-resistant list of humans. The UBI Token is a universal income currency which is accrued by all profiles successfully registered in the Proof of Humanity registry. To learn more about the UBI Token, check the UBI announcement post.
Check out the full explainer article to learn how to interact with Proof of Humanity.
No, you can’t.
The Ethereum address you are using to submit your profile will be publicly linked to your identity. If you don't want your wallet holdings and transaction history to be linked to your identity, we recommend using a new Ethereum address seeded with funds from a crypto exchange or coming from Tornado.cash .
Once you have submitted your profile, it will be in the “Vouching Phase” until you get vouched for and your deposit gets fully funded. Initially, you will only need 1 person to vouch for you (it enables faster onboarding in the registry at launch) but the number of vouches needed can be increased later on.
Then, your profile will move to the “Pending Registration” phase, during which anyone can challenge it for a period of 3.5 days if they think you are not human or if it violates the submission guidelines.
If your profile isn’t challenged during this period or the challenges are not successful, 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”
You can learn more about how the challenge and the dispute resolution system works in Kleros Court documentation.
Vouching for someone is a benevolent act in order to help people you know be accepted into the registry. Be careful with whom you vouch for. If by mistake (or excess of trust) you vouch for a malicious user, you will be penalized.
If a submission is rejected for "Duplicate" or "Does not exist" reasons, all people who had vouched for the rejected profile get removed from the registry. This allows to weed out malicious attackers who vouch for bots. It also means you have to be careful when vouching: make sure you know this person in real life and that it is not a duplicate.
You can vouch for as many people as you would like. However your vouch will only count for one person at a time in the order they were given. A user vouching can only be used for one submission at a time on a “first come, first served” basis.
For example, assume user A is registered. A vouches for user B. User B uses the vouch and moves to "Pending registration" phase. Then A vouches for user C. Since the vouching of A is already in use by B, C remains in the "Vouching Phase" for now, but will move to "Pending registration" phase once B is registered.
Yes, you can remove a vouch at anytime by going to the vouched profile and clicking on "Remove Vouch"
Registrations have a duration of one year. This means that users need to periodically reapply to the registry. The purpose of the limited registration period is to remove people who die and malicious submissions which might have made it into the list. Conditions to reapply are similar to the original application.
You can reapply before the current registration period ends in order to avoid spending some time unregistered. Users reapplying (such that they have the required vouching and deposit) before their registration ends are considered registered for the entire period of their new application.
Check the Proof of Humanity policy to obtain all the detailed conditions for a profile to be accepted or rejected from the registry.
A request to remove a registered submission from the list can be made at any time by submitting a deposit. Anyone can put a deposit claiming the registration to be correct. If no one does, the individual is removed from the list. If someone does, a dispute is created. Note that in case of a successful removal request, people vouching for the user are not removed from the list.
There is not yet an option on the app to remove a profile in "Vouching Phase" (It will be added soon). For now, you will need to interact directly with the smart contract:
Go to the Etherscan page of the PoH contract
Connect your wallet (look for the "Connect to Web3" button). IMPORTANT: It has to be the same wallet you use to register.
Look for the withdrawSubmission function (it's the last one). Click to expand.
Click "Write". Metamask might suggest a crazy gas limit, but the function should cost only around 50k gas.
Confirm the Tx and you will get back your deposit and your profile will be transitioned to "Removed".
IF YOUR PROFILE IS ALREADY "REGISTERED" First, you need to remove your own outdated profile and then either reapply or submit with another address for a new registration. In order to remove your old registered profile, you need to go to your registered profile page and click on the "Request Removal" button and then provide evidence that you are indeed the submitter.
Example 1. Send a removal request from the same address as the submitter.
Evidence Name: Self-removal of submission.
Evidence Description: I am the submitter as proven by my address and I want to remove this submission.
Example 2: Send a removal request from a different address than the submitter.
Evidence Name: Self-removal of submission.
Evidence Description: I am the submitter and I want to remove this submission. The video attached is a recording of myself saying the sentence “I want to remove my own submission from the Proof of Humanity registry.”
Since we require user vouching for new members, we had to start with an initial set of trusted and manually curated users. Those registered through the seeding event will still have to periodically confirm their registration like any other user.
In order to reduce the attack surface at launch, we decided against allowing to display or use ENS. A user could lose control of its ENS, forget to renew it, or be outbid. We opted to link the ownership of the profile to the simple straightforward ownership of the Ethereum address having submitted it. This could change in the future through Kleros Governance.
The Proof of Humanity registry is deployed on Ethereum mainnet because it is where its anti-Sybil attacks properties are the most useful and will allow more dapps to use it. It also relies on several other contracts such as Kleros Court that are not yet deployed on Layer 2 solutions.
The PoH contract has been gas-optimized as much as possible to reduce gas fees when interacting with it. We are aware that gas fees on mainnet are high but we think the steady UBI distribution will compensate those fees paid by the token holders to enter the registry
The contracts are ready for gasless vouching and the UI for it will be implemented soon. In the future, the Kleros DAO will have the power to decide if migrating the PoH registry to a Layer 2 solution is viable.
Improvements in machine learning are likely to affect the effectiveness of both deepfake creation and deepfake detection algorithms. If algorithms manage to produce deepfakes not detectable by other algorithms, other evidence would need to be required. This can be decided through Kleros governance process.
Internal features of the face are the most important for face recognition (see this article) and removing the requirement to pronounce the sentence would decrease the security of the system (speech analysis can be used to detect multiple registrations). For the moment, these edge cases do not allow the person to be registered. If you have a proposal that would enable the secure registration of this edge case (and others), you can submit it through the Kleros governance process.
While most people have a hard time distinguishing twins, identical twins aren't actually identical and can be distinguished by skilled individuals. Moreover, facial recognition algorithms tend to do a better job than humans distinguishing between twins. This means a twin submission could be challenged but the twin could probably easily provide evidence that he is a twin to win the dispute.