We've all went round and round and discussed the voting systems in current use made by Diebold, ES&S, Sequoia and others. All of them have serious, severe flaws, and our elections are at a very high level of risk of fraud.
But I don't want to talk about the existing flawed systems. I want to talk about doing it right.
In other threads, I've brought up
Ron Rivest's ThreeBallot System. It's pretty damn clever in that it (for the most part) allows voters to take home a copy of one of three ballots they cast, and be able to prove they voted, but not be able to prove who they voted for, thus preserving the secret ballot. They can also compare their ballot copy with the copy that's scanned and online on the website, to verify that that ballot's in the system correctly, and because all ballots are publically available, everyone can check the count, make sure the correct number of ballots have been cast, and check the list of voters to make sure that their dead grandmother didn't vote.
That said, ThreeBallot does have some flaws - the paper does now show a few attacks that can be made by fraudsters to cook the election. Alos, you're filling out three ballots instead of one, and you HAVE to fill out many more bubbles than the conventional OneBallot system, so usability becomes a big issue. It's still a big improvement over the current clusterfuck.
I just found another transparent, verifiable voting system -
Punchscan. It's kind of hard to describe, but the website shows how it works - you use a magic marker to fill in your choice in a two-layered ballot through holes in the top layer, then you separate the layers, so the information about which choices are made is separated. You scan one of the layers of the ballot, destroy the other layer then the tabulators use a cryptographic algorithm to reconstruct which choices you made (designed to be auditable and observable along each step), and you get to take home one of the two layers of the ballot (you pick which one) and again, you can verify your ballot was cast correctly by comparing your layer with the scan available on the web site, but you can't prove who you voted for, preserving the secret ballot.
There you go, two different ways to make elections better, more secure and transparent and fraud-proof. How would you do it?