5 ms·
Open source doesn't really help here, because even if I can see the source I don't have a way to verify what was running. It's more important to just not rely
by ahupp 6y ago
Open source doesn't really help here, because even if I can see the source I don't have a way to verify what was running. It's more important to just not rely on software for the critical path, and make sure there's an auditable paper trail.
- ekianjo 6y agoWhat if you used the combination of FOSS and a blockchain ledger?
- TheDong 6y agoSay more about how a blockchain ledger could allow verifying what software is running on a device? The only way I can think of to actually do this is to have some trusted party go out and randomly sample voting machines (i.e. check the software on the disk matches the reproducible builds of the open source software, and decap the machine's CPU and other hardware to verify there's no bugs). Anything else can be foiled by malicious software or hardware.
- jb775 6y agoIf there was a whole new voting system built from scratch, couldn't it be designed to use some sort of integrity key in combination with each voter's personal key? Kind of like how some CDNs have an integrity attribute to ensure the CDN's source code hasn't been manipulated.
- ahupp 6y agoOne of the tricky things with voting is that a provably trustworthy system that voters don't understand is worse than an imperfect system that is totally transparent. Voting is only useful to the extent there's trust in the system.
- TheDong 6y agoI don't think that ends up working for voting machines because those are two different problems. With the CDN, the user receives source code and they want to verify the source code is unchanged. Checking a hash of the data they received is sufficient. For a voting machine, what's the analogue? If I walk up to a voting machine with an integrity key, how do I check that the source code it's running has a given hash or is signed with a given key? If the voting machine itself shows the code or does the check, obviously a person who compromised the machine can fake that bit. If I have to remove the hdd and verify the data on it, and take apart the voting machine to verify there's no second hard drive... well, that seems like it's well out of reach of any voter verifying it. Integrity keys, hashes, signatures, blockchains, etc can verify digital data, can verify the contents of data that servers serve... But they don't seem to solve the problem of "what code is this machine running", and that seems to be the important problem for voting machine code.
- Qub3d 6y agoTom Scott made an excellent summary of why electronic voting is a bad idea, and explicitly covers both open source and blockchain as proposed solutions (hint: they don't solve the problems that make e-voting bad) https://www.youtube.com/watch?v=LkH2r-sNjQs https://www.youtube.com/watch?v=LkH2r-sNjQs
- tim333 6y agoIt seems to me a fundamental problem of it all being electronic is any records if the system is hacked can be downloaded by the million fairly easy. On the other hand if the records of which voter number voted which way are printed on bits of paper and put in a big locked box it's pretty hard to reconstruct that on the fly unnoticed. But they are there if there is a court ordered investigation. The UK system I think is a bit like that. When I go in my name is checked against a voting slip number (on paper) and then I vote on a bit of paper so someone could theoretically figure which way I voted but the odds of someone going through both paper lists is minimal.
- daenz 6y agoVerifying what software is actually running is orthogonal to having that software be open for the public to inspect. You can have closed source software and still have a problem verifying what is running.
- luxuryballs 6y agoWhat he means is that it doesn’t matter what source code is published and open it only matters what is compiled and deployed to the machine last.