Electronic voting has been considered technical infeasible for a long time. And recently I watched a video from the channel Computerphile on YouTube where they bring up all the problems that come along with e-voting.
But with distributed ledgers and homomorphic encryption in my mind I could find any problem that cannot be solved. To be fair this video is one and half year old, but still one can guess that this guy has heard of these techniques.
I am not a security expert yet I could imagine a system, that guaranties both anonymity and trust in the result:
- Setup a block chain where every node agrees on the voting algorithm. (Not hard at all and this already solves the problem of trusting the software)
- Generate Private and Public encryption key. Give the public key to anybody that is allowed to participate in the vote. Spread the private key among authorities you trust not to collude.
- Every participant has an account on the block chain with a private key that signs the voting "transaction". Every account has one vote, which is ensured by the voting software that every node on the block chain agreed on.
- Because all the transactions are on a block chain every voter can trace his/her vote and verify it got added to the overall result. (Which solves another major problem: Ensure every vote is added to the overall result.)
- A primitive voting algorithm could look like this: For every party a participant may vote he encrypts a zero or a one together with some salt (so no lookup can be performed) with the election public key. Then he signs his transaction or vote with his block chain public key and his vote gets processed: The zeros and ones are added to each of the party counters. For every vote the sum of the vote is calculated and decrypted. In that way you can tell for sure only one one is added to one of the party counters (sum must be one), but you cant tell which party the participant voted.
- Decrypt the final result.
Of course for any decryption the authorities who hold a part of the private key must agree on that decryption.
So what in the world is the problem that cannot be overcome with electronic voting?