# How to construct a yes/no election protocol, such that only the result is revealed?

Can we use a threshold scheme to construct a (yes/no)-election protocol, such that every voter can give a positive or negative vote or he can abstain, and such that only the result of the election is revealed, but the number of positives, negatives and abstains stays secret?

Are there some ways to do this without a threshold scheme?

-

## 1 Answer

A threshold, additively homomorphic cryptosystems (such as the threshold variant of paillier) would work just fine for this sort of system. Each voter would need to prove that their vote was in the set $\{-1,0,1\}$ instead of the typical $\{0,1\}$. All of this could be done using the thep library. There is a page on dealing with negative numbers.

An alternative to this would be secure multiparty computation. At its core, MPC has the disadvantage that all parties must be online at the same time. This can be mitigated by say designating a few (e.g., 5) servers that perform all the computation. When a person votes, they use secret sharing to split their vote into 5 different shares and send a share to each server.

-
thanks, this is amazing –  Sam Jan 10 '13 at 21:13
@Sam, One thing I forgot to mention. thep does support threshold Paillier. The UTD implementation does though. –  mikeazo Jan 11 '13 at 1:41