Understanding why we clamor for Blockchain-powered voting system
I know this is turning to a cliche, Blockchain this, blockchain that. The loud publicity and awareness are as a result of trying to fit blockchain solution into every possible problem that requires elimination/reduction of middlemen/rent-seekers and trust issues but if we are to look closely, we will see an actual use-case when it comes to using such technology for elections especially ours. This post is as a result of the impracticality of our present manual voting system with its hydra-headed problems; people die, security forces connive with the government of the day or highest bidder, thugs are used, voting processes are disrupted, ballot boxes snatched, fake thumbing, and so on. I resolved never to waste my time again with our elections after the 2019 general elections. I walked for miles under the hot sun to go vote in my polling unit only for political thugs to destroy the cast votes while the Security agencies look-on powerless.
Now that the Senate is looking toward electronic voting, it’s a time to look towards the gains presented by the use of blockchain for fairness and openness which could significantly reduce the cost of our elections. So how does the blockchain come in?
The Blockchain or DLT and Consensus Mechanism
A public blockchain isn’t necessarily needed. A permission-ed/private blockchain using the “RAFT consensus mechanism” will serve the purpose of the election instead of using others like PoW/PoS. This will ensure only the stakeholders have access to make changes to the blockchain base on votes received from voters via the voting app. This will also ensure finality is fast as Transaction ThroughPut will be high because nodes in the system are known and few.
On the blockchain, there are nodes(computers) that validate the data in a blockchain are correct and approves it as a valid block while in some blockchain like Ethereum Casper PoS, a block validator is also known as Block producer(a computer node that produces a block — a block is like a container where you have a certain number of transactions/data). On a public blockchain like Bitcoin and Ethereum, provided you have the computer resources to run a node, you can be a validator but in this scenario, the Block Validator nodes have to be run by the Political Parties and INEC, starting with INEC as the leader based on RAFT Consensus mechanism.
Voters Account on Blockchain
Every voter in the system will be assigned a Public address and Private key that is attached to any of the identity database systems being run by INEC or Government agencies like NIMC(Seeing how a centralized identity system can be flawed, a decentralized identity system can be used). Likewise, a token is automatically created for each account once the system authenticates or verifies a user’s identity via a face ID or thumbprint. This will ensure each record is attached to only one account on the blockchain. Eligible voters are known and voting population from a Polling Unit is known. The private key given to each user after registration can only be used by the user to vote(sign/authenticate a transaction). The Private key can be encoded to QR code for ease of use with a QR app scanner to verify and sign votes during voting. Once a vote is cast, the token allotted to the user is subtracted from his account. These tokens represent votes.
Smart Contract for Voting System
On the Smart Contract, each user’s public address is whitelisted upon creation on the blockchain so that any address that is outside the whitelist can not vote or carry out any transaction on the blockchain. This is where security checks are carried out to ensure that one account equals one vote and votes are based on tokens created for each account and Political position. Also, due to the nature of the permission-ed blockchain being used, permission to view voters and other demography in the system can granted to only the Block Validators(Political Parties). A Frontend(Website, Mobile, SMS, USSD app) view will be used to display the election results as they happen on the blockchain.
Also, users can edit their details like Polling Unit in case of a change of address. For this to happen, a user will need to approve/sign such change with their Private Key(Private key is like your Password or PIN Code).
The voting system would need mobile apps created for it. Voters can sit at the comfort of their home or wherever to vote for the candidate of their choice, provided their mobile devices can run a facial recognition or thumb scanning application and also read QR code. A web interface can also be created where users can vote online. For those in rural communities that don’t have access to electronic devices, Mobile voting trucks with the voting application installed on the voting hardware can be driven to their geographical area. If there is no internet within such geographical location, the blockchain can operate as a side chain and sync later with the main chain for “Finality purpose” of results.
Third-Party/Ad-hoc Voting Agents
With such a decentralized voting system, third-party agents can be contracted to conduct voting on behalf of the Electoral Body (INEC) to reduce overhead costs. Their role would be to make available the voting application and help voters with the voting process/education. This can also be done in such a way, via Smart Contract, that the agents get automatically paid by INEC base on the number of voters verified via their system. A payment API can automatically be called when a voter is verified and the payment sent to the Agent’s pre-registered bank account. This will reduce corruption by some INEC officials of not paying Third-party/Ad-hoc staff of the commission.
With the above process of voting in an election, the date and time for voting can be elongated to about a month. Voters can choose when and how they want to cast their votes without the government grounding economic activities. This will also reduce tensions and other unnecessary resources being spent due to the limited time of conducting the voting process and collation of results.
“Even Jesus can’t conduct free and fair Election in Nigeria” — Fmr. President, Olusegun Obasanjo, 2010.
Though this statement was quoted out of context when he made it, it is still relevant in describing the state of mind of our present political actors. The above method of election voting does not guard against vote-buying, bullying, and disenfranchisement but it goes a long way in tackling age-long issues like ballot box snatching, disenfranchising certain areas that are known to align to a political party, thuggery and destroying of votes cast after a long day under the hot sun or heavy rain. A solution as this comes with its attack vectors but we have a better chance of conducting a free and fair election without much budget, unnecessary deaths, and intimidation. This model might not be perfect but can be improved upon.
Thanks to Olusegun Komolafe for his contribution
Charles is a blockchain solution architect, full-stack developer with over twelve years of experience in application development, product management development, and running several startup ideas. Passionate about great ideas that have “Proof of concept” and scalability. #Fitfam gym dude and enjoys swimming when he is not working, in a bar, cooking, playing ping-pong or snooker.