E-Voting on the Blockchain

Building a secure electronic voting system is a difficult task. The US Pentagon dropped their proposed online voting system which would have given overseas military personnel the opportunity to vote in the elections in 2005, citing the inability to ensure the legitimacy of votes as the reason. There is however a new cry in the wild to deploy a voting blockchain. The blockchain serves as a public ledger of transactions which cannot be reversed. The all-important consensus of transaction (i.e. legitimate votes) is achieved through 'miners' agreeing to validate new records being added. Whenever a new insertion is to be made e.g. votes, then a new transaction record is created by a voter adding details of their cast vote to the blockchain. Should it be deemed a valid transaction then the new vote is added to the end of the blockchain and remains there forever. What is neat about this solution is the fact that no centralized authority is needed to approve the votes but rather a majority consensus. Here everyone agrees on the final tally as they can count the votes themselves & because of the blockchain audit trail, anyone can verify that no votes were tampered with and no illegitimate votes were inserted. This paper discusses the application of blockchain to voting.


Introduction
Blockchains have become an important technology in a relatively short-time [1,2,3].It does have major implications in future online systems ranging from finance to medicine to military.Very few domains will not have a blockchain deployed in the coming years.A blockchain is a distributed database that maintains an ever-growing list of data records secured from tampering or revision.It is de-centralised avoiding a single point of failure with the group working together to confirm legitimate new transactions [4].It is composed of data structure blocks where each block holds batches of individual transactions and the results of any blockchain executables.These blocks contain a timestamp and a link to a previous block.The blockchain therefore serves as a public ledger of transactions which cannot be reversed (or without great difficulty).Blockchain technology can transform key aspects of society such as smart contracts to make micropayments for use more cost effective or in the music industry to enable data sharing among the value chain from artist to final consumer realizing and releasing more value [5].What is neat about blockchain is the fact that no centralised authority is needed to approve the transaction but rather a majority consensus [6,7].Now, for the first time we can have a system of barter -a system of storage -a lottery system etc -running globally with no central ownership, semi-anonymous -yet full of trustworthy transactions which cannot be cheated.That really does change things in many domains [8].
Adopting Distributed ledger technology (aka blockchain) is not simply a technological decision but also a business decision and therefore any real-world use case must also solve real problems for organizations which deploy one [9].One of the most valid domains for a blockchain is for voting.Building a secure electronic voting system is a difficult task.Many governments have tried to roll out electronic systems but example after example shows that there were flaws.Governments are keen to see an IT solution as the costs of elections are non-trivial and in recent years voter apathy has been on the increase, especially among the younger computer savvy generation.The importance of voting deems it a crucial system that must execute without failure.There is however a new hope in the creation of a decentralised platform which can address many of the weaknesses which were inherent in traditional electronic voting systems.
Of course, at this time, there are many who believe a blockchain can be applied in most domains when, a Blockchain only makes sense when multiple mutually mistrusting entities wish to interact & change the state of a system and are not able to agree on an online trusted third party [10,11].Some will claim that the only true legitimate use case for a blockchain is cryptocurrencies however others think that the ledger's decentralised, tamper-proof nature makes it safe enough to allow fraud-free online elections.An interesting side effect of a blockchain is that it could allow for continuous voting e.g.casting a vote every week or month.This paper explores the application of blockchain for electronic voting.

The case for a blockchain for voting
One of the most valid domains for a blockchain is for voting [12,13,14,15].Blockchain distributes individual voting information across thousands of computers globally making it impossible to alter or delete votes once they have been cast.This approach promotes greater trust between voters and governments by protecting their data and privacy.Trust is inherently created by having the user in control over their data.Platforms like this allow allows citizens to cast their votes on smartphone apps, rather than having to queue up at polling stations.Implementing a blockchain does not require governments to completely rebuild their systems but rather their existing platforms can be re-modelled to fit.All signs point towards a shift towards decentralised remote participation as opposed to traditional centralised gatherings at public polling stations.
A Blockchain architecture specifically addresses one of the most difficult factors challenging electoral integrity -trust.Blockchain ensures trust is distributed amongst a set of mutually distrustful parties, all of whom are potentially adversarial, that participate in jointly managing and maintaining the cryptographically secure digital trail of an election.By distributing trust in this way, blockchains create a trustless environment whereby the amount of trust required from those participating in an election is minimized.The major weakness of blockchain in providing a solution for most business domains is that storing data or large files on the blockchain a non-starter as it can barely sustain small strings of text that simply record a balance transfer between two parties.However, the Interplanetary File System (IPFS) 1 is an interesting project that could provide much of the infrastructure needed for blockchain content storage as it provides a permanent, decentralized Web where links do not die, and no single entity controls the data.Organisations can add any data to it and in return receives a unique identifying hash.IPFS is a content-addressed system, in contrast to the Web, which is an IP-addressed system.It provides a decentralized way of storing files on a blockchain but giving more control, securely identifying content & providing rich programmatic interactions.It has potential but still in preliminary stages.
• Public Verifiability Everyone involved can see the voting process (recorded on blockchain) & verify the election's outcome.
• Individual Verifiability All voters can verify their ballot has been recorded in the final tally.

• Dependability & Consistency
The blockchain should be nonattackable and accept the same outcome of the election.• Auditability The voting process on the blockchain is auditable after the election by the public or third-parties • Anonymity All ballots have no connection with their voters (but each voter can verify their cast vote) • Transparency The blockchains transparency ensure the procedure is open to public scrutiny.

E-Voting Blockchain Projects
Some projects which are currently seeking or have implemented e-voting implementations on Blockchain include the following:

Luxoft
Luxoft Holding 2 , a global IT service provider of technology solutions aims to deliver an e-voting platform that enables the first consultative vote based on blockchain in the city of Zug, Switzerland.As one of the founding members of The Crypto Valley Association, which aims to build the world's leading blockchain and cryptographic technology ecosystem, Luxoft partner with organizations working on government-based blockchain service solutions and invite them to jointly create Blockchain for Government Alliance.In the pursuit of driving the adoption of blockchain-based services in government, Luxoft is striving to establish a blockchain for government alliance and hence promote blockchain use-cases in public institutions.Zug already accepts cryptocurrency for services and has digitized the blockchain based solution e-Vote, including the platform itself, software and algorithms is built on Hyperledger Fabric.Integrated with Zug's Ethereum-based digital ID registration application, residents are hereby allowed to cast votes on the blockchain.
The solution claims to use an innovative encryption technology that anonymizes the votes and allows tamper-proof tally and secure audit.With the help from the Lucerne University of Applied Sciences and Arts, Amazon AWS and n'cloud.swiss, the platform is deployed on three different data centers in the cloud.
Two of these are in Switzerland and one in Ireland.By distributing the data into three different data centers, security and data loss risks are distributed geographically for robustness.

IIT Bandung
IIT Bandung researchers [19] outline a recording of voting result using blockchain algorithm from every place of election.Unlike Bitcoin with its Proof of Work, they proposed a method based on a predetermined turn on the system for each node in the built of blockchain.This process begins when the voting process at each node has been completed.Before the election process begins, each node generates a private key and a public key.Public key of each node sent to all nodes listed in the election process, so each node has a public key list of all nodes.When the election occurs, each node gathers the election results from each voter.When the selection process is completed, the nodes will wait their turn to create the block.Upon arrival of the block on each node, then done verification to determine whether the block is valid.Once validated, then the database is updated with the data in the block.
After the database update, the node will check whether the node ID that was brought as a token is his or not.If the node gets a turn, it will create and submit a block that has been filled in digital signature to broadcast to all nodes by using turn rules in blockchain creation to avoid collision and ensure that all nodes into blockchain.The submitted block contains the id node, the next id node as used as the token, timestamp, voting result, hash of the previous node, and the digital signature of the node.
The blockchain permission protocol used is a distributed recordkeeping system operated by known entities, in other words having the means to identify nodes that can control and update data together in achieving the participants trust goals.The known entity in this system is any node that has been registered before the process runs, with the public key on each node owned by all the nodes in the system.Any data that is broadcast by the node that gets a turn is always verified and updated its data by the recipient.
The verification system performed by all receiving nodes can identify if there are previous hashes and / or public keys that are not registered in the database.The counter-time system becomes a parameter when there are nodes that have interference functioning in accordance with the design.Nodes that experience interference can perform manual data or system broadcast can be repeated to update data when the process has reached the last turn node.Each previous hash that is used by the block in the system has proven the same as the hash value on the calculation results using the data in the previous block.Each hash value in the previous block has been included in the calculation of hash values by the block that gets a turn on the system, making anyone who wants to change the data in the database will have difficulty because if one data is changed it must make changes to data on other block.

Ethereum Blockchain Trustless Voting
Fernado Lobato open sourced a voting system 3 as a smart contract running on Ethereum that uses threshold keys and linkable ring signatures to provide a transparent and robust system that could be implemented for medium size elections.Each voter is in control and can monitor his vote while remain anonymous amongst a set of users.The protocol minimizes centralization using threshold cryptography which allows for the voting to be tallied by anybody and does not require every user to vote for tallying to be precise.The execution of the protocol via the Ethereum protocol.They deployed the contract to the Ethereum test network and provided some analysis on feasibility and costs in the supporting paper 4 .The voting scheme is divided into the following phases after being deployed on the blockchain.
• Setup -Election authority uploads all information about the election.Length of voting and registration periods, threshold key for voters to encrypt their votes and the voting options.• Registration -At this phase any voter can go with the election authority and request his public key be included into the set of public keys eligible to vote.• Voting -At this phase any previously registered voter and submit an encrypted vote with the threshold key published in the contract with a ring signature of all the public keys registered in the sub ring.• Finished -Once the voting phase is over all the third parties holding secrets can submit them to the blockchain.When all the secrets are in the contract, anybody can download and reconstruct the private key.• Ready to Tally -Anybody can tally the result of the election.
The online repo contains Solidity contracts to represent election, Python scripts to compile and deploy., Javascript files for testing, a small web application to run the election scheme, Python program for working with linkable ring signatures and a Python program for working with threshold encryption.Development was done in a private Ethereum network deployed in two computers.The code has a set of scripts and documentation on how to recreate an Ethereum private network.The final tests were done in Ethereum official test network (Ropsten).There are 3 Ethereum test networks.Two of them use an alternative to Proof-of-Work called Proof-of-Authority where only certain nodes can mine transaction in a semi trusted environment that is not as energy consuming.They used Ropsten which mimics Ethereum current live network.

Public Votes
PublicVotes 5 is a freely available simple voting application built with Meteor that utilizes the Ethereum Blockchain to create a provably fair and transparent voting system.All votes of participants are recorded (by proxy) into the Blockchain for the world to verify.The application is not fully decentralized, since the design goal was to create an application that is easy to use for people outside the Ethereum space.The entire platform is built on Meteor with one smart contract coded in Solidity that is used for placing a poll into the Blockchain and for casting the votes.Anyone with a small amount of Ether can create a poll.At PublicVotes, the creator of the poll pays for the creation of the poll and for all votes.
A poll consists of the following information: Once the creator has entered this information, he/she is required to send a specified amount (0.2 Ether to be exact) of Ether to an address.All the accounts are generated on the client.This account is then stored in a local MongoDB collection and will be used for all future votes.Once the Ether have been received at the specified address, the poll is ready to go live and be deployed onto the Ethereum Blockchain.Once the contract has been mined, the poll will go live, and people can start voting.Once a vote has been received, the smart contract will record the vote into the Blockchain's event log.After voting, the user is redirected to /voted where there are statistics about the poll and the people who have voted.

Votem Proof of Vote
Votem Corp is a three-year-old blockchain-based mobile voting headquartered in Cleveland, Ohio.They have created a Proof of Vote protocol 6 , an end-to-end voter verifiable (E2E) digital voting system that uses blockchain to ensure the verifiability, security, and transparency of an election.The protocol leverages an ElGamal reencryption mix-net for anonymity, a multi-signature scheme for voter authentication and authorization, and verifiable distributed key generation and verifiable decryption for vote encryption and decryption.Their protocol is like other end-to-end voter verifiable (E2E) voting systems [18] in that: • Voters encrypt their vote with an election-specific public key, post it to a public repository of votes, and achieve anonymity via a homomorphic cryptosystem.• To achieve anonymity, the set of encrypted ballots is processed via a homomorphic cryptosystem and tallied with proofs of correct operations.
Proof of Vote differentiates itself from other voting and governance protocols by being designed from the ground up to explicitly optimize for the maximum level of verifiability, accessibility, security, and transparency of an election system deployed in the real world.It offers substantial advantages over more traditional E2E systems [20] via the use of blockchain and a multi-party signature scheme for voter authentication and authorization, aiming to be a mature and tried technological blueprint for how societies, governments, and organizations can build election systems and processes.Furthermore, Proof of Vote leverages blockchain to perform verifiable distributed key generation (for generating an election's public key), verifiable vote anonymization via mix-networks, and verifiable vote decryption.Every action that takes place as part of the Proof of Vote Protocol is realized as a transaction on the blockchain.This means that every action that takes places is verified in real-time by the entirety of the blockchain network and is inviolable once the transaction that represents that action is written to the blockchain.Furthermore, every action by a voter is fully visible to the voter and to every node at any time, maximizing visibility into an ongoing election without sacrificing the voter's anonymity.

Blockchain Types suitable for Voting
The major weakness of blockchain in providing a solution for most business domains is that storing data or large files on the blockchain a non-starter as it can barely sustain small strings of text that simply record a balance transfer between two parties [21,22].However, the Interplanetary File System (IPFS) 7 is an interesting project that could provide much of the infrastructure needed for storing data on the blockchain as it provides a permanent, decentralized Web where links do not die, and no single entity controls the data.Organisations can add any data to it and in return receives a unique identifying hash.IPFS is a content-addressed system, in contrast to the Web, which is an IP-addressed system.It provides a decentralized way of storing files on a blockchain but giving more control, securely identifying content & providing rich programmatic interactions.It has potential but still in initial stages.
A permissioned public shared blockchain would allow for the casting of votes quickly with prominent levels of trust and ultimately provide real-time publicly verifiable casting of votes by all engaged parties.It is therefore envisaged that a public permissioned ledger could be most applicable for e-voting.What makes the deployment of a permissioned public blockchain most applicable here is that we have a finite number of trusted parties who must be included in the blockchain for it to work e.g.voters, neutral observers & political organisations.A blockchain is suitable for several reasons which are not always the case when it comes to blockchain proposals.Here a blockchain would allow the casting of votes, the tallying and the verification of votes from the point of creation through the system of release and distribution.
The assets are created from the beginning in a digital format and relate to the casting of votes.There is no requirement for millisecond transaction speeds for managing the assets.The solution is about allowing trusted third parties to cast votes and is, therefore, a good match for blockchain.Shared write access is required so that all parties can have a transparent record of what has occurred and when.This provides irrefutable proof that a cast vote is associated with an individual [23,24].
Blockchain therefore looks like a viable solution to ease the strictures of existing traditional centralised solutions, however in practice what would be needed is the bringing together of representatives of all the activities in the voting value chain, from individual voters to the government agencies.

Conclusion
A valid route for an e-voting blockchain is through a permissioned public shared ledger.A permissioned, public, shared blockchain is a form of hybrid system that provide for situations where whitelisted access is required but all the transactions are viewable by the public.It applies here where only eligible voters can write to the network, but all transactions (i.e.votes) can be verified.A viable blockchain is Hyperledger Fabric which also have LevelDB which is a key value database allowing storage of data in the blockchain [25].
The Blockchains most compelling use cases are in areas such as cryptocurrencies, harvesting unused computer processors or evoting where in each case, all parties involved are untrusted and transactions must be immutable.A permissioned, public, shared blockchain is a form of hybrid system that provide for situations where whitelisted access is required but all the transactions are viewable by the public.This provides the transparency needed in democracies.It applies here where only key players within the voting ecosystem can write to the network, but all transactions can be verified.A viable blockchain is Hyperledger Fabric which also have LevelDB which is a key value database allowing storage of data in the blockchain.The Interplanetary File System (IPFS) could be also be a feasible route as you can address substantial amounts of data with IPFS which is not the case with all blockchains which are concerned with transaction validation as opposed to storage of data [26].
E-voting however does bring some new problems such as ensuring privacy especially in the case of public permission less blockchains but there are solutions for that [27,28,29,30].Other problems include the speed by which transactions can be verified.For instance, at this time Bitcoin and Ethereum can only process < 25 transactions per second compared, for instance, to Visa or Mastercard's thousands per second.This is not to say some countries have not experimented with blockchain for voting.In March, Sierra Leone recorded votes at 70% of the polling to the blockchain using a technology from Agora which anonymously stored votes in an immutable ledger.It provided instant access to the election results.Others such as Voatz, a startup out of Boston are building a platform for blockchain voting and are starting to experiment with New England open town meetings.The Nasdaq also recently ruled the Estonia experiment safe enough to allow firms to start using blockchain for proxy voting.So blockchain may be championed as the solution to many problems in vain, but one domain where it might make sense in the end -is electronic voting.

•
Title: Mostly a question that indicates what the users are voting about.• Description: A more comprehensive description that explains to the users what the vote is exactly about.• Options: The actual voting options for the poll.• Public Poll: The user can choose if the poll should be public or not.If the poll is private, only people with the link can participate in the vote.• Vote Limit: Limits the number of people that can participate in the poll.• Time Limit: This is a requirement as the account will eventually run out of Ether.