Voting

After assessing the evidence, arbiters commit their vote to one of the party. They submit hash(vote, salt, GotchaID). The salt is a random value generated locally in order to add entropy, and GotchaID is used in order to make the commitment of each arbiter different, thus preventing a arbiter from copying the commitment of another. When the vote is over, they reveal {vote,salt}, and a GotchaInsure smart contract verifies that it matches the commitment. Arbiters failing to reveal their vote are penalized. After an arbiter has made a commitment, his vote cannot be changed, but it is still not visible to other arbiters or to the parties. This prevents the vote of an arbiter from influencing the vote of others.

Arbiters are also required to provide a justification for their vote. After all arbiters have voted (or after the time to vote is over), votes are revealed by arbiters. arbiters that fail to reveal their vote are penalized by a decrease in their reputation score. Finally, votes are aggregated and the smart contract is executed. The party with the highest amount of votes is considered as the winning one.