Disclaimer: This post aims to open a discussion. In a future, a formal HIP should be crafted. This discussion also assumes that Proof of Humanity will be deployed, along with Kleros, in an L2 solution, so I suggest to avoid thinking in high fees and other problems related to Ethereum L1.
Preventing vouchallenges while incentivizing a web of trust
Currently vouching a profile has almost no consequences. This has a negative aspect (like vouchallenges, that will be introduced in a moment) and a kind of positive aspect (people easily vouching for other people that needs a vouch).
Vouchallenge
A vouchallenge, that’s how it’s known in PoH telegram channels, is a kind of attack where the attacker acts as voucher and challenger at the same time. I call it attack because I assume it’s something that we don’t want to happen in the protocol.
The attacker finds a wrong profile (for example, with a typo in the address) and proceeds to vouch it. Why does him vouch it? Because that enables him to perform the challenge afterwards (only vouched profiles can be challenged).
I guess, in theory, voucher loses some UBI when vouching a profile that then ends removed. However, a vouchallenger swaps all his UBI for another currency before performing the attack.
Proposed solution: vouch deposits
I propose a simple solution, easy to understand by the community as it uses similar mechanisms as for submitting a profile.
Basically, I suggest that when someone vouches for a profile, deposits an amount of money greater than the challenger reward. If profile is accepted, deposit is returned to the voucher. Otherwise, if profile is rejected, the voucher lose the deposit.
Consequently, suppose someone wants to execute a vouchallenge attack, will vouch depositing some amount X
. Then challenges the vouched profile.
A successful vouchallenge will make the attacker to earn an amount Y
, but at the same time, as he vouched the profile, will lose an amount X
. So, if X > Y
(i.e. vouch deposit greater than successful challenge reward), then a successful vouchallenger will lose X - Y
money.
The result: no more incentives to do a vouchallenge.
Burning UBI
In the previous section I avoided to mention the currency for the vouch deposits. Probably the natural (and easy to implement) thing is to require a deposit in ETH.
However, an interesting experiment could be to require the deposit in UBI. So then, if the profile is rejected, the UBI deposited is burned.
This will help to increase the demand (or reduce the supply) which has a direct impact in the price, as people maybe wont sell UBI as fast as now, because maybe will want to vouch for someone soon, or some people will buy UBI for vouching others.
Note: Using UBI instead of ETH makes the implementation a little bit more complex, because will need some price oracle to verify the amount of UBI represent more money than the challenge reward (maybe Uniswap’s oracles could be used).
Web of Trust + Less submitter deposit loses
The fact that the voucher is risking some money when vouching for someone will make vouchers to prefer risking only for people known in real life (friends, family, etc). For me, this is a feature for Proof of Humanity, not a bug.
Increasing the link between submitter and voucher will lead to a more trusted registry, which is really important because is the almost the goal of PoH. And because of the six degrees of separation theory we can think that in middle term wont be difficult to know someone who is already in the registry.
In addition, people will care about the quality of the profile they are vouching for. Otherwise, will lose the deposit. As consequence, voucher will take the time to verify the submission is following the rules (something that now does not really happen, and ends up by having a lot of people losing their deposits).
People that don’t know anyone already in the registry, could go to the telegram group and make a video call with a voluntary voucher, who after verifying the submission could decide to help risking his deposit.
Discussion
As I said in the disclaimer at the beginning of the document, the goal of this post is to start an informal discussion around this proposal. Please correct me if I’m wrong about something. I look forward to read your thoughts.