I found an interesting research paper by Ron Rivest (the R from RSA, a highly respected cryptographer and security expert.)
The ThreeBallot Voting SystemIt's pretty clever. It's a scheme that provides end-to-end transparency to the election process, all while preserving the secret ballot, and including ways to catch the most common fraud attempts.
Basically, you vote using paper ballots and optical scan equipment. The trick is that you're not casting one ballot. You're casting three ballots. Start with a sheet of paper with three ballots printed side-by-side on it. To vote for a candidate, you fill in the scantron dots for that candidate on two of the ballots. To vote against a candidate, you fill in only one scantron bubble of the three on the ballots. Lather, rinse, repeat for each office/issue. Make sure you mix things up, so you're not always putting the dots in the same pattern on the ballot. When you're done, go to an optical scanner, which does not count the ballots, it only verifies you filled out the ballots correctly. When you're done, you submit your ballots, in a process where randomized serial numbers are printed on each ballot, the ballots are separated from each other, and a random one of the three ballots is photocopied, and the copy is given to you for you to keep, then the ballots are put in the box. The point of this is to ensure you have proof of your vote, and can prove your vote is counted, but you can't prove to anyone else who you voted for, thus preserving the secret ballot.
Come tabulation time, all the ballots are scanned, using the usual optical scan technology, and the ballots are all made publicly available on a web site. Not only can the state count the ballots, the entire public can count them, and you can look up the ballot you kept by serial number, and verify that the ballot that's now in the official record is correct. Say goodbye to ballot alteration - now there's a 1/3 chance that any fraudulent alteration of a ballot will be caught. Fraudulent alteration of multiple ballots will certainly be detected.
The names of everyone who voted in the election are also posted, but not associated with individual ballots, thus everyone can ensure that the ballot count is correct (3 * the number of voters), and you can look up names to ensure your dead grandmother didn't vote this election.
Why can't we use something like this? Oh, yeah, because then the Republicans wouldn't be able to cheat...