[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Demexp-dev] Thoughts on voting machines
From: |
Brian Hurt |
Subject: |
[Demexp-dev] Thoughts on voting machines |
Date: |
Sat, 18 Sep 2004 19:14:27 -0500 (CDT) |
I'm not sure what the scope of this project is, or what the current design
is. So I thought I'd just throw these thoughts at the wall and see what
stuck.
First off all, the only voting system I'd trust needs paper. The paper
ballot is the legal, official ballot. And the voter has to hold the peice
of paper- and understand what the paper says!
But even given that, there is a lot we can do. The general idea I had was
the touch screen system exists simply to print out the ballots. In
addition, the computer system can perform a non-binding count. The voter
enters the booth, makes his/her selections. Out comes a peice of paper.
On the paper is printed his/her votes- in english. If the vote is
correct, the stick it into the slot and the vote is recorded. If not,
they throw the ballot out and try again. Repeat until they get a ballot
they like.
Note that the computer should have a precise count of exactly how many
votes for Kerry, how many votes for Bush, etc., are in each lockbox. So
after the election is done, while the media is still reporting on the
non-binding results, the election officials roll dice, or pick cards from
a hat, or in some other way select a random statistically signfigant
selection of polling machines to recount by hand. The pull the box out,
and start counting papers.
If the count is off by the least amount, off by one vote, the non-binding
results should be thrown out and the entire election recounted. Since
which machines will be the sample machines to recount is not choosen until
*after* the election, any wannabe vote rigger doesn't know which machines
are safe to rig and which aren't. The statistically signifigant
requirement means that it is unlikely any widespread rigging, of the sort
usefull enough to throw an election, would be highly unlikely to go
undetected.
The paper ballots themselves could be made very easy to OCR with an
obscenely high degree of reliability. First off, you print on the paper
alignment marks, which allow you to figure out the paper's orientation no
matter what. Second, you use an OCR-friendly font, like the one used for
the numbers on the bottom of your checks. Third, there are a limited
number of possible strings at any given location. If we OCR a vote and
get back "Albert W. Gere Jr., Democrat", that was much more likely a vote
for Gore, and not a vote for Bush. We have a lot of redundancy. And, if
all else fails, humans can read the ballot.
The goal of the computer is to make creating the ballot as easy,
foolproof, and quick as possible.
For example- color coding the candidates names. If Gore's name was in
blue, Bush's name in red, Nader's name in green, etc., it'd be a lot
easier for the eye to pick out who they want to vote for. In addition, we
can consider icons. What if, beside Gore's name, there was a Democrat
Donkey logo, beside Bush's there was a Republican Elephant, etc.
Possibly even little thumbnail pictures of the candidates. Note that the
literacy requirement drops way down here.
There is a known tendency for voters, when picking at random, to pick the
first name on the list. So we want to randomize the order of candidates
for every voter, to negate any statistical advantage of position.
Another idea I like is help screens. For candidates, these would be
small, one-page explanations of who they are and why you should vote for
them, written by the candidates. For referendums, they should be similiar
summaries of why you should vote for/against the referendum, written by
parties advocating said position. This would allow the voter in the booth
who suddenly went "I have no idea who these candidates are, or what this
referendum is about" to be given some clue.
I also like the idea of allowing sample ballots to be programmed in. Note
that the voter would still be able to go back and override the choices,
it'd just be a bunch of default choices. So the voter could go "I want to
vote the straight Trotskyist ticket, except I hate who they have running
for Dog Catcher, do I want to vote for the other guy."
Another idea I had: in addition to the ballot, the voter gets an identical
"receipt" to take home. The receipt and the vote is given a 256-bit,
cryptographically secure random number as an ID. After the vote is done,
all the votes are published on a website somewhere- no names, just receipt
ID and what the vote was. The advantage here is that I, the voter, can
then verify that a) my vote exists and was counted correctly, and b) the
tabulation of votes as put up on the web site matches the tabulation of
the votes announced as the result. This allows the average voter to
verify the election results. But the anonymity of the vote is still
protected- while it easy to go from the individual via the receipt to the
id number, there is no way to backtrack and link an id number to a given
individual.
This could all be done with off the shelf parts. My back of the envelope
approximation would be:
- a really cheap PC motherboard. We want a PC because we want
on-board video, not something you get with most embedded hardware. But we
need almost no processor power. VIA would be good, or really cheap
Athlons. K6s would work if we could still get them. Or Transmeta. The
idea here, however, is cheap as can be.
- A touch screen monitor
- Some sort of cheapo printer (A receipt printer)
- Some bent tin
We need someway to know when the user has voted, and some way to make sure
the voter only votes once. Those I'm still working on.
--
"Usenet is like a herd of performing elephants with diarrhea -- massive,
difficult to redirect, awe-inspiring, entertaining, and a source of
mind-boggling amounts of excrement when you least expect it."
- Gene Spafford
Brian