Side 1 :

Hello everyone. So today I'll be presenting my project, Integral.

Slide 2 : Introduction

Integral is a solution to the many limitations and challenges that were faced by traditional voting systems.

  • General elections still use a centralized system, now a centralized system is a system which is owned by one single organization that manages it and has full control over it. SO there's always a possibility of that organization tampering with the data.
  • It is possible to tamper with the database, and it can be manipulated to favor a specific organization.
  • Now, we at integral are basically trying to solve this problem.

Slide 3 : Proposed System

And the way we'll achieve this is by using Blockchain.
Blockchain

  • It embraces a distributed system and the entire database is owned by many users.
  • Blockchain itself has been used in the Bitcoin, Ethereum, Ripple, Litecoin, etc.
  • By implementing blockchain in the voting system and by storing the database on it the instance of the database which had been manipulated and tampered with can be identified and then discarded before performing calculations on that dataset.

Slide 4 : Blockchain

Now before getting into the depth of this project let us first take a look at what this blockchain thing is ?

  • Blockchain operates on a decentralized network of computers, which are called nodes. This decentralization ensures that no single entity has complete control over the system and the database.
  • This promotes transparency and reduces the risk of data manipulation.
  • Blockchain maintains a chain of blocks. Each block contains a batch of transactions and a reference to the previous block.
  • Once a transaction is added to a block and validated by the network it becomes immutable, meaning it cannot be altered or deleted.
  • This immutability ensures the integrity and security of the data stored on the blockchain.

Slide 5 : Blockchain Structure

  • Header : It is used to identify the particular block in the entire blockchain.
  • Previous Block Address : It is a reference to the hash of the previous (parent) block in the chain.
  • Timestamp : It is a string of characters that uniquely identifies the document or event and indicates when it was created.
  • Nonce : is used for validating a block's legitimacy. It is a variable that miners manipulate to produce a hash value that satisfies a particular requirement.
  • A Merkle root is a simple mathematical way to verify the data on a Merkle tree. Merkle roots are used in cryptocurrency to make sure data blocks passed between peers on a peer-to-peer network are whole, undamaged, and unaltered.

OR

Let's take a closer look on what a block is :

Pasted image 20240320012140.png
This is a representation of a block.

  • Each Block contains data, hash and hash of the previous block
    • Data can be anything like details of a transaction or something else.
    • A Block also has a Hash, you can compare a hash to a fingerprint as it is always unique. It is also used to uniquely identify a block.
      Pasted image 20240320012432.png
      When a block is created a unique hash is created for that block and when any data is changed inside that block will cause the hash to change.
      So in other words, hashes are very useful for the detection of changes in a block. So if the fingerprint of a block changes it no longer is the same block it previously was.
    • The third element, Hash of the previous block basically does what the name says, it stores the address of the previous block.

Pasted image 20240320013215.png

  • We can see that the 3rd block is pointing to the 2nd block and the 2nd block is pointing to the 1st block.
  • First block is a special block as it does not point to any other block as there are no block prior to that block. We call this block the genesis block.

Pasted image 20240320013609.png

  • Let's suppose that we tamper with the data of the 2nd block. Doing so will regenerate the hash value of this block. Now since the hash value of 2nd block has been changed, all the blocks after 2nd block become invalid as the chain between 2nd and 3rd block has been broken due to un matched hash values.

But using hashes is not enough to prevent tampering. Computer these days are very powerful, and a matching hash value can simply be calculated again to make your blockchain valid again.
To solve this problem blockchain have something called proof-of-work, it is a mechanism that slows down the creation of blocks. It can approximately take 10mins to add a new block to a chain. This makes it very hard to validate the blockchain after tampering with it's data as you'll have to re calculate proof-of-work for all the following blocks.
So the security of the blockchain comes from the combination of hashing and proof of work mechanism.

Election and Blockchain Technology :

  • Traditional Voting System has several problems encountered when managed by an organization that has full control over the system and database, therefore the organization can tamper with the database and when the database changes it's instances can be easily eliminated.
  • The solution is to make the database public, the database owned by many users, which is useful to compare if there are any discrepancies.
  • Each voter's vote serves as a transaction that can be created into a blockchain.

Working

  • 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, data verification is performed to determine whether the block is valid or not.

Verification and Update

  • Verification process starts from the acquisition of a block containing the voting result, the previous hash value originating from the previous block and the digital signature.
  • Digital Signature is done by decryption process using the public key of the node that makes the electronic document.
  • These two hash values are compared, if the value is the same then the signature is valid and the process continues but if the value is not equal it is considered invalid and the system will refuse the block to continue the process.

Create new block and Broadcast : (Leave) :

  • Nodes collect votes from each selector, then calculated and combined with the previous hash as an electronic document in the system.
  • Hash value encrypted using the private key.
  • After the node is done creating a new block the block is broadcasted to all nodes.

Implementation :

Many features get inherited from the blockchain itself, such as End to end verification, transparency, immutability etc.
SSH and Homomorphic encryption and One-Time Ring Signature techniques are some of the techniques used for implementation.

Limitations and Challenges :

  • Even though Blockchain provides many features, there are still some limitations.
  • One major issue with blockchain is Majority Attack. If someone has more than 51% of computational power then they can modify the transaction data.
  • Another one is that after version change old nodes couldn't agree with the new nodes and thus a problem occurs.

Conclusion :

  • Blockchain technology can be one solution to solve the problems that often occur in the electoral system.
  • The use of hash values in recording the voting results of each polling station linked to each other makes this recording system more secure and the use of digital signatures makes the system more reliable.

References