1. Voters vote by marking ovals with a marker pen on paper ballots.
3. The paper ballots can be counted by the optical scan machines that are already widely used in many places.
4. The paper ballots can be hand counted.
5. All the ballots can be published, allowing anyone to independently verify the counts.
6. An individual voter if they choose to can make a note of short alphanumeric code that is revealed when they vote for a candidate, and using that note later can verify that their vote was included in the total and went to the correct candidate.
7. An individual voter cannot prove to a third party that they voted for a particular candidate.
Here is a paper on such a system: https://eprint.iacr.org/2010/502.pdf
Wikipedia article on it: https://en.wikipedia.org/wiki/Scantegrity
Here is a paper showing how it satisfies item #7: https://eprint.iacr.org/2010/502
Almost all of the cryptographic mojo takes place when the ballots are printed, so no modifications are required to the scanners. You do have to use a special marker to mark the ballots.
Doing the cryptographic verification of all the votes would almost certainly be done by software, but as all the ballots are published and the system is completely open and documented, independent parties can easily do their own counts. The software is also fairly simple.
It's funny how things change. Just five years ago, HN was awash in people shouting that paper ballots are not secure and everyone should switch to electronic. Now the conventional wisdom is the opposite. Much like the way that in the 90's, keeping a password on a Post-It note was considered not secure, and now it's the safest thing going.
Instead, time after time, we get shady software from shady people with disturbing political connections (I’m not talking the dominion thing either — this seems true for all voting software). The idea that crooked politicians hire crooked companies to wrire crooked software shouldn’t come as a surprise to anyone.
Subscribing to this kind of "digital bad" dogma is lazy because you don't have to think for yourself.
But when people think elevator software is broken, they don't take the elevator. When (enough) people think voting software is broken, they topple governments and start civil wars.
And some people who disagree with you are still thinking for themselves. That "not thinking for yourself" is lazy argument.