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
View more posts in the Blog Archive.