A simple and secure voting system with Bitcoin

A schema designed to utilize Bitcoin cryptocurrency for secure and simple electronic voting. In the heart of the schema lies the Blockchain, so all the processes of the system are open to public audition.

Requirements:

All actors of the election should be able to have a Bitcoin account.
All actors of the election should be able to secure their voting computer.

Actors:

Election Authority
Candidate
Voter

Terminology:

Block Chain: Bitcoin public transaction list
0.00000001 Bitcoin: the smallest unit of Bitcoin possible
BTC: Abbreviation for Bitcoin currency

Schema:

0. Election Authority declaration
Election Authority publicly announces its Bitcoin address.

1. Voter registration
Voters show a valid ID and provide their Bitcoin address to Election Authority, who sends them 0.00000001 BTC in return. All voter Bitcoin addresses are publicly listed in the Blockchain. To carry out citizens’ right to vote anonymously, the Election Authority keeps the IDs to prevent double registration but does not keep a record of association between the IDs and the provided Bitcoin addresses.

2. Candidate registration
Candidates provide a valid ID and their Bitcoin address to Election Authority, who sends them 0.00000002 BTC in return. All candidate Bitcoin addresses are publicly listed in the Blockchain. As opposed to voter registration, Election Authority keeps and publicly announces a record of association between each candidate ID and their provided Bitcoin address. Candidates are obliged to announce their Bitcoin addresses.

3. Starting the election
Election starts when Election Authority sends 0.00000001 BTC to all the voters’ Bitcoin addresses publicly listed in the BLockchain.

4. Voting
Voters send 0.00000001 BTC to their preferred candidate’s Bitcoin addresses publicly listed in the Blockchain.

5. Ending the election
Election ends when all voting transactions are processed for each candidate in the Blockchain. A time limit can be also put in place.

6. Election result
Election result is obtained by counting all valid voting transactions from the registered voting addresses to the registered candidate addresses in the Blockchain. Any other transaction after the first 0.00000001 Bitcoin transaction from the voter to the candidate is considered disqualified. The whole process from the registrations to the voting and counting the results is open to audition by anyone.

Contribution

This basic schema can be applied today with the existing Bitcoin infrastructure. One can develop applications and interfaces for better user experience of this system. To contribute and improve the schema please send your comments and questions to the comments section of this page, or feel free to fork the repository and send pull requests.

https://github.com/arikan/bitcoin-voting

License

The MIT License (MIT)

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Burak Arikan’s Email List

Bimonthly updates about new work, upcoming shows, and talks.