5 ms·
First problem is ensuring that person is correctly authenticated and has right to vote. It is same as entering trough door and giving your ID. From that point
by NiceWayToDoIT 6y ago
First problem is ensuring that person is correctly authenticated and has right to vote.
It is same as entering trough door and giving your ID.
From that point the vote needs to be secret, so it cannot be traced back to the voter.
Solution may be simple as:
Voting software must be opensource on Github so it means that must be verifiable.
Open and publicly accessible monitoring of installation, appropriate build (version, hash...)
And same goes for hardware. Must run on server that cannot be spoofed or additionally monitored or traced.
If above is done, it is just simple case of decoupling recorded information.
And in regards of checking public ledger can have some kind of random code "R3DfCee" which will be there to make sure equal number between those who voted and issued codes. Each voter can go to public web site and look for his code ...
Maybe something along those lines?
- wwweston 6y ago> Voting software must be opensource on Github so it means that must be verifiable. This assumes the problem is merely making an accurate count, rather than making consensus. "Verfifiable" doesn't just mean "an expert in the field can determine the system registers the votes/totals cast by individual voters." Because that means you still have the political problem of how non-expert citizens know they can trust someone's verification or expertise. Verifiable in a democracy means that a layperson of average intelligence can observe and understand the process and participate in verification. Or to put it in Python terms, "explicit is better than implicit." We're not just making a count, we're making group confidence that a given vote count was correct.
- NiceWayToDoIT 6y agoNot exactly what I meant. If installation number is open and visible, any person without any knowledge can confirm that during vote, latest installation number was such and such and hash of build was of such and such. Before election day number can be publicly broadcast so everyone knows what needs to be checked. Opensource and visible means same as for linux, code is visible to those that have knowledge and can quickly identify attempts of backdoor attempts like for instance this one: https://freedom-to-tinker.com/2013/10/09/the-linux-backdoor-attempt-of-2003/ https://freedom-to-tinker.com/2013/10/09/the-linux-backdoor-... Code wise that will allow that people in power will not try to manipulate or rig elections. If you have XX thousands of IT professionals that can check code it is surely better than "trusted" dedicated private contractor.
- wwweston 6y agoConsider that there is currently a huge bifurcation in which newspapers of record run by journalism professionals are to be trusted. Or even just outright distrust of journalism period, in some circles. Or distrust of university professors and other "elites." It seems pretty likely that it's possible cultivate the same distrust of technical professionals. In fact, considering how little true technical expertise has gone into the voting systems that exist, it's probably inevitable and possibly in some cases accurate. If you need an technical expert to verify your voting system or even your vote count, that itself is a vulnerability in what voting systems are for. This is not a coding problem.
- patmorgan23 6y ago> Not exactly what I meant. > If installation number is open and visible, any person without any knowledge can confirm that during vote, latest installation number was such and such and hash of build was of such and such. Before election day number can be publicly broadcast so everyone knows what needs to be checked. > Opensource and visible means same as for linux, code is visible to those that have knowledge and can quickly identify attempts of backdoor attempts like for instance this one: https://freedom-to-tinker.com/2013/10/09/the-linux-backdoor- https://freedom-to-tinker.com/2013/10/09/the-linux-backdoor-... > Code wise that will allow that people in power will not try to manipulate or rig elections. If you have XX thousands of IT professionals that can check code it is surely better than "trusted" dedicated private contractor. "any person woth the knowledge" that's the issue you want a system where the most number of people with the least amount of specialized knowledge nessicary can verify their vote. Everyone can look at a pice of paper and see their vote before they cast it. Not everyone has the expertise to verify software was installed correctly and all the important cryptographic boxes where ticked.
- rbecker 6y ago> "an expert in the field can determine the system registers the votes/totals cast by individual voters." When it comes to computers, there is no expert able to verify a system is really running what it's supposed to. Open source doesn't help, when even a single subtle bug could lead to exploits. Formally verified bug-free code doesn't help, when the compiler itself could be compromised. Verified compiler doesn't help, when the CPU could have backdoors. A compromised machine and a secure one look the same to all except an electron microscope.
- NiceWayToDoIT 6y agoThen simplest solution is: https://en.wikipedia.org/wiki/Open_ballot_system https://en.wikipedia.org/wiki/Open_ballot_system ...