Blockchain is a decentralized public ledger with strict-encrypted mechanism on its member interoperability. In a much simpler form, blockchain is simply a data structure of singly linked-list of nodes within a network, each nodes contains several blocks, each block holds cryptographic information of the previous block. Below is a simple overview representation of a blockchain network (Fig. 1).
Blockchain is a very complex technology even for some experts, for that only the important details that would be of interest to this paper will be discussed.
Consensus
Each node in a blockchain are also permissible to create a new block to the network, but there must be a well-defined consensus that guide them to perform such task. If all the requirements in the consensus are met by the new block, a copy of it is sent across the network to all participating blocks, if all blocks ones again accept this request then only a new block can be added to the network.
Smart contract
Every task carried out by different blocks in a network is supervised by a prebuilt well-defined document, this is referred to as smart contract, all blocks must contain a smart contract that define their role and how to carry out their process. Smart contracts are like encoded business contracts, and according to Blockchain Hub [12] “A smart contract is a computer code running on top of a blockchain containing a set of rules under which the parties to that smart contract agree to interact with each other. If and when the pre-defined rules are met, the agreement is automatically enforced.”
Nonce
After all requirements are met with the consensus and the smart contract terms are agreed upon, a transaction is created and ready to be added to a block on the network. The transaction when ready would be encrypted with a harsh encryption. Nonce is a random 32-bit number that allows to generate (at the time of encryption) a specific number of leading zero’s in the harsh of a particular transaction, this number of leading zero’s in the harsh is known as the difficulty of the network and it is synonymous across all blocks in the network.
For example, below is a generated harsh from the string “My first block”.
The harsh of the string above is b89a1b498c22d6464ddcfcf60bc96bb9 but if the blockchain network difficult level requires 4 leading zeros’ then we need to find a random number that when added to the string will generate a harsh like this 0000b89a1b498c22d6464ddcfcf60bc96bb9. This number is regarded as the nonce, and it only affect only that particular transaction, so if an attacker was able to guess a particular transaction’s nonce, the attacker has to know every other nonce for the rest of the transaction. This is the simple concept of nonce.
In practical, every polling station represents a node in the network, every node carries out transactions which are publicly integrated to other blocks on the network for verification and public access.
Each polling unit will represent each node on the network, in case we have to trace any error we know where it’s coming from. While each vote represents a block. This gives every voter the flexibility to vote from any polling unit within the nation, instead of having to travel back to their local polling unit to vote.
When the voter arrives at the polling unit, they undergo the verification process, where they have to successfully pass the biometric verification. On successful biometric clearance, the voter will proceed to the voting booth where he/she will have to vote their candidate of choice, once the vote is successfully acknowledged, a transaction is created and stored in a block on the blockchain ledger which will be distributed across all nodes for consensus check. This newly created block contains some important information, like the block number, harsh of the previous block (referencing immediate previous block), transactions (in this case votes and voter’s credentials) and some other information that is not relevant to users. Information once stored on the blockchain ledger are permanent and cannot be altered, any attempt to alter an information on the ledger trigger all succeeding blocks as corrupt, because every block contains cryptographic information from its previous block. For example, the structure below shows what happens when a block information is tampered with.
Once an attempt is made to alter a particular block recording many votes in the ledger, the subsequent blocks are affected, and this make it easier to trace where the problem is coming from as shown in Fig. 2. After some periodic fixed time, all nodes on the network are programmed to automatically exchange a copy of their current valid ledger with each other to keep them up-to-date. This exchange of ledger will then replace any damaged/faulty block and the whole network is backed up again. This technique makes the blockchain an exceptional in terms of security.