With all these ways to cheat, proposing a new way to fix it should be something we think about as well.
Machines aren't gonna go away, nobody wants to wait weeks for results.
Machines should scan ballots, to image, and the image should be public.
Everyone can see the ballots and count them if they choose to.
Ballots should be serialized and when you're given a ballot you should get a receipt for that ballot.
If you want to check your ballot online, you can go and look it up, see how it was scanned and also see how your vote was cast.
Machines shouldn't be doing magic and spitting out numbers. I wanna see the ballots as an image and I'm sure theres plenty of ways to process images with different programs to come up with results.
If everyones program comes up with the same number, then we can agree.
I an not an expert but it might be possible to use a Cryptographic hash function. That is what is used to store passwords in many computer systems. It allows the user's password to be checked without revealing what the password actually is.
If you did that then all the ballot images could be publicly available and it would be possible to check your own.
The machines could still cheat, though. Imagine you had a simple ballot that had only two options: R and D. You could have an image store of 100,000 ballots only one of which would have an "R" vote and that could be shown to every Republican voter who asked to see their ballot.
Machines will always be a problem. If they are eliminated that won't secure the elections but it will remove one whole layer of cheating options.
I hear yeah, but... I have been involved in software development of voting systems for unions and other small scale elections. I have really studied what it means to create a fair election.
Basically you need to fulfill the following, to create fair election systems:
The first two are really tough to implement with electronics. If you make it more traceable, it usually becomes less anonymous, and vice versa.
A coworker and I did devise (in theory) an electronic system that was both traceable and anonymous. It involved double enveloped encryption with appropriate public/private keys. In theory it would work, but it violated the third principle. It was not transparent. Ordinary people would not understand how it worked.
As soon as you start talking of "cryptographic hash functions", you have lost 99% of the voters. It is no longer transparent.
The only system that satisfies the above three principles at the same time, is a pen, uniform paper ballots you get by showing ID, voting booths, and public counting.
Introducing electronics in the elections, will inevitably violate at least one of the above principles.
I am approaching a similar conclusion. The part I have a problem with next is how do you count the multiple votes on a typical US ballot?
If you get a machine involved then you are back where you started and if you do it manually with a pencil and paper that is also subject to fraud.
If you do it manual, you have representatives from each parties counting. They "watch" over each other.
It is IMO ok to use counting machines to get a faster tally. However, a manual count must always be done, and it must supercede any electronic counting.
I still worry about the details. Imagine that you have many ballot counters. When the first ballot is selected a vote count for several positions will need to be incremented. How exactly should a person do that? They won't be able to keep the totals for all the candidates for all the positions on the ballot in their heads.
I thought about a simpler system (which also has issues) where each position would have a separate ballot. Then you could just split the votes into piles. They would be quite simple to recount and check, if necessary.
You still need a safe way to combine the totals because 10,000 votes for candidate "A" could be counted but when reporting back to the county/state that could be reported as 5,000 votes.