a comparison of blockchain technologies for distributed voting
TRANSCRIPT
A comparison of Blockchain Technologies for distributed votingBlockchain Vlaanderen meetup #3 June 22th, 2016
Before we start...
Native mobile applications connected via a REST API
Proof of Likes
Multichain (multi asset bitcoin fork)
Generates a key pair for each app and issues 100 vote tokens
Full transparancy via the Explorer
But this is just a simple case...
Real life voting in Belgium
Guarantee full anonymity
Requirements
Guarantee full anonymity
Requirements
Required for each person of age
Guarantee full anonymity
Requirements
Required for each person of age
Tallied the same day
Guarantee full anonymity
Requirements
Required for each person of age
Tallied the same day
No physical location required
Votes are registered in the chain, if the address can be linked to a person we fail the anonymity requirement.
Challenges
Votes are registered in the chain, if the address can be linked to a person we fail the anonymity requirement.
Challenges
Only people who are eligible are allowed to vote, so the government needs to send these people a VOTE token. Which links person to an address.
Votes are registered in the chain, if the address can be linked to a person we fail the anonymity requirement.
Challenges
Only people who are eligible are allowed to vote, so the government needs to send these people a VOTE token. Which links person to an address.
All eligible people are required to vote, how do we check this without linking them to an address.
So, how could we do this?
First things first…Paper letter with a personal token Login to a portal
Generate a new anonymous address
Issue a VOTE token to that address
This action fulfils the voting duty requirement
National Registry
! this portal knows exactly who you are and can link you to the address !
Smart contracts to the rescue
• The smart contract is the only time, the login token and the generated address ever meet.
• The smart contract code can be verified on the blockchain. We can be certain that it is does not store anything except a login code being used
A matter of scale
8.000.000 eligible voters
A matter of scale
370 transactions/ second
8.000.000 eligible voters
A large public network
Validators / Miners
A semi-private network with nodes at each political party, the EU, the UN, interested parties, ...
Our options
Network
Consensus
Transaction speed
Smart contracts
Largest public network
Proof of Work
7t/s limit = 13 days!
None
Bitcoin Blockchain with Colored Coins addon
Network
Consensus
Transaction speed
Smart contracts
Private network
Configurable Proof of Work
200t/s = 11 hours
None
Multichain
Network
Consensus
Transaction speed
Smart contracts
Public network
Proof of Work
20t/s = 4.6 days
Solidity
Ethereum
Network
Consensus
Transaction speed
Smart contracts
Private network
Configurable Proof of Work
in theory 370t/s ~ in reality 20t/s = 4.6 days
Solidity
Private Ethereum
Network
Consensus
Transaction speed
Smart contracts
Public network
Proof of Importance
2t/s = 46 days
None
NEM
Network
Consensus
Transaction speed
Smart contracts
Private network
Federation
100k t/s = 80 seconds
None
BigchainDB
Network
Consensus
Transaction speed
Smart contracts
Private network
Practical Byzantine Fault tolerance
210t/s = 10h
Chaincode
Hyperledger
Most secure
Fast enough
Smart contracts
Quite a conundrum
A hybrid solution?
Public Ethereum smart contract to assign address to voters
BigchainDB to process the votes
Thank You
Roderik van der Veer
@r0derik
https://linkedin.com/in/roderik
+32 491 50 58 15