-
Notifications
You must be signed in to change notification settings - Fork 6
idea Blockchain voting
Using a Blockchain for voting seems like the perfect solution. It's distributed, every action/transaction has to be validated by the peers and it's open. I think it is possible to leverate the blockchain technology to create a trusted voting system.
I know about the following projects related to voting with blockchains.
-
www.democracyos.org - Say on their front page that they use blockchains but I cannot find this in their code. I think it is in the infant stages and has not been implemented yet.
-
Your Priorities/Dyne.org - Also in infant stages. Dyne.org will probably implement a solution for Your Priorities that is based on FreeCoin.
-
Jesper Borgstrup - Private, trustless and decentralized message consensus and voting schemes M.Sc. thesis by a danish university student. Uses a modified BitMessage protocol to post the votes to a "shared bulletin board", but uses Bitcoin (through www.blockr.io web api) to post timestamp messages on the bitcoin blockchain
- A minimum viable blockchain implementation in Go
- The article on Minimum Viable Blockchains
- Minimum viable blockchain - Reddit: Not much info.
- Minimum viable blokchain - Hacker news: Very good info
- Wikipedia - List of proof-of-work functions
- BitMessage wiki - how does BitMessage work?
The approach by Borgstrup has a full implementation on github and should be considered the most complete (of the ones I know about). However, it has one shortcoming: it does not rely on it's own modified BitMessage blockchain.
- Why did Borgstrup also use the Bitcoin blockchain?
- Is it possible to use the blockchain from a modified BitMessage protocol for timestamps?
- Is an economic incentive really needed for voting?
- Is an incentive needed at all or is a non-economic incentive needed/useful?
Borgstrup's seems solid. Need to read more though.
Needs to have the following properties
- A vote cannot be linked with it's voter with a better probability than random guessing. (anonimity)
- A voter must be able to change his vote. (coercion-resistence)
- A vote cannot be disupted, or disputes must be easily solved.
The blockchain was designed for Bitcoin, a currency. There are three kinds of participants in the network
- Half-nodes that post transactions for miners to pick up.
- Miners, they generate the blocks
- Full nodes that are relaying transactions and validating blocks.
When miners create new blocks, they get a monetary block reward (25 BTC currently). This economic incentive is seen as both useful and needed for Bitcoin, otherwise there would be no miners to generate new blocks.
But with a Voting-blockchain, economic incentives aren't possible in the same way. But a Voting System has a lot of differences compared to be a Currency system. For starters, Elections span a few days but a currency has to always be available.
Thus, miners in a voting blockchain will probably be motivated by something other than money. They might do it for idelogical reasons, e.g. because they believe in a public and open voting system. Parties in the election would probably also be motivated to run miners. Media organizations, free software organizations and educational institutions also come to mind as potential miners.
In a general parliametary election in Iceland, only Icelandic citizen should be able to vote. Then authentication can possibly happen on two levels;
- Authenticate the user before they cast their vote.
- Everybody can vote, but each vote must be validated before being counted.
In iceland, we have multiple schemes to authenticate icelanders. Íslandslykill and digital certificates issued by Auðkenni. There also is Íslandsrót, but it hasn't signed anything beyond the itermediary certs of Auðkenni.
Other schemes apply to other voting domains as appropriate.
- What is a vote on the blockchain?
- What is the proof-of-work?
- What is the work?