-
Notifications
You must be signed in to change notification settings - Fork 2
Home
STAR-Vote is a distributed election system involving four separate programs, a Supervisor, Votebox, Tap, and Ballot Scanner, operating with pre-rendered images generated by the Prep-Tool and communicating with one and other in a local area network through Auditorium, publish votes to the Web Server serving as an online "bulletin board".
Supervisor is designed to be the poll worker's access to the rest of the STAR-Vote network. It shows a list of all known machines on the network and their statuses, along with controls to open or close the polls, and authorize voters.
Votebox is the voting booth on which a voter will make his or her selections for a given election. Voting sessions are started by the typing in of a PIN provided by the supervisor and terminate after the voter has finished voting and printed out both their ballot and a receipt of their vote. Of note, at this stage the vote has not been cast, and the voter must deposit the printed ballot in the ballot box, here implemented in the ballot scanner.
The Ballot Scanner gives the voter the option to either challenge or cast his ballot. If he scans his ballot the scanner announces in a BallotScannedAccepted event that the ballot was scanned successfully and is now a commited ballot to be tallied (i.e. cast). By not doing this the the ballot remains a challenged ballot and is published to the web server at the end of the election so that the voter can verify his printout with the ballot stored in the system (this is just one of several end-to-end verification mechanism in STAR-Vote)
Tap listens to the Auditorium network, awaiting a polls closed message. Once the message is sent Tap performs its duties as a data diode, sending the challenged ballot plaintexts and the ballot IDs of the committed ballots to the web server allowing voters to confirm their vote was either counted or was handled properly by the system as a whole.
The Web Server hosts a site that shows users all challenged ballots (rendered to look just like the printouts), allowing them to ensure that their ballots were cast correctly using the ballot ID on their receipt. The site also has a list of committed ballots where the voter may see that his committed ballot was counted through its ballot ID.
The VoteBox Preparation Tool (or preptool) is designed to be used in conjunction with the VoteBox Runtime. Its primary purpose is to allow the user to build a ballot from scratch (or edit a premade one) and then export it so it can be sent to a VoteBox Runtime. The preptool is designed to be a full-featured ballot editor, allowing the user to save a ballot and then reopen and make changes to it later. With this tool, the user can add, remove, and reorder races, enter candidates and other information in multiple languages, and preview the current race or even the entire ballot.
Auditorium is the application-level network protocol that the STAR-Vote system uses for communication between machines. It runs on every machine, managing a list of machines on the network so that if any machine stops working correctly the remaining STAR-Vote machines may continue to run properly and document which machine went bad and when it did so. Auditorium also allows for mass redundancy of information, as any message broadcast by any machine is stored in a log file on every machine on the network.