Voting Machines - Why the trouble?
Tonight I read an article in Dr. Dobbs Journal by Ed Nisley titled “Root the Vote: Wetware.” Although the article discusses the problems of voting machines, it doesn’t offer any idea on how to resolve them. A brief Google search didn’t yield any usable results, at least as far as I’m concerned. The question I have is this: What is so hard about writing voting machine software?
Here is my proposed solution:
1. Voter Verification
To insure that only the votes of registered people are countered there needs to be a method to validate them. Allow the machine to perform the verification. The voter swipes their card and is asked a series of questions to determine and validate their identity.
2. Voter Database
In order for the above to work the voting machine will need to have access to a database of voter data. Since setting up a network may prove difficult, copy the database to each machine. I don’t think the databases will be prohibitively large.
Since voters need to be registered a certain length of time before they vote the machines can be synced up well before the voting begins.
I do notice a big problem with this, and I will discuss it later on.
3. Vote Validation (for the Voter)
After the voter has cast his ballot bring up a simple screen that displays the position, the person that was voted for and two buttons: “Submit Ballot” and “Change.”
The “Submit Ballot” button would officially and irrevocably cast the voter’s ballot. The “Change” button would bring the voter to a screen that would allow him to fix which ever positions were found to be in error.
4. Determining the Winner
Each machine would be synced with a central computer. This computer would copy each machine’s data to its database. Thereby creating a duplicate of the information.
Having a local copy of the voter database does pose a problem, namely fraud. Since each machine has a copy of the voter database, and a record of who voted, it is possible for someone to vote on multiple machines. To prevent this the sync process would identify the votes that have been cast more than once and would only use the earliest recorded vote in its tally.
Once all the machines have been synced, and the votes verified, then the winner can be determined by simply counting the votes.
5. Vote Validation (for the Auditors)
Each machine would keep track of the voters who logged in and who they voted for. A simple database query could display this data.
Once the machines have been synced a report would be available to show any votes that weren’t counted for whatever reason.
I understand that I’ve taken a terribly simplistic approach to this but I just wanted to get my ideas out there for the public to tear apart. I am by no means an expert on electronic voting machines and I don’t since the issue with getting them correct. Maybe I’m dense or maybe I understand the complexities. Please feel free to leave a comment.