A bitcoin based, completely distributed voting system

The Agora Voting project has already implemented a voting system that has been used in spanish congress [0] and uses secure cryptographic methods based on ElGamal mixnets: encryption keys are distributed on a set of authorities where if at least one of them remains honest, the secrecy of the vote is preserved, and even if all authorities are compromised, the tally cannot be forged because it’s universally verifiable via mathematical proofs. This is a standard method and has been used in Norwegian general elections, for example.

We believe that the quest for secure electronic voting must continue. Even if vote secrecy is maintained by a set of authorities and the tally proofs are mathematically verifiable, vote casting is still done by one web server and this is a single point of failure, prone to DDoS attacks. We now announce our commitment to develop a working Bitcoin-based voting system that provides both secrecy of the vote and verifiability of the tally.

The basic idea is very simple: to use the bitcoin network as an online, distributed notary and timestamping service to register votes. Notary services based on bitcoin already exist, for example proof-of-existence, bitnotar or chronobit. This proves that the system can work: we need to adapt and make it practical: we must allow many votes in a short period of time, provide ways to check the validity of the registered votes and detect which transfers reflect the hash of a vote. We also have to document all this and develop a working solution.

Please note that this is only the beginning, we have many more plans towards distributing trust in online voting. In the future, we plan to use namecoin so that you don’t have to trust the SSL certificate authorities cartel, just the network and the hashtag of an election, which is public. Another ambitious and promising idea is to use the blockchain to anonymize the votes altogether using zerocoin so we can remove the need for a trusted set of authorities altogether. Just trust the name and the network. Make the whole process secure but deeply distributed.

To develop all this we need time and resources and we ask the bitcoin community and enthusiasts for your help: please join the discussion at our mailing list [1], but also please donate to 1EwqtN6GwHmkfYEfxGhuVcjrNBdQwvXMd3. If we reach 100BTC, we will release and develop the complete plan to use the bitcoin blockchain to distribute trust onto the network. The initial draft of the plan is already written, we have hashed it so that its existence can be verified a posteriori, the sha256 hash is:

9251615dfc780e353b5d2c2946ca999d225d91c4e565e7e0330a7bd1800dc43c.

Let’s make remove unneeded third parties from electronic voting processes; just trust the vote.


[0] http://www.theguardian.com/world/2013/sep/11/joan-baldovi-spain-transparency-bill?CMP=twt_gu
[1] https://groups.google.com/forum/#!forum/agora-ciudadana-devel