Blockchain based decentralised voting system

Home/Blockchain/Blockchain based decentralised voting system

Blockchain based decentralised voting system

Blockchain based decentralised voting system

Since a blockchain is a permanent record of transactions (votes) that are distributed, every vote can irrefutably be traced back to exactly when and where it happened without revealing the voter’s identity. In addition, past votes cannot be changed, while the present can’t be hacked, because every transaction is verified by every single node in the network. And any outside or inside attacker must have control of 51% of the nodes to alter the record.

Even if the attacker was able to achieve that while incorrectly entering user votes with their real IDs under the radar, end to end voting systems could allow voters to verify whether their vote was correctly entered in the system, making the system extremely safe.

Advantages of Blockchain based decentralised voting system

Blockchain technology has the potential to facilitate a secure, accurate, and transparent election while addressing privacy concerns. A single vote cast using Blockchain is likely to bring down the cost of the vote from typical $7 to $25 to less than 50 cents in the current US election system. The immutable nature of the technology ensures election integrity and legitimacy of the outcomes.

Transparency and Accountability

Firstly, Blockchain facilitates voters to verify their votes after casting them. Additionally, immutably stored and timestamped votes ascertain transparency in the election process. Secondly, transparent systems inherently add accountability. Opportunities to rig the system significantly reduces if all the actions are immutable and transparent.

Fraud Prevention

First segregating responsibilities between the various participant nodes in the election process will ensure no collusion is possible . Having three distinct types of nodes — administrators to manage elections, validators to confirm votes, and nodes for counting votes — can reduce the possible collusion.

Secondly, the tamper-evident and incontrovertible databases ensure deliberate tampering of votes is unfeasible. Finally, since multiple, distributed nodes have to arrive at a consensus for adding votes to a block, it is possible to mitigate the opportunities of intentional fraud.

Privacy with Blockchain voting

There are two distinct privacy concerns with Blockchain voting. First is the voter privacy. If the votes and the voter data are in the same system, the ballots are likely to be traced back to the voters. Knowing the voters might result in malicious validators intending to sway the elections in a candidate’s favor to reject their votes. Hence, it is vital to maintain two distinct Blockchain systems — one for votes and one to track voter turnout.

The second concern is the privacy of votes. It is monumental to encrypt the ballots before recording them in Blockchain. Zero Knowledge Proofs help the voters declare their votes without revealing any information about the choice itself.

Security with Blockchain voting

Blockchain combines the power of cryptography with transparency, which makes it a convenient and secure option for online voting. People can now cast their votes using a computer or a mobile device, without the security or their privacy compromised.

What are the challenges with Blockchain voting?

Blockchain technology does add value to the election process. Nonetheless, using this technology for conducting elections brings in problems unique to the technology. 

The first problem to tackle is the block finality time. Depending on the system used, the time taken varies from a few seconds to a few hours. Longer confirmation times increases the possibility of double voting — Voting process that allows voters to cast their ballots multiple times as their previous votes are not yet confirmed. Hence it is wise to choose fault-tolerant algorithms instead of resource-intensive Proof-of-Work algorithms to accelerate the vote confirmation time.

Secondly, using Blockchain might endanger the fundamental principle enshrined by the US constitution — 1-person-1-vote. In other forms of voting, once the voter casts their votes, their ballots are assured to be counted unless tampered. With Blockchain, there is an additional layer of validator consensus on transactions (votes). If a majority of the validator nodes collude and reject the ballots, the voters risk losing their votes. Hence, it is judicious to have disinterested third parties overseeing the voting process.

Finally, the gravest concern is leaving out technology-challenged people from the system. With Blockchain only voting systems, there is a risk of voters who are not technology savvy or do not have access to necessary infrastructure get left out of the election process. A hybrid solution of leveraging Blockchain along with the existing systems, will be beneficial. Voters have a choice to use either traditional voting mechanisms or Blockchain powered systems for registration and voting. However, irrespective of the voting mechanism, the votes have to be recorded on Blockchain. This hybrid approach would give the best of both worlds.

Key requirements to make blockchain powered voting systems succeed

  1. Trust: All stakeholders must have confidence and trust in the decentralised voting system. This will depend on multiple aspects such as security, transparency, auditability, verifiability and other essential attributes. 
  2. Transparency: The system should support the casting of votes and tally of votes by all stakeholders, as well as allow them to verify this easily. 
  3. Verifiability: The system must enable voters to check that their votes were cast and recorded as valid votes for a candidate of their choice without any error or internal manipulation. 
  4. Auditability: The system must be able to support any process that may necessitate the rechecking and recounting votes in the event of electoral disputes. 
  5. Availability: The system must have sufficient mechanisms in place to forestall instances of down-time during the period of elections. 
  6. Performance: The system must ensure that all operations are handled speedily and efficiently. Efficiency depends on the overall system’s throughput such as the number of transactions per time (seconds/minutes), and the response time to user queries. 
  7. Non-coercion of voters: The system must minimise the risk of voters being coerced to vote in certain ways by preventing manipulation and intimidation of voters. The system must be able to conceal the identity of voters, and the choices made during voting. 
  8. Socio-economic influences: Politicians should not be able to exploit the poor socio-economic status of some voters to unduly influence them to vote in a particular way. 
  9. Socio-political factors: The decentralised voting system should not be vulnerable to socio-political manipulations that can compromise the integrity of the voting process.

Proposed Blockchain Architecture for decentralised voting system

Based on the identified requirements, here is our proposed blockchain-based architecture for decentralised voting system. 


It is a layered architecture that consists of four layers which are 

  1. Client Layer
  2. Application Service Layer
  3. Blockchain Layer
  4. Data Storage Layer

Client layer: this layer contains the various electronic devices and systems with which users interact with the blockchain e-voting system. 

These devices are the peer nodes of the e-voting blockchain that interact via smart contracts, referred to as “chaincode” in the Hyperledger Fabric. The different types of peer nodes and their assigned responsibilities are: 

  1. E-Voting nodes: The primary purpose of these nodes is to enable voters authentication and casting of votes, and to ensure that all blockchain transactions are recorded.
  2. Administrator nodes: These nodes are used to configure blockchain network channels, assign roles to the nodes of the blockchain, grant permissions, and set the level of access control for specific nodes. 
  3. Public nodes: These are the nodes that enable view-only public access to transactions of the e-voting blockchain. 
  4. Vote validation: These nodes are responsible for vote validation. They are also used to ensure the authenticity of transactions that are included in a block. 
  5. Committing nodes: These are the nodes that validate and commit new blocks to the blockchain.

Application Service Layer: this consists of a set of services that are available in the decentralised voting system. The level of access control and the defined permissions level determines the type of services that a node can access in the blockchain. 

Blockchain Layer: this is composed of the Hyperledger Fabric V2.0, which is a modular blockchain architecture framework that facilitates blockchain information system solutions. It supports the creation of permissioned blockchain networks that have in-built properties such as security, and privacy protection. 

The Hyperledger Fabric has “ordering nodes” which ensures consistency of the blockchain by ensuring that only ordered blocks of an endorsed transaction are made available to the committing peer nodes before they are added to the blockchain. 

Data Storage Layer: this contains the relevant databases that store information on the profile of registered voters, political offices being contested for, and all political candidates. This database is used as the basis to authenticate and authorise voters to vote.

A Process View of the Blockchain Architecture for decentralised voting

For efficiency, it is assumed that the casting of votes will take place at designated polling units to protect voters from being coerced to vote in certain ways by politicians and their agents. 

With the Blockchain, the e-voting procedure will follow the procedure below: 

  1. The voter inserts the personal smart card into the voting node and supplies a password. 
  2. Authentication and authorisation of the votes take place via the IEC database. 
  3. If successful, a digital ballot is generated by the IEC system. A digital ballot consists of a set of candidate public keys and a unique ballot ID 
  4. Voter submits a vote for the preferred candidate. 
  5. The ballot ID is assigned to the preferred candidate through their public key. The transaction is authenticated by using the digital signature of the private key. 
  6. The transaction is sent to all nodes and stored on the blockchain.

An overview of the decentralised voting process that is based on the blockchain architecture is presented in Figure.

Process View—UML activity diagram of blockchain based decentralised voting system

Development View—UML component diagram of blockchain based decentralised voting system


In conclusion, Blockchain technology might not be the panacea for all voting problems. But the benefits of Blockchain voting would go far in reducing voter apathy and even encourage more people to vote.

By |2021-04-09T06:52:56+00:00April 8th, 2021|Blockchain|Comments Off on Blockchain based decentralised voting system

About the Author:

Co-Founder of SoluLab | ICO Bench Expert | ICO Advisor | CEO NexTBlockChain | Ex Vice President Goldman Sachs, NYC


Get to know us.


Say Hello !

    Our minimum project engagement starts at 10,000 USD