-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Clarify what VoteVariation types 2.0 supports, and make test cases for them #152
Comments
Range proofs enable cumulative voting. To do so:
The code to be changed:
|
Cumulative voting: a voter has a fixed number of votes ( Pick 1-of-n: the individual proofs are all zero-or-one and the sum proof is zero-or-one. Pick k-of-n: you can vote for as many as Approval voting: You don't need the sum proof any more, since you can vote for as many or as few as you want, but you need zero-or-one proofs for each candidate. Of course, every zero-or-one disjunctive proof can and should be implemented with a range proof. Once we're happy with that, we can probably remove the disjunctive proofs entirely. |
From spec 1.9, p 10: "For some voting methods such as cumulative voting, Borda count, Need to clarify what VoteVAriation types we are supporting, and get some test cases for them
|
Spec 2.0.0 Section 3.1.3 . p 17 "Selections, option selection limits and contest selection limits" has both R (option selection limit) and L (contest selection limit). "To allow other voting methods, ElectionGuard allows a selection to be the assignment of a value in a range {0, 1, . . . , R}, Spec 2.0.0 Section 3.3.3 . p 26: "In most elections, most contests have a selection limit of one. However, a larger selection limit This gives us one_of_m, n_of_m and approval. p 27: "Cardinal voting methods. A range proof, i.e. a proof that a ciphertext is an encryption of one Each of these cases needs more clarity and especially tests. |
see #337 |
Allowed via range proofs
The text was updated successfully, but these errors were encountered: