4 ms·
>What? There is no way to demonstrate that what is executing is the source code unless you're compiling at execution time from a local vetted copy of the sourc
by Dalewyn 2y ago
>What?
There is no way to demonstrate that what is executing is the source code unless you're compiling at execution time from a local vetted copy of the source code. Is the guy who vetted the source code vetted? Who vets the vetter? Is the compiler actually compiling the source code? Is the compiler compiling as generally expected? What about bugs in the compiler? Is the source code even what it claims (binary blobs!)?
What about the hardware? Are there any black box enclaves? Bugs? Does it actually crunch as would be generally expected of a number cruncher? Does it even have the vetted software?
All this complexity and anyone would be fully within their right to say "I don't and won't trust this."
Meanwhile, someone counting paper ballots by hand can be immediately understood by anyone and everyone. It's simple and it's brutally effective. So what if the process takes time? Good stuff usually takes time, what's the rush? So what if the human counter(s) screw up? Human errors are inevitable, that's why you count multiple times to confirm the results can be repeated.
The most secure, most hardened, most certified ballot counting machine cannot compare to a simple human counting paper ballots in witness of anyone and everyone.
- ethbr1 2y agoThe questions you're asking make it seem like (a) you're not thinking about this very hard, (b) you're trying to reach the answer you've already decided on, or (c) you're not familiar with high trust systems. Still, in the interest of a conversation, some brief answers. Please ask in detail about any you're interested in (but realize I'm going to balance the time I spend answering with the time you spend researching and asking). "Is the guy who vetted the source code vetted?" Yes, because he or she was assigned a key and signed the code with it. "Who vets the vetter?" Whatever level of diligence you want, up to and including TS+SCI level. "Is the compiler actually compiling the source code? Is the compiler compiling as generally expected? What about bugs in the compiler?" This is why you test. And it's pathological to believe that well-tested compilers, that have built trillions of lines of code, are going to only fail to successfully compile election code. "Is the source code even what it claims (binary blobs!)?" See test and also dependency review and qualification. "What about the hardware? Are there any black box enclaves?" Yes, by design, because that's how secure systems are built. And no, the enclaves aren't black boxes. "Bugs? Does it actually crunch as would be generally expected of a number cruncher?" Testing and validation. "Does it even have the vetted software?" Signed executables, enforced by trusted hardware. > Meanwhile, someone counting paper ballots by hand can be immediately understood by anyone and everyone. It's simple and it's brutally effective No, it's not. Because people are messy, error-prone entities, especially when it comes to doing a boring process 100+ times in a row. You're not comparing against perfection: you're comparing against at best bored/distracted and at worst possibly-partisan humans. Human counts rarely match exactly, because humans make mistakes. And then they make mistakes in the recounts intended to validate counts. If you can't envision all the ways humans can fail, then I'd reflect on why things never fail at your work because of people, and everything always runs smoothly.
- Dalewyn 2y agoThe point is that humans counting paper ballots by hand in the witness of anyone and everyone is and always will be more credible than any voting machine ever. You can certify the digital chain of trust as much as you want, it will not beat human hands counting paper ballots as anyone and everyone watches. >you're not thinking about this very hard Yes, because the commons will not think very hard about a complicated "solution" when a much simpler solution already exists. >If you can't envision all the ways humans can fail, Yes, humans fail. It's also not important. Any election worth its salt should be counting multiple times using a variety of counters and witnesses to demonstrate repeatability of the vote. Again: Humans failing is not important. What is important is the ability to verify immediately and simply how the vote is being tallied. Machines can and will fail (or more likely be corrupted) like humans, but we can immediately see when the human screws up whereas it's impossible to see when the machine screws up. It's baffling I'm having to argue this to FOSS people of all peoples, you guys should know better than anyone else that vetting source code and binaries and hardware is a fool's errand for something as important as counting votes. Nothing beats the brutal simplicity of hand counting paper ballots while everyone watches.