Possible Front-end solution to vouch and challenge attacks
I’ve been thinking about how to solve the vouch and challenge problem that is still happening within Proof of Humanity.
Keeping in mind that changing the smart contract is not within the possibilities, I came up with a pretty straightforward solution.
Within the UI, it is possible to know if the vouchees (users vouched by someone) have been challenged and removed because of that. What I believe would help is introducing a minimal vouching coherence (I suggest 80%). This is good because the process for fair and square vouchers would be left unmodified without putting that much pressure on them. This feature would help the community because if someone intends to vouch maliciously, they would first need to correctly vouch for at least four other submissions. This only would reduce the actual vouch + challenges to 20%.
Another feature that I’d like to propose is a temporary vouching lock in the case that a profile’s vouch results in a challenge. I believe it is in the project’s best interest to lock vouches for 45 days since the challenge began.
This solution could be bypassed if a person interacted directly with the contract using the regular (gas consuming) vouch. Given the gas values of the Ethereum Network, the profit to be obtained by challenging a registration is around 0.04ETH. Vouching on-chain would lower that number to around 0.025, thus decreasing the incentive behind this mechanic significantly.
This is what a user would see if they wanted to vouch and shouldn’t be able to:
Also, vouched profiles would now appear green if they are either on “Pending Registration” or “Registered” statuses and red if they are “Removed” due to a challenge.
I already coded the features described on the following repo (https://github.com/bilinkis/POH-vouch-timeout).
I’d like to know what others feel about this features and appreciate all the feedback you’d like to share.