Have the election determined by a function in which each candidate secretly contributes their own input.
For example:
Alice gets 30% of the vote
Bob gets 20%
Claire gets 50%
Each candidate secretly writes down an integer. When everyone is done, they reveal what they wrote. The election is determined by the final two digits of the sum.
Alice wins if 00 ⇐ last two digits < 30
Bob wins if 30 ⇐ last two digits < 50
Claire wins if 50 ⇐ last two digits < 100
As long as even one person is able to keep their input secret, it would be impossible for any candidate to rig the system. Anyone concerned about the election being rigged can unilaterally make harder to rig by working harder to keep their integer a secret.
Better yet: first, an anonymized database of all ballots is made publicly available on the Internet (this can even have IDs that let people check that their vote was recorded correctly). Alice, Bob, and Claire pick integers A, B, C much larger than the number of voters (N), and commit to hashes of those integers (this step can even be done before voting). Then they reveal A, B, and C, compute A+B+C mod N, and use that voter’s ballot to determine the outcome of the election.
I like that solution, and so far I can’t see any problem with it (as long as at least person randomizes their number, there is no advantage in picking one number over another).
Have the election determined by a function in which each candidate secretly contributes their own input.
For example:
Alice gets 30% of the vote
Bob gets 20%
Claire gets 50%
Each candidate secretly writes down an integer. When everyone is done, they reveal what they wrote. The election is determined by the final two digits of the sum.
Alice wins if 00 ⇐ last two digits < 30
Bob wins if 30 ⇐ last two digits < 50
Claire wins if 50 ⇐ last two digits < 100
As long as even one person is able to keep their input secret, it would be impossible for any candidate to rig the system. Anyone concerned about the election being rigged can unilaterally make harder to rig by working harder to keep their integer a secret.
Better yet: first, an anonymized database of all ballots is made publicly available on the Internet (this can even have IDs that let people check that their vote was recorded correctly). Alice, Bob, and Claire pick integers A, B, C much larger than the number of voters (N), and commit to hashes of those integers (this step can even be done before voting). Then they reveal A, B, and C, compute A+B+C mod N, and use that voter’s ballot to determine the outcome of the election.
I like that solution, and so far I can’t see any problem with it (as long as at least person randomizes their number, there is no advantage in picking one number over another).