Support STAR voting
Related to #116 for score voting, STAR voting is a simple but novel combination of score voting and an automatic runoff round. It addresses some of the concerns people have about score and has been evaluated to be the all-around best ballot system by several measures.
ADDENDUM: orgs I'm involved with are specifically interested in using this, so it's more than just theoretically nice…
interesting, could be useful at some point, requires a lot of work.
If additions / changes to the crypto were reasonable, STAR-Vote (which is based on the same approach as Helios) could probably be adapted.
If we restrict this to using the existing cryptography and ballot mechanism, then here's a (probably-insecure) sketch of what it could look like (I'm basing this solely on the existence of a multiple-choice voting option, I haven't looked at the underlying crypto yet):
Election creation:
- Elector defines N candidates, to which each voter will assign a number between 0 and 5.
- Helios creates five identical multiple-choice questions containing all N candidates.
- Helios creates N! single-choice questions, one for every pair of candidates, to handle the possible runoff combinations.
- This is probably insecure in that there is nothing to bind the multiple-choice answers to the single-choice answers. Maybe there's a way to combine or link them, but I haven't looked at the crypto yet, and hadn't thought through the runoff process when I started writing this comment 😅 Other sketches welcome!
Voting:
- Helios UX shows the STAR UX (N candidates, each with a radio choice from 0 to 5, defaulting to 0 for each candidate).
- Voter updates the radio choices with their desires.
- Helios converts the radio choice into that many checks for the given candidate across the five questions.
- Helios shows the STAR UX in the "review vote" page, maybe with a sub-section showing the underlying Helios question responses it results in (for auditability).
- Voters submit their votes.
Election results:
- The normal Helios question tally figures out the totals per question.
- The Helios UX adds up the totals per candidate across the five questions, and displays the overall totals, from which the two candidates with the highest score can be determined.
- The Helios UX displays the result of the single-choice question corresponding to the runoff between those two candidates.