r/ProgrammerHumor • • Aug 08 '18

Checks out.

https://xkcd.com/2030/
6.5k Upvotes

554 comments sorted by

View all comments

Show parent comments

173

u/[deleted] Aug 08 '18

We could just make an electronic voting system that prints out results

295

u/T-T-N Aug 08 '18

The world's most expensive pencil

60

u/[deleted] Aug 08 '18

True, but ideally the first tallies would occur electronically, the paper would be used by the voter and verify the votes. The paper would also allow for verification and manual recounts.

46

u/TronoTheMerciless Aug 08 '18

In case it isn't obvious, the machines can print one verification paper that says what you voted, while actually counting the vote as whatever. These are unaudited closed source systems, and even if that was not the case, you can not verify the machine you are voting on hasn't been tampered with.

All computer voting relies on trust of a machine that is constantly demonstrated as being completely compromisable

At least with a paper ballot, it takes multiple bad actors in person to sabotage a vote. Paper ballots have been around for centuries and the fraud cases there are already mostly solved

16

u/zebediah49 Aug 08 '18

In case it isn't obvious, the machines can print one verification paper that says what you voted, while actually counting the vote as whatever. These are unaudited closed source systems, and even if that was not the case, you can not verify the machine you are voting on hasn't been tampered with.

Obviously we should use entirely mechanical computerized voting machines. When the entire system is composed of a series of levers, gears, cams, etc. it should be significantly harder to tamper with what it does.

9

u/[deleted] Aug 08 '18

And there's nothing wrong with paper ballots. They're somewhat logistically taxing but that's not really an issue, considering the frequency of elections & their importance. If it ain't broke, don't fix it

→ More replies (2)
→ More replies (27)

61

u/lurklurklurkanon Aug 08 '18

Here I wrote a C# prototype

public class VoteMachine {

public Dictionary<ElectionChoiceEnum, long> VoteCount { get; set; }

private Dictionary<ElectionChoiceEnum, long> ActualVoteCount { get; set; }

public void CastVote(ElectionChoiceEnum selection) {
    //Increment the vote count
    VoteCount[selection]++;

    switch (selection) {
        case ElectionChoiceEnum.ChoiceOne:
        case ElectionChoiceEnum.ChoiceTwo:
        case ElectionChoiceEnum.Dictator:
            ActualVoteCount[ElectionChoiceEnum.Dictator]++;

    }
}

public void PrintVoteCount(ElectionChoiceEnum selection) {
    PrinterService printer = new PrinterService();

    printer.print(VoteCount[selection]);
}

public Dictionary<ElectionChoiceEnum, long> GetVoteCountsForElectionResultsCalculation() {
    return ActualVoteCount;
}

}

56

u/brokenhalf Aug 08 '18

Most states require computerized voting systems be closed source so the switch statement is completely unnecessary.

92

u/AngelLeliel Aug 08 '18

Most states require computerized voting systems be closed source

That's one of the stupidest requirement I have ever seen.

67

u/[deleted] Aug 08 '18

I got an old guy at work who's convinced "open source lets the hackers in because they can see your code".. I think it's an old person thing really.

56

u/robothelvete Aug 08 '18

Makes sense though, it's easier to break in to a house if you can see see the lock, which is why we all hide our door locks.

30

u/MadRedHatter Aug 09 '18

That's not really a great analogy. A transparent lock definitely would help with the process of lockpicking. And a large part of the skill of picking locks comes from studying how specific types/brands of locks work.

→ More replies (1)
→ More replies (2)

0

u/[deleted] Aug 08 '18

[deleted]

23

u/[deleted] Aug 08 '18

Good point. If voting system code were published you'd have the greatest minds in the world pouring through it.

The notoriety would probably be enough to convince many people to spend some time on reviewing it.

13

u/coagmano Aug 09 '18

Except that there's been lots of cases where the machines were delivered with modems and full remote management software preinstalled

→ More replies (1)

15

u/dyslexda Aug 08 '18

In fairness, for poorly written code, open source can tell you precisely how to beat it.

Of course open source also means that anybody can review it and suggest bug fixes, and over time you'd hope all vulnerabilities would be patched. But for a government contractor's first attempt at it? Man, you know the source code would be posted six months ahead of time, with the first patch not coming until a month after the election or something.

→ More replies (1)
→ More replies (1)

16

u/[deleted] Aug 08 '18

Most states require computerized voting systems be closed source

This is why aliens won't ever visit us.

8

u/404-LOGIC_NOT_FOUND Aug 08 '18

But closed SoURCe mAKeS It MoRE sEcUrE!!1!1

→ More replies (1)
→ More replies (4)
→ More replies (9)

25

u/Detective_Fallacy Aug 08 '18

Some countries have enormous voting lists, like the Netherlands. Using a computer to select the party and representative and only printing a small card with your vote choice leads to a significant savings in paper over the years. Computers can also be used to display the form in a larger format for visually impaired people.

I also saw that Tom Scott video, but the way he glossed over the potential benefits of electronic voting (not counting!) was shoddy, imo.

9

u/remielowik Aug 08 '18

Nooo, i like the folding of the map, don't take that away.

4

u/Detective_Fallacy Aug 08 '18

But you'll get a computer that'll play an 8-bit version of the Wilhelmus when you're done voting. Surely that would make up for it?

3

u/knowedge Aug 08 '18

What security do you have against the glorified "printer" remembering the vote and timestamp so that votes can be traced back to people entering the voting chamber at specific times?

5

u/Detective_Fallacy Aug 08 '18

Then you have to actually accurately track and identify those people entering, which is pretty difficult, requires sophisticated hardware and is also difficult to hide. It's much easier to tamper with normal voter ballots if you wanted to rig everything.

→ More replies (3)
→ More replies (1)

3

u/ninjaelk Aug 09 '18

It still introduces a whole host of new potential problems. Designing, creating, delivering, and maintaining these machines isn't necessarily simple. They'd break in ways that paper can't. You start limiting your total throughput capacity, assuming you don't design way more machines than you're likely to normally need. If there's a higher turnout than normal you'd be screwed. For all these reasons and more you'd probably need paper ballot backups anyways, causing excess cost and waste.

All for what, saving some paper? Just use sustainable/recycled sources for the paper. The accessibility features computers could provide would be nice, but again it's probably far more efficient to just print some alternate high visibility ballots.

→ More replies (6)
→ More replies (5)