Ask HN: Why Isn't Open Source Voting Software Mandated?

101 points by _wldu ↗ HN
Why doesn't the United States (and other democracies) require open source voting software for all elections? Software that can be externally verified and validated and that could reproduce the results of an election (given the voting data set). Why are citizens expected to trust private companies and closed source software to elect officials? All software has bugs. This fact is not disputed. Citizens should have access to inspect the software used during national and state elections. This should be a basic democratic right. Why don't we do this? Why don't people demand it?

133 comments

[ 0.19 ms ] story [ 216 ms ] thread
There really isn't a good case to be made for electronic voting at all. Paper is much simpler, more reliable and has none of these issues.
One could easily envision an electronic system backed with paper printouts. The electronic system provides immediacy and avoids human counting errors, while any large scale manipulation of the electronic system can be verified by counting the paper ballots.
OP seems to be referring to the existing (proprietary) software that is used to count paper ballots -- not software to make the entire election process electronic.
I think OP is referring to the voting machines that count the ballots. Such as Dominion software, which Trump is causing a big ruckus about.

We're basically doing some degree of electronic voting with the machines that count the paper ballots anyway. And with the introduction of large-scale mail-in ballots, the argument against electronic voting is starting to fall apart.

Parent could be talking about the scanning and tabulation. In theory, there shouldn’t be anything problematic with “you vote on paper, and then slide it through a scanner, from whence it goes into a sealed bin”. Then you can still hand-recount.
My state uses this method already.
Yes there is. A computer counter is worse than a computer ballot printer. You have to have it as distributed as possible to make it as expensive as possible. A single counting or handful of counting machines makes it one machine to take over to do anything you want.
In my country (UK) the results are known pretty much for certain the second the polls close. The results for certain are known within a few hours. We use paper and hand counting. Why do you want to use scanning? What problems do you think it solves that we haven't solved with paper and hand counting?
Have you seen a typical American ballot?

There are many races to vote in at the national, state, and local level. Besides President, every ballot would have included house rep and 2/3 of states had a Senate race. Then add state governor, house rep, and senate which often align on the same cycle. Most states also elect attorney general, treasurer, education and several other statewide executive offices. Some states elect state supreme court judges. Then there can be mayor, city council, school board, port commissioner, and other local offices, although many states align these to non presidential election years. Then there are states like California that always have several initiatives.

In practice, you are looking at dozens of races on this year's general election ballot in many states. Counting all those on paper would be time consuming and possibly less accurate than using an optical scan counter.

How many questions are on a typical UK ballot? I am under the impression that in most parliamentary systems a ballot normally has one race for MP. That's it -- or maybe one other issue, under extraordinary circumstances (e.g. Brexit).

A typical U.S. ballot may have 20 or 30 issues on it.

Even if one assumed that all other factors were equal (they aren't), even the raw counting might be expected to consume 20 or 30 times as much time.

We vote on a LOT of things here, and it becomes quite complicated.

A U.S. voter may well be voting on issues related to the sewer district, and the school district, and the library district, and the city council, and (this is important) those various districts might be overlapping or even disjoint. Just because both Bob and Alice are in Sewer District 5 doesn't mean they're both in Road District A. Far from it.

It takes time just to ensure that everyone has been given the proper ballot, much less count and combine the figures from various polling stations (Sewer District 5 may cover multiple polling stations, as may Road District A, but they may not be, and probably aren't the same stations).

It's a mess, granted, but we prefer voting on stuff rather than electing a council or MP who takes care of everything for us.

The point about voting is it needs to be transparent, paper votes locked in a box and taken to a counting station is about as transparent a voting system as is possible, the number of links in the chain where votes can be tampered with is limited and everyone can understand how it works.

The moment you introduce any kind of electronic system into the voting or counting process nobody can understand it all anymore, there's a million lines of code and billions of transistors, nobody can validate the entire thing and even if they could, you couldn't, you'd have to trust the people can.

I know this is a naïve viewpoint, but I'm not yet totally convinced there is absolutely no way to securely enable digital elections.

Obviously I defer to the experts in the field for what is and isn't possible, but something about it scratches at the back of my mind...

It's not just about security. It's also about democracy. Who can verify that a voting system is secure? Only software engineers. And to be honest, only a small subset of them. Your own comment hints at that. Paper ballots allow anyone to verify the results of an election. It's supposed to be a universal process that everyone can be a part of.
Hard disagree. I think there are a lot of reasons why electronic voting is preferable to paper ballots, just that the reasons disqualifying electronic voting are complicated problems to solve.

In my county, paper ballots are used (used to use electronic booths) and the form is printed in English, Spanish, Korean, and Vietnamese. Hypothetically an electronic ballot has no issues with localizing to an infinite number of languages without regards to costs of printing out separate ballots. Electronic voting isn't impeded by the restrictions of paper. It could have rich media, sound, videos, etc.

Accessibility is another potential advantage. Right now with paper ballots the expected procedure for voting as a person who is unable to use the ballot is to have a family member fill it out for them. Electronic voting means that you can make accommodations for all sorts of disabilities and special needs while still allowing the person to vote without the need for a proxy.

Electronic voting could be more convenient than in person paper ballots. Hypothetically if a person could vote online on their phone, the process would be more convenient and more people may vote. It also makes it easier to vote for people that are traditionally disenfranchised due to time constraints of voting in person (they can't afford to go to the polls, even if there exists laws that require employers to allow for time to go vote on election day). It also limits avenues for voter intimidation.

Finally, electronic voting would (hypothetically) be instantaneous and accurate. It isn't dependent on humans for counting. There isn't really a potential for 'hanging chad' incidents. We'd know the victors of an election as soon as polls close.

The issue is unfortunately all of these advantages don't really outweigh the issues that we don't have good solutions for (yet, or maybe ever).

Electronic voting isn't tamper proof. Having open source voting software doesn't really help verify that the software that you say is running is what actually is running. If it is exploited, it is much easier to tamper with electronic votes than it is paper ones. If it is online, that opens it up to even larger issues of exploitation.

There's no way to verify that what you intend to vote for is how you actually voted according to the machine. With a paper ballot there is tangible proof of how you voted, while that doesn't exist on a purely electronic vote.

Paper ballots have their own set of issues, but they are manageable compared to the current limitations we have for dealing with electronic voting.

Experts in this space demand paper ballots.
I think they're talking about vote tabulation, not ballot generation.
I think a practical means to achieving this would be to self-organize and create the hardware+software design and a proof concept for this. That makes it much easier for those concerned to stress-test it, and then point to benefits, since there is now a tangible realization of the idea. That should completely change the dynamics of the political process needed to get adoption. An easy path would be to get it approved for trials in smaller-scale local elections, and then slowly scale its usage over a decade or so.

PS: One could easily envision an electronic system backed with paper printouts. The electronic system provides immediacy and avoids human counting errors, while any large scale manipulation of the electronic system can be verified by counting the paper ballots.

> Why Isn't Open Source Voting Software Mandated? ... Why don't people demand it?

Because paper is simpler and better. It works just fine in other countries.

> All software has bugs.

So why do you want software? What do you think the advantages are?

Are you kidding?

We just had an election amid a pandemic where electronic voting could have literally saved lives.

Then we have a president who refuses to concede and states that are still counting and recounting votes in a tight election weeks after it took place, people don't expect a final tally until December.

> Are you kidding?

No?

> We just had an election amid a pandemic where electronic voting could have literally saved lives.

The electronic voting machines the OP is talking about are still in-person. It doesn't make any difference to the risk in the pandemic.

> Then we have a president who refuses to concede

That's nothing to do with paper/electronic voting, is it?

> states that are still counting and recounting votes

Well why do they take so long? Why can it be done in hours in other countries but not in the US?

> people don't expect a final tally until December

I think a single person could count all the ballots in that time. What are they possibly doing?

> people don't expect a final tally until December.

It's always been this way, even before the pandemic. States have 30 days to certify their results. It always been this way. Many trump supporters believe that results will magically change in December. The reason it took longer this time is because:

1. Majority of people voted by mail

2. Many states were not allowed to count as the votes were arriving

3. Many states weren't even allowed to check signature and remove voted from envelopes in advance

4. Dismantling sorting machines in USPS before election causing delays (it took 10 days for my friend's ballot to be delivered within the same county) because of that many states extended wait time for incoming ballots.

> Because paper is simpler and better. It works just fine in other countries.

Also this should be emphasized that you don't need a PhD to tell a fraud is being committed in front of you with paper ballots. I believe that's the most important thing about it.

The reason is simple: there is no open source voting software lobbyist in Washington DC with financing for congress people's elections. Anytime a Lobbyist is partially financing a congress person's election, they get to "participate" in that congress person's legislation within the Lobbyist's area of specialization. I wager there are Lobbyists for the commercial voting systems, and that is what prevents an open source alternative from even being considered.
i think its stronger than this. as evidenced by the Bayh-Doyle act...culturally the US government is so heavily biased towards the profit motive that they see 'enabling business' to be much more of a goal than 'building an effective society at a tolerable cost'.

look at tax software for another perfect example.

US is pretty busted

(edit: legal publishing, maps, insurance....)

Everyone here is talking about paper ballots. Good, but this ignores OP's question. Most voting machines, even if they have paper trails, have some software in them. Just saying "paper ballots" doesn't address the issue.

To answer OP's question, I personally have no idea but think it should be. Much of our scientific work is open sourced (e.g. codes from national labs, NASA, etc). But I think a lot of people don't understand what open source is or means. They think you can't have open sourced software and still privately own it. We still honestly haven't figured out how to deal with this adequately in the law (there's a post on the front page about FB taking their OS project, and these posts happen at least once a month). People don't demand it because frankly people aren't very tech literate.

The answer to OP's question is... why have software at all? Why not just paper? Why do you want a 'voting machine' at all? What's wrong with paper?

The solution to a problem that should not be solved with software is not to have different software.

We already have voting machines in use! That's the software that needs to be open-sourced.
But why? What problem do they solve? Get rid of them. Don't convert them to open-source. This is the wrong argument to be making.
Well, optimally, yes. But I don't see this happening. Ballot counting machines and software are really the only way elections can happen in a reasonable timeframe in the US, and even then with considerable delays, as evidenced by this year's election.
The voting machines are already here and were in widespread use before the most recent election in the US.

I agree that paper ballots are ideal, but the machines are already in use.

We went from abacus to digital circuit painstakingly over thousands of years and you're using a compute-er with a screen to post this comment. There's nothing wrong with paper except its extreme inefficiency in the human realm. We could have audit-able ballots and public/private keys to check that our ballots have been counted and tabulated correctly. Is it the case, perhaps, that ballots are supposed to be "private" and therefore we have "private" software count them?
> There's nothing wrong with paper except its extreme inefficiency in the human realm.

They aren't inefficient. In the UK (paper ballots) an accurate estimate is available when the polls close, and a certain result is available within a few hours before next morning. This is much faster than US voting machines.

True, but:

1. You didn't have to count 151 million votes in the UK election

2. You didn't have to wait a few days for mail-in ballots that were delayed in transit to arrive

3. You didn't have to do this in the middle of a global pandemic that required poll workers to stay 6 feet apart

Generally the US election results can be predicted the same day, this year had additional challenges due to extremely high turn-out, high use of mail-in ballots, and limited number of pool workers due to pandemic.

In my opinion, elections should be done using paper ballots, and those ballots are counted using electronic tabulation machines. After a batch of ballots are counted, a random sample of them are selected and manually counted. Should the results match, then you can have a high certainty of the accuracy of the count. Electronic tabulation machines are actually more accurate than hand-counting, and by hand counting again, you reduce the risk of the machines making "mistakes" due to technical glitches or malicious backdoors etc.

There were 32,014,110 in the last UK general election, which is one fifth of the US total, but then the population is also (roughly) one fifth of the US’.
11 states including Alaska, Arizona, Nevada, and Michigan have a larger land area than the UK.

[Edited to add: 46 states have a lower population density than the UK, adding further logistical consideration]

I don't understand what impact you think this makes?

If each community counts their votes... why does it matter how large an area they collectively cover?

It already has an impact within the UK.

St Ives constituency in the UK is generally the last to declare, presumably because the island populations are so small and remote it's considered unsafe for them to individually count and report the results for collation, for multiple potential reasons (Gugh: 3 residents)

And yet they have it done within a few hours.

Why is it about the US that means it takes a week... even with these machines which supposedly make it better?

If you reject my claim that US has many-times more remote places than the UK, that need additional logistical consideration, a further reason is that the US election has no particular hurry.

If your count in the UK doesn't finish for a week, the parliamentary session opens, and you don't have local representation in parliament. There's an immediate procedural consequence that disadvantages the local area and may result in concentrated unrest.

If your count in the US doesn't finish, the relevant [Congressional] term doesn't start until January 3rd, 2021. As such, there's no immediately comparable procedural consequence.

The Electoral College doesn't cast its votes until December 14th.

The Supreme Court won't get involved, to hurry you up, until December 8th.

Correctly postmarked ballots will (in some states) still be counted if they arrive late, up to November 23rd.

Today is still November 15th. In theory, not all the votes have even arrived to be counted yet.

The US has 21 counties that are larger than Wales. 50 counties larger than Northern Ireland. Not states, counties. And Alaska doesn’t have counties so it’s not dominating the results.

The US is vast. The political geography is different because the physical geography is different.

Don't know about UK, but I suspect it is because they start counting as soon as they receive them.

In US there were some laws that counting couldn't start before polls are closed. Despite mail in ballots arriving a month earlier. In some places they weren't even allowed to prepare them for counting (like verifying signatures and removing ballots from envelopes).

The UK does not start counting until polls are closed. They count all ballots - both in-person and mail-in - within a few hours. They have a lot of people in gyms and just go through them quickly.
The states that had long delayed results were due to being close, and accepting mail in ballots long after polls closed. It's not a matter of counting speed.
The UK does recounts in hours, not weeks.
This election is an anomaly and should not be considered the norm. But there's also some confusion where winners get announced before the total counting is done. They are just announced when there is believed to be statistical certainty. A nation wide (full) recount is not happening in a few hours and if it was I would expect it to have a decent error margin. The UK also doesn't have as many options on the ballots as the US you have president, house, senate, judges, reps, measures, state constitution amendments, etc. You can't make a one to one comparison.
Aren't UK elections generally just for your individual MPs? That's different than the US where you will have numerous races and ballot issues during the same election. For example, I voted for President, 2 senators, a congressman, probably a dozen state & local officials, and three state constitutional amendments.
Usually for MPs and councillors, but yes probably less than what you vote for. But couldn't you count at least president within hours? And then go back on a priority schedule? Doesn't seem to need computers.
> In US there were some laws that counting couldn't start before polls are closed.

This is a good time to remind everyone that in the U.S. there are many different voting jurisdictions, and at the very least 50 different sets of rules. Some similar, some not. So it's difficult to generalize, some places count early, some not, some allow late arrivals, some not, etc.

> This is much faster than US voting machines.

That's actually pretty much on par for much of the U.S. We have paper ballots and results mostly finished before the next morning. There are stragglers, of course, for good reasons, but you don't really hear much about those unless they are possibly going to decide the election, like this year.

And then of course 2020 is it's own special kind of fun, not typical of any other year.

Honest question here: how many races and questions do you vote on at once in the UK?

This year, my ballot had about a dozen individual races (including two state referendums and an advisory question) to vote on, and this is probably about or below the US median ballot complexity each presidential election.

I'm sure you have more on your ballot than us.

But can you not return a presidential result in the first few hours, and then go back in priority order?

(comment deleted)
> We could have audit-able ballots and public/private keys to check that our ballots have been counted and tabulated correctly.

With electronic voting, the bar for being able to validate vote counts is raised to requiring computer experts who understand public-key encryption.

With paper ballots, anyone who can count is able to validate votes.

Electronic voting would be prime for obfuscated attempts at influencing elections because only a handful of people would be able to verify that the machines counted votes correctly.

Inefficiency is a feature, having every state and every county slightly different makes systemic fraud very difficult.

All these phishing schemes that are extremely effective with IT workers and other security conscious people. I say just keep elections analog for the time being. Perhaps someday the technology will be mature, well understood, and distributed far enough to work but I don't see it happening this decade.

> Inefficiency is a feature, having every state and every county slightly different makes systemic fraud very difficult.

I agree with this - in addition, it makes it a lot easier for everyone to understand the system, and therefore more likely to trust it.

> makes it a lot easier for everyone to understand the system, and therefore more likely to trust it.

Is this the USA system we are talking about? Because a significant proportion don’t seem to understand or trust the system right now!

That's an interesting point because it effectively nullifies the argument for more nuanced voting mechanisms such as Score Voting. Since more nuanced voting would require a stronger reliance on vote tabulators. It is somewhat deflating that better voting methods must be discarded in favor of "inefficiency as a feature." I long for an upgrade to voting, but all these arguments _in favor of_ hand-counting-only make me think we are stuck with plurality voting for a long time.
I have a suspicion that a complex voting system (like, anything more complex than "most votes win") would spread greater confusion and distrust, that's just my pessimism.

I would be happy if we could have a national popular vote to choose the president, that reduces complexity. I'm wary of anything more, though I do like that there are now some experiments here and there with other systems.

Edit: I've recently come to the conclusion that the real value of elections is as a national show of force.

"1xx,000,000 of us are here and paying attention and expecting the government to respond to our interests and willing to do something about it"

> it effectively nullifies the argument for more nuanced voting mechanisms such as Score Voting.

I'm extremely confused by this statement. All the systems the parent is talking about still use plurality. Substituting in another voting method doesn't change the fact that each state works slightly differently (and really every county).

I'd also say that if this was your goal then you'd want something besides plurality. RCV/IRV would probably be good because it is highly inefficient because you have to do many different rounds whereas systems like plurality and condorcet (exception to STAR, which has 2 rounds) are single round methods.

I should mention Ireland and Australia does hand counting with IRV (Australia has had IRV for 100+ years). I don't think the hand counting is really a major factor, though I will still contend that ordinal systems are needlessly complicated when we have cardinal systems available to us (which also give higher fidelity).

IRV with hand-counting sounds nigh impossible, I have a hard time imagining how it is done. Are the multiple rounds done as multiple hand-counts?
I remember seeing a video where they were showing the counting on an election night, but that was awhile ago. I looked for it again but the current situation is muddying the search results. But I can try to remember. What I remember is that it was a pretty messy process and they were marking ballots (I think with stickers to keep the ballots immutable). But yeah, generally it is chaotic. But clearly it was done because Australia didn't have computers in the early 1900's. At least to the best of my knowledge.

As for part more information Clay (who might be in this thread somewhere?) put out a pretty good video on voting methods and towards the end he shows a sample of an Oakland Mayoral result that used IRV[0] (around 15:20). It isn't too useful in isolation but I do encourage watching the whole thing because it is from someone who is a HN member and an expert on voting.

[0] https://www.youtube.com/watch?v=HyBm_Hcu4DI

Use approval voting, which captures all the advantages of score voting at scale anyway and is dead simple to count.
It kills trees.
As long as they are replaced it's not too much of a problem.
Speed, I presume. With software, you can announce the results of an election the second after polling closes. The actual paper ballot count/verification might take a week, but that's one week of uncertainty you don't have to deal with.
In the UK using paper a pretty certain estimate is available in zero seconds after polls close and accurate results are available within a few hours. Faster than the US using machines, which take a week.
As long as pre-counting is banned in some states and mail-in ballots exist, this sort of timeliness will not be possible in the US.
I believe strongly that all votes should be made on paper ballots. Some portion of these ballots should be audited to find irregularities, and hand recounts should be done in the event of an extremely close election.

In the general case, however, tabulating ballots via a scantron machine or similar seems reasonable.

At some point in the process, vote information will be stored digitally. Whether it's posted to the SoE's website or during transmittal to the Federal or state governments.

I'm also trying to imagine elections with the number of people we have and number of races being counted by hand from the beginning, with no digital storage or tabulation, and it is rife with errors and even harder to validate in a reasonable way.

Hand counting is how we do it in the U.K.

It’s not actually that hard at all, including validation, through simple physical processes (that are incredibly tried and tested!). Write the contents of the vote totals on the outside of the box containing the ballots (total must reconcile to number of ballots placed in), then total all the box totals at the end for a single constituency. Constituencies then report back.

We get results back within a day and the validity has never been seriously questioned. The process can easily scale linearly too.

There are scaling issues though. The US is 5x the size of the UK. Counting is actually pretty hard and I'm not convinced it scales linearly. I'm also not convinced results are actually back in a day, but rather good estimates are given within a day.
The overall counting process in the UK scales horizontally rather well (it's a great example of map-reduce!), and it's close to unthinkable that the results affected by any given count would not be known on the evening of an election day, even if the shape of the resulting government were not known as in 2010.

What is not reflected however is the sheer number of votes that people tend to cast in the US - often voting on dozens of different measures.

The UK process does not have this aspect - at worst there may be a Westminster, country-specific parliament and city or town council on the same election day, and they are handled via separate ballot papers.

You also have to consider that polling stations are not uniform in their ratio of people to workers/machines. Some places you can just walk right in and other places you wait all day to vote. Assuming symmetry in this aspect is ignoring the fundamental problem here. If you watched the graphs update you'd notice that the small counties typically got their results quickly but the large counties took a lot longer. There is also the gather step where you gather the county votes from the polling station. Larger cities have a more difficult gather operation that smaller areas. Again, this all can be observed if you watch the votes over time.
I don't know what's going on in the US system, but what you describe sounds rather broken. In Germany (where I live and regularly volunteer as a polling worker), a larger county does not report slower than a smaller county. "Larger county" would just mean "more polling places" so that each polling place maps to about the same number of voters, therefore the load is distributed smoothly. The longest line I've ever seen in a polling station was 10 people who showed up in a group, and it took only 5 minutes to serve all of them.
Is this true or are you just guessing? If it is true I'd like some reference to back it up because to me this doesn't even make sense logistically. Like the same effect is true in distributed computing so it would be extra weird for humans to be far superior in this manner.
> There are scaling issues though.

It’s literally an ‘embarrassingly parallel’ problem.

A hundred people can count ten times the ballots that ten people can, and then merge their results.

This is a naive assumption. There's a few aspects that have to be considered that make it not trivially parallel.

The first is that there are a lot of reduction steps where we're doing many to one communication. The more nodes you have the more communication there has to be and this is an issue.

The second issue is that if we (naively) assume that there's a consistent error at each step, that the error will grow in each gather step. So if each worker has a 0.5% error rate, each gather has a 0.5% error rate, then our error rate depends on the number of workers and gather steps.

For what it is worth there is at least a gather step at each poll station, then each precinct, then the state, and then the country. It is also likely that these all get worse as the election is closer and there's more pressure on.

EU parliamentary elections are largely on paper; the EU has 100 million people more than the US.

US elections are also operated entirely regionally; the largest US election is that in California, which is smaller than the UK.

Yeah it makes more sense to have a digital tabulation, paper receipts, and a paper count later. You can also add in independent analysis by counting random subsets to do quick verification. Digital doesn't mean getting rid of paper ballots. And people are confusing experts advice of not doing "online voting" with "digital voting".
I assume this is working under the presumption that we get rid of the voting software that already exists? This is a big part of OP's question, but I'll entertain it.

You have to look at the 2000 election[0] where there was a switch to digital means. I don't have exact numbers, but I am under the impression that these machines are easier to use and are less error prone than the previous punch card methods. Your digital machines can also print you a receipt. So "why have a (digital) voting machine at all" is because it is easier and less error prone. Having election results going to the Supreme Court is a pretty big deal and should be avoided.

[0]https://en.wikipedia.org/wiki/2000_United_States_presidentia...

But yet again... you're talking about it relative to an alternative like punch machines... how about no machines.
I mean if we're calling a punch ballot a machine then I think a check mark constitutes a machine. Pencil, pen, hole punch, what's the difference? It is a mark on a physical piece of paper.

I think you're trying to work your solution into being correct rather than recognizing that the problem itself is extremely complicated. Given your other comments and our other conversations it is clear that you're overly simplifying the subject matter and frankly you are wrong about certain aspects of it (like that all votes are counted the night of rather than "enough"). If you flat out ignore these parts of the problem then you're going to get the wrong result. You should also not start with a solution and work towards an explanation, but rather work the other way around. These conversations feel really disingenuous to be honest. They feel more like they are based on how the UK is so much better without any real justification.

> Pencil, pen, hole punch, what's the difference? It is a mark on a physical piece of paper

Hanging chads? You even brought up the 2000 election in the US yourself. Pencil and paper (and no machines) would have avoided that mess.

The punch card was brought about because it was more reliable than a pen and paper where marks are routinely inconsistent. This isn't a UI team where people are just changing the format willy nilly, they are making these changes for legitimate reasons. Sometimes the "simpler" solution isn't as simple and reliable as one would think from just guessing. They actually test this stuff and seek more reliable solutions. Sure, it is slow to implement the new solutions, but that doesn't mean it is less reliable than the previous one. So please stop just guessing.
Instead of having a machine reading ballots in a consistent way, you’ll have humans applying subjective judgement and fighting it.
Humans who are subjective and have a dog in the race.
What's wrong with paper? Single answer: Consistent recounts. For example, the US had two really high profile, narrow elections (2000 and 2020), and they still cannot figure out how many times to recount to believe the result. Best of 3 recounts? Best of 5? Keep recounting random places random times until the person you like wins? Does that even change or improve anything?

With paper, it's 100% guaranteed that "No two recounts will ever be the same". It's a human process. Two humans verifying it will never come to the same conclusion. One will say the "ballot stamp was not in the right place", another will say "chad did not fall off the paper", someone else may just be tired in the night, so on and on. As a democratic society, we have had large cases of recounts that it's not even a surprise anymore. It has become the go to whining and agitation tool for losers.

For the continued functioning of democracy, we have to put an end to this recount problem. If a winner wins by 1 vote, it should recount to the same 1 vote difference no matter how many times you do it. If not, elections are undermined (and thus democracy).

As for the "voting machine", people in this forum are really not good for judging as they think in terms of "modern" tech software with C or Python with a running OS. Read this thread for more info [0].

A good way to describe the voting machine, is a dumb printer. It originally exists to print a proper valid ballot for the elector who then drops it off. The machine just so happens to also have a secondary counter in it while it prints, so it can be secondary verified for extra safety. The paper is what matters and it's still there. This is called VVPAT, Voter Verified Paper Audit Trail [1].

Over the course of time, after many many recounts, it becomes obvious that the machine-printed ballot and machine do not ever diverge. So it just so happens that for convenience, the machine has grown to get counted first. If anyone has a doubt, they can easily go back and verify the ballots which are stored forever. It has been proven over and over to give consistent recounts and restore trust in elections.

Trivia: First time a Cabinet-rank senator in India lost election by 1 vote [2]. Recounts tallied down to 1. It has happened again. Chaos still did not break out. Candidates were not fighting over who was the winner. Reason? Voting machines and verified ballots. Recounts won't change reality.

I'll finally leave you with the summary of an excellent video on elections in India before/after voting machines. Every loser will complain and blame something. Hacking the voting process, obstructionism, who's issued voter IDs, where and how many voting centers are placed, gerrymeandering, media, pre-mature leading polls, on and on and on. All this thing about Voting machines is a classic case of shooting the messenger. The voting machine only exists to give one less reason to blame on. Don't shoot the messenger [3].

0: https://news.ycombinator.com/item?id=25106044

1: https://en.wikipedia.org/wiki/Voter-verified_paper_audit_tra...

2: https://en.wikipedia.org/wiki/C._P._Joshi

3: https://www.youtube.com/watch?v=zdo43a4JfYQ

To add to this, you can have a hybrid system. That's where your digital voting machine prints a receipt (actually 2!). The voter checks that the receipt matches and then deposits their anonymous stub into a bin. Need to verify results? You sample randomly from that receipt bin. If you really wanted to, you could count every single receipt but either way you have a verifiable way to verify that the digital results have not been manipulated. Of course this requires the voter to do slightly more work (verify, deposit their receipt, and keep the copy) but this also makes it a lot easier to show that voter fraud happened. There's verifiable proof. Granted as the wiki article notes, people don't verify and when they do verify don't commonly find discrepancies, but hey this is another account to fall back on. It should be done in addition to other methods, not as a cureall to catch voter fraud.

But this is basically what your [1] is, which got cut off.

/wiki/Voter-verified_paper_audit_trail

Thanks for correcting the link [1].

And yes, the voting machines have evolved to deal with that as well. Now, the printed paper is clearly displayed, the citizen looks at it and then they press OK if it's fine, and it falls straight into the ballot box. A bit easier :)

1: https://en.wikipedia.org/wiki/Voter-verified_paper_audit_tra...

2: https://youtu.be/DqcZZ-QrNgc?t=198

[1] gets cut off because the length. Not sure if it is worth notifying @dang about though. As long as people know "tra" -> "trail"

[2] That is an interesting solution but I don't think solves the problem. How does the voter know that their receipt matches the one in the bottom compartment? I can's speak Hindi so maybe they verbally addressed this issue but it wasn't apparent from the visuals alone.

2: Umm, wouldn't that be equivalent to the same trust voters place when dropping a ballot inside a ballot box? Is that specific to the voting machine or broader?

I'm not sure myself, just asking. I don't know the sound or experience of dropping ballots into a box, since (for good or bad) paper ballots were already extinct when I started to vote...

I think there is a difference. In the dropbox case I have to trust those that are counting. I don't think we can get away from this trust level. In the hidden/automatic dropbox I have to trust the counters and the machine. I can't verify that the machine prints the same thing for me and the dropbox. Without that verification it, to me, undermines the entire point of a receipt in the first place. Maybe you see something I don't? I'm certainty not an expert so I'm open to me misunderstanding something and don't take my word as expertise either haha.
:) maybe it's being part of the evolution. Once society is used to the presence of a machine, sees 5 years of trustworthy elections and recounts, and starts trusting it – then maybe the society moves on to the next stage, and opens up to seeing the machine and ballot as a small optimization. It took India 1 or 2 elections to get there.

Before the first step happens, expecting the next steps would be premature I guess.

I think this ignores that the reasoning for this is not because faulty programmers, but worry about hacking. It is more that I am worried that the machine was hacked and that it prints something different. Elections are high value targets and last I checked nothing was unhackable. Quite the opposite actually.
I understand your point about "invisible hand" hacking, the kind where no one official on the ground is aware, but is orchestrated globally.

But reality is: The printed paper shown to the voter has to go somewhere. It cannot disappear or be hidden in the machine in secret compartments because the paper is in the mechanical side of things, not software. Such hidden compartments will not fall invisible to officials on the ground. It's not a black box machine in that sense, officials run basic physical and mechanical tests on it before voting happens. The machine is dumb and tiny.

I still understand your point about "anything can be hacked", but at this point, to hide something in physical sight needs on the ground support (which can happen regardless of machines), or needs discrete parts like a shredder which will make it mechanically huge and does not go unnoticed by such a large chain of command.

Yeah, but you can just solve this by having the human compare the two and place one in the bin. The hidden box just makes the receipt pointless.
> For example, the US had two really high profile, narrow elections (2000 and 2020)

Three, surely, by that metric? 2016 was closer than 2020.

Paper ballots solve the most important problem: they can be counted by hand in case of disputes, without having a single computer at hand. That is the essence of the problem, that is what separates systems with voter-certified paper trails - whether those are machine-produced or the result of the voter using a writing implement or paper punch to mark a sheet of paper in some way - from systems which lack such a trail. Computers can be used to produce a quick tally but the final, legally valid count should be done by hand with observers from all parties involved in the elections, preferably by parallel counting teams from 'opposing' parties so the results can be compared.

Voting is in itself a simple process, even in the USA where the ballot can be filled with multiple options. Computers are not simple, are not transparent and are not understood by the majority of the population. They can be used for quick counts, for producing fancy graphics, for doing all sorts of statistical trickery and whatnot but they should not be relied upon to produce the final results of an election.

Trade secrets, patents & IP, and national security are usually the reasons cited by politicians and manufacturers of voting machines.
Because open source software doesn't make electronic voting 100% foolproof either. It's hard to prove the software running on the systems is the same as the source code you've read.

And you still have other issues like radio waves being emitted based on the computers' calculations, which (in theory) makes it possible to determine what you've voted. Researchers in The Netherlands proved that it was possible with the machines there, which is why we went back to pencil and paper.

I want to be able to make sure my ballot was counted. Give me a public/private key pair when you mail me my ballot or when I leave the polls, and encrypt it in such a way that I can confirm the authenticity myself. As a software developer, I will not be convinced that this is not possible.
Do you want to verify that your ballot was counted or that it was counted for a specific candidate?

If the former, we already have that. If the latter, that will enable vote buying and is specifically avoided.

An important property of our voting system is that it is impossible for a voter to prove (to a third party) how he/she voted. This property is important because it guards against bribing/coercing/pressuring voters to vote for particular candidates. I don't know of any practical way of enabling a voter to check that his/her vote was correctly counted without also compromising the anti-bribery property, especially with a realistic model of the abilities and limitations of most voters.
Only mildly related, but an interesting suggestion I've seen involved the use of intentionally "poisoned" ballots that people could request/would be sent along with your mail in ballot.

These ballots would be verified in the same way as normal ballots, but wouldn't count. Then, you could show a prospective vote buyer a poisoned ballot verified vote which they wouldn't be able to distinguish from a counted vote, rendering vote buying unprofitable.

IIRC this is what Microsoft ElectionGuard aims to do. That was the software that was tried in Texas, failed to gain traction, and now Microsoft has taken it up as a project.
> Why doesn't the United States (and other democracies) require open source voting software for all elections?

One thing that's different about the US is that each state is responsible for carrying out its own elections. There is some federal involvement, but it's mostly up to the states to implement.

One often-cited advantage of this approach is that it makes it difficult to attack a presidential election because you'd have to work across different state voting systems.

So a national mandate would face opposition on the federalism issue.

It doesn't necessarily need to be a Federal government program,. It could be an initiative that all states take up on their own, or even a Federal mandate that voting software be open source.
To expand on this, I’d totally support regulations requiring states to maintain some level of supply chain independence and diversity of software and hardware between them, to improve resilience against attacks.
I think a lot of people gloss over this because they don’t want it to be true, but it think it is. The red tape of it all actually makes it pretty damn secure, regardless of how “good” it is from the perspective of a software engineer. Imagine if every state used the same self hosted voting software, any weakness that can be attacked will be, and I’m sure it wouldn’t be that hard to social engineer your way into local governments to exploit.
That is a point. On the other hand, with the electoral college system, you don‘t need to hack the entire US. A single swing-state might be enough.
I've said it before, but that's like arguing against company-wide approved security policy, because if every department implements security in their own way it would be harder for an outside attacker to hack them at the same time.
The US especially is an oligarchy and for-profit US tech companies dominate the tech industry. Those same companies are atrociously anti-user and notorious for selling data etc, so people don't trust them and I don't think there is broad awareness that there could be a decent software solution. And also we could just use paper.
Software or not, is not the point. Members of the local polling station should be able to verify votes, and the easiest process is hand-counting, then publishing the sums per candiate.
What problem are you trying to solve? “Reproduce the results”? You mean counting?
Slightly related question: Why are voting machines soo complicated that there’s scope for any bugs in the first place?

A vote counting software based on dedicated buttons- one for each option to vote on - should be something that is simple enough to be assigned as an CS undergraduate course project.

We have built very sophisticated banking software that handles several orders of magnitude more computations and has been ticking away bug-free for decades now.

What am I missing?

1. The banking sector hasn't been ticking away bug-free.

2. Electronic elections are a thorny mix of privacy and transparency requirements. Example: Electors need to be able to confirm their own vote was counted but not be able to prove who they voted for (this is to prevent vote-selling and voter intimidation).

3. Even if you get everything right in #2, you need to prove that the software running on the machines is in fact the software with the correct properties, and doesn't break privacy through a side-channel.

4. There are UI concerns that aren't immediately obvious. Example: the list of candidates should be randomised so that donkey votes don't skew the result to one candidate.

5. This is software that potentially every citizen needs to interact with, which means accessibility is important. You need to cater for blindness, people with limited motor control, i18n and l10n for all the languages in the voting cohort, etc.

6. Related to #3, you need to secure your voting machines and both the hardware and software supply chains between elections.

(I'm going to assume you mean the vote counting machines / software)

tl;dr: In the US that decision would be up to each state.

In the US at least, the management of elections is left to the individual states. Assuming you're most interested in the US Presidential election, it's also specifically delegated to the states to choose how they wish to select their electors (it just happens that most use a popular vote of their citizens in a winner-take-all setup per state).

There are a number of groups trying to push for more transparency, but it's fundamentally a per-state issue in the US. California has a bill [1] that seems like it "passed" but is referred to committee (stuck). It would establish $16M in funding, at least half of which goes to development, which must be AGPL 3:

> (1) All of the system’s software developed at least in part using state or county funds pursuant to this section must be licensed exclusively under the GNU Affero General Public License 3.0 or a later version.

and

> (2) All of the system’s software components must be open source during development, using a process that is open to public feedback. Development must be carried out in public repositories by January 1, 2021.

So some folks definitely agree we should have open-source election software. Most likely, if a system becomes successful in California (the largest market) it could spread to other states. As frustrating and repetitive as it sounds: you need people to vote in local elections, and contact their local representatives.

[1] https://leginfo.legislature.ca.gov/faces/billTextClient.xhtm...

Developers casually looking at source code vs nation states paying teams of hackers to find exploits. With the goal not being to steal money, but to steal a government.

I can understand why it's not open source.

Election officials, politicians, and state & local governments do not equate open source with security. It's counterintuitive.
ITT, people talking about the merits of paper vs electronic. But the answer to the question is simple: same reason most government software isn't open source, namely, lobbying
Voting machines (atleast in India) do not have a turing complete runtime. So there is nothing to open source.

A good way to describe it is a dumb printer. It exists to print a proper ballot for the elector who then drops it off. The machine _just so happens_ to also have a secondary counter while it prints, so it can be secondary verified for extra safety. The paper is what matters and it's still there. This is called VVPAT, Voter Verified Paper Audit Trail [1]. It has been proven over and over to give consistent recounts and restore trust in elections.

Over the course of time, after many many recounts, it becomes obvious that the machine-printed ballot and machine do not ever diverge. So it _just so happens_ that for convenience, the machine has grown to get counted first. If anyone has a doubt, they can easily go back and count the ballots which are stored forever.

Trivia: First time a Cabinet-rank senator in India lost election by 1 vote [2]. Recounts tallied down to the dot. It since happened again. Chaos still did not break out. Candidates were not fighting over who was the winner. Reason? Voting machines and verified ballots. Recounts won't change reality.

Answer to the primary OP's question: "Why not open source the software" – is the crux of the Voting machine is mainly 1950s pseudo-mechanical hardware. They are not networked. This is technology older than floppy disks. A lot of in this forum imagining "software" think in terms of C or Python, because that's the target audience here. Yo, it's not. It's not running an x86 processor.

It does not have a turing complete language to open source. If you want it, get a thrown away one. But open sourcing the "software" (if you call a few registers and a counter that) – doesn't make any sense as it doesn't give any picture.

Second – to a lot of commenters, why these machines? Single answer: Consistent recounts. With paper, it's 100% guaranteed that "No two recounts will ever be the same". It's a human process. Two humans verifying it will never come to the same conclusion. One will say the "ballot stamp was not in the right place", another will say "chad did not fall off the paper", someone else might just be tired in the night, so on and on. As a democratic society, we have had large cases of recounts that it's not even a surprise anymore. It has become the go to whining and agitation tool for every single loser of every close election. For the continued functioning of democracy, we have to put an end to this recount problem.

It's a pity that in the US where you had two really high profile elections (2000 and 2020), and you still cannot figure out how many times to recount to believe the result. Best of 3 recounts? Best of 5? Does that even improve trust?

I'll finally leave you with the summary of an excellent video on elections in India before/after voting machines. "Don't shoot the messenger" [3]. Every loser will complain and blame something. Hacking the voting process, obstructionism, who's issued voter IDs, where and how many voting centers are placed, gerrymeandering, media, pre-mature leading polls, on and on and on. All this thing about Voting machines is a classic case of shooting the messenger. The voting machine only exists to give one less reason to blame on. Don't shoot the messenger.

1: https://en.wikipedia.org/wiki/Voter-verified_paper_audit_tra...

2: https://en.wikipedia.org/wiki/C._P._Joshi

3: https://www.youtube.com/watch?v=zdo43a4JfYQ

I don't know but my brother has a secure electronic voting company with open source software https//nvotes.com
There’s too much money behind commercial voting software. At the end of the day, it’s politicians who make the decision on what to support based on contributions and influence from companies with deep pockets and wealthy backers.

Additionally, voting doesn’t happen often enough for that to be at the top of our minds among all the other things we have to deal with that have more immediate and visceral impact. Only a small portion of the American population lives well enough to be able to look beyond next month or even next week. Unlike the EU, we are largely reliant on our own resources for major life emergencies, and we’re gathering (or failing to gather) resources to mitigate them.

It will take many generations of work to fix that situation so that people can worry more about long term needs rather than staying focused on the short term. It will also take a lot of money that the middle class can’t afford and the wealthy won’t spend.

I don’t expect it to happen in my lifetime.

That, and make forensic audits a matter of course.
i am dumb but can anyone explain to me why is it difficult to set up a website, give each voter a login where they tick a poll. one time login, mfa and other stuff. hasnt internet solved "polls" already?
It feels like voting and human rights is always delayed in our history. Creating something that would gurantee free elections could revolutionise the world. But that does not mean it's in everyone's short-term interest. Why would any corrupt politicians encourage something that would put them in prison?
Nothing is going to guarantee free elections, certainly not any technology. Democracy is a human, social phenomenon. While it does pose technical challenges, it stands or falls with how humans behave, not how well the technology performs.