-
Notifications
You must be signed in to change notification settings - Fork 114
Description
9.2.3 Voting on Disputes
If both sides stake the required number of tokens within their three days time limit, then the proposal goes to a vote. The weight of a user’s vote is the sum of their reputations in the skills chosen by the user who originally raised the objection.
The duration of the poll is determined by the amount of reputation eligible to vote in the poll as a fraction of reputation in the colony. If a larger fraction is eligible, the longer the poll is open for. The minimum duration is two days and the maximum is seven. This is a trade-off between allowing disagreements between small groups to be resolved quickly, but to also allow adequate debate to occur when more people are involved.
Voting takes place using a commit-and-reveal-scheme. To make a vote, the user submits a hash
that is keccak256(secret, option_id), where option_id indicates the option that the user is voting for. Once voting has closed, the poll enters the reveal phase, where a user can submit secret, option_id and the contract calculates keccak256(secret, option_id) to verify it is what they originally submitted.
As the secret is revealed it cannot be sensitive. It must also change with each vote so that observers cannot establish what people are voting for after they have revealed their first vote. We suggest a (hash) of the consequence field of the poll signed with their private key. This is easily reproducible by a client at a later date with no local storage required.
10% of the staked tokens are set aside to pay voters when they vote; if a voter has 1% of the reputation allowed to vote on a decision, they receive 1% of this pot that is set aside. They receive this payout when they reveal their vote, regardless of the direction they voted in or the eventual result of the decision. This payout regardless of opinion is to avoid us falling victim to the Keynesian beauty contest[7]. Any tokens that would have been awarded to users who abstained from voting, or are not revealed in the reveal window, are sent to the top-level colony pot once the poll closes.
Once a vote has been in the reveal phase for 48 hours, a transaction may be made to finalise the vote. Any subsequent reveals of votes do not contribute to the decision being made, but serve only to unlock the user’s tokens if it was a token-weighted or hybrid vote (see below). We define quorum to be more than 10% of the reputation eligible to vote has done so. If quorum is not reached, no changes are made and all participants get their remaining staked tokens returned.*
*Some of the staked tokens on the change side will have been used to compensate voters.