No. To protect voting, don't use software. Everyone needs to be able to _understand_ as well as be able to verify that they successfully voted.<p>Besides the issues with what software the machine is actually running, most people cannot comprehend or understand that software - even if it is open source. That is not acceptable for an open democratic society, or to sustaining it.<p>In this particular situation it should not be necessary to rely on an expert to explain whether the vote counting mechanism is reliable. This only adds to the problem of unreliable or scheming officials - it doesn't improve anything in terms of transparency.
Electronic voting is a bad idea and I'd be suspicious on anyone trying to promote it.<p>How can you know that even if the source code for the voting machine is open, the voting machine is running the exact same source code? How can you know nobody has tampered the code the instance is running?<p>I'm glad my country is still running on paper ballots and glad we require voter ID.
I'd like to reference Tom Scott's video[0] here. There is no need for an electronic voting system, paper ballots work perfectly.<p>[0] <a href="https://www.youtube.com/watch?v=w3_0x6oaDmI" rel="nofollow">https://www.youtube.com/watch?v=w3_0x6oaDmI</a>
This is plain bullshit. Opensource gives no guarantee that the vote won't be altered by whoever runs the machine.<p>What we need is a zero-knowledge proof: we need the entire voting dataset to be publicly downloadable and some kind of checksumming so that, while maintaining anonimity, I can 1)check that my vote is the same 2)run whole the counting in a blink on my PC.<p>This gives much better guarantees of no tampering
First and foremost, use paper ballots. Before anything else. The paper ballots are the System of Record. If ever in doubt about downstream results, paper ballots can be hand-counted. (Additionally, use paper voter rolls. Mark registered voters when they vote, and track any same-day registrations on paper. The exact number of ballots cast can be extracted from the voter rolls.)<p>Second, <i>never</i> allow paper ballots to be handled by just one person, or by only members of one party - whether blank or used. Require that members of at least two political parties be present any time the ballots are physically touched.<p>Third, if using machines to read the ballots (ScanTron, etc), conduct spot counts of random machines, to make sure the machine results match the paper ballots. Conduct spot counts of entire polling stations randomly to make sure result totals match voter roll totals. Although this isn't 100% certain, it doesn't take a lot of spot checks to detect any sort of large-scale fraud effort.<p>Do these things, and it's exceedingly difficult to do statistically meaningful vote fraud, because we have a high degree of trust in the paper ballots and their surrounding process. From there, you can use automatic ballot reading and tallying to get fast results - the vote counting/tallying automation is derived data, not the System of Record.
A child can understand paper ballots and why they work.<p>There are probably less than a hundred people in the world who can understand an electronic voting system at every level down to and including the silicon.
To protect voting don't use electronic voting.<p>Paper ballots (the kind with marks read optically, not the ridiculous punch cards at the center of the Florida 2000 debacle) are easy to use and understand with a very low error rate and keep a paper trail, being the actual ballots.<p>I don't understand why anyone other than the companies who sell e-voting machines actually want electronic voting.
As someone who is a firm supporter in free software as the best option in every area, this feels like a subversive attack.<p>Voting software is bound to fail, no bug bounty is big enough to offset the billions that could be made off of hacking an election. It is bound to fail spectacularly, and then for the rest of time people can point at the election and say "the ability to see the source code let this happen."
Geneva has made its e-voting software public: <a href="https://republique-et-canton-de-geneve.github.io/chvote-1-0/index-en.html" rel="nofollow">https://republique-et-canton-de-geneve.github.io/chvote-1-0/...</a><p>I'd much prefer electronic to paper. Last year I voted on 24 initiatives, and that is just the federal level. It also does not include elections.
Well, IMHO a good way to digitize voting would be to give out a USB-drive-like (NFC) device with an option to set a value and lock it in the read-only mode using voter ID.<p>How it will work:
A person gets this device in the voting center enters/gets his voter ID, does the voting (anonymously), presses the read-only lock and throws it into the bin. After all the voting these device are scanned and voting data is retrieved. A voting database is populated in each center in a transparent way, to prevent tampering (several parties can be allowed to read this data separately and then all data variants can be compared against each other, just in case). After consensus on the voting data, each voting center sends the results for counting. And the voting is completed.<p>In the end, these devices are reset and the cycle continues.<p>Well, I'm sure that there must be some problems when voting the aforementioned way. But I guess it could work out, with some modifications.<p>EDIT: Grammar.
My first job was an ethnography of electronic voting in a wealthy region in northern Italy.<p>By our observations electronic voting added several layers of complexity that are difficult to justify.
Why can't you have everything set up so that when you vote, you get what amounts to a JSON Web Token to be able to later verify that you did in fact vote? You could use the governments publicly available key to verify that your vote reached the central service, and part of the JWT could contain your vote as well as your identifying information (SSN in USA).<p>Obviously everything could have fancy UIs created for end users so they don't see that really all have is a JWT (maybe a QR code printed out when they vote? And all the info easily human readable?). Verification could be handled by a .gov address and also through manual use of the public key (so other services could be set up to verify votes as well). And internet connectivity wouldn't be a problem as they could just require T1 lines at polling locations (I assume if phones went out across the country the election would be delayed regardless). You could likely tell if someone had stolen the private key (the only way I can think of breaking this system), if you have a service to verify someone's vote, and it doesn't show up there, even though you have a signed JWT containing your vote. That would prove someone had stolen the private key, allowing for a makeup election.<p>Am I missing something basic of how this would be hackable? I'm one of those who finds it odd that many elections around the world are susceptible to simple human mistakes/purposeful malicious actions when it comes to counting ballots.
Why is it that electronic voting is so vehemently opposed here on HN and by many technologists in general when virtually every other existentially vital system they rely on is run electronically?
“R. James Woolsey […] former director of [CIA]. Brian J. Fox, […] develop open-source voting systems” — even if I had no opinion on the matter, it'd seem to me that there's a clear conflict of interest there.<p>To protect voting, do NOT use software. At all. Open-Source software is no more trustable than paper, and is orders of magnitudes more complex to set up and audit. If you can't explain a 5 years old how it works, your voting approach is not trustable.
First, you have to understand the problem:<p>1. You don't need to commit widespread election fraud to throw an election if you can predict where a small fraud will matter.<p>2. Not all election fraud is a miscount of ballots. Throwing out minorities' registrations is also election fraud, and you can't fight that with more-reliable ballots.<p>3. The best solution might not be a technology solution. Paper ballots make it hard to scale fraud. But that's not enough, since fraud doesn't always need to scale.<p>4. Early voting and absentee voting need to be taken into considerations and are a growing part of voting in the US.<p>5. If software systems are used in voting, tallying, or anything connected to election results, the systems should be open to inspection and to pen testing.
Security may not ever be 100% with e-voting systems, but it can be secured enough to where the probability of any hack attempt would have minimal impact on the overall outcome. I can think of several ways to a secure, verified registration could work just off the top of my head. I think the issue is more, where's the incentive for the government to make this happen?
There's got to be some way to put votes on a blockchain. More important than voting electronically is being able to verify your own vote was not tampered with, and that all the votes add up as reported.
To protect voting, use this or something similar:<p><a href="https://en.wikipedia.org/wiki/Scantegrity" rel="nofollow">https://en.wikipedia.org/wiki/Scantegrity</a>
Related comment to a related thread<p><a href="https://news.ycombinator.com/item?id=14921935" rel="nofollow">https://news.ycombinator.com/item?id=14921935</a>
A lot of talk about securing voting machines/verifying that they run the correct software. Why do we have to have physical machines? If it's electronic, surely a website would do if you have the correct means of ID?<p>NB: this is not an indication of which side I fall on the debate, it is an observation.<p>[EDIT] Also, I'm aware similar issues exist with a website, but it seems a lot of focus goes on the actual machine.
"The blockchain is an undeniably ingenious invention – the brainchild of a person or group of people known by the pseudonym, Satoshi Nakamoto."<p>It isn't even definitively known who invented blockchain, it is behind the pyramid scheme known as bitcoin and no, no way should that ever be used in voting system computers.
I'm not a crypto fanboy or anything, but I feel like voting is a great application of blockchain technology. It seems like the system could be made to be both anonymous and publicly verifiable, and the vote count would return more or less immediately.