Project Distributed Digital Transactions
Project Distributed Digital Transactions
Declaration
By submitting this assessment, I confirm that I have read the CCT policy on Academic Misconduct and
understand the implications of submitting work that is not my own or does not appropriately reference
material taken from a third party or other source. I declare it to be my own work and that all material
from third parties has been appropriately referenced. I further confirm that this work has not
previously been submitted for assessment by myself or someone else in CCT College Dublin or any
other higher education institution.
JOELMA RODRIGUES | 2023246
BSC (HONS) IN COMPUTING IN IT (3RD YEAR)
DISTRIBUTED DIGITAL TRANSACTIONS
DR. MUHAMMAD IQBAL
BLOCKCHAIN IN THE
FUTURE OF
ELECTRONIC VOTING
SYSTEMS
3 R D DECEMBER 2023
Contents
Introduction....................................................................................................................................................5
Methodology.................................................................................................................................................. 6
Development..................................................................................................................................................7
Description..................................................................................................................................................7
Design......................................................................................................................................................... 8
Benefits and Limitations.............................................................................................................................9
Cryptography Methods.............................................................................................................................10
Results and Discussions................................................................................................................................11
Conclusion.................................................................................................................................................... 12
References....................................................................................................................................................13
Introduction
In order to ensure a democratic political election, where the population votes to elect constituency
representatives and cooperate governance, electoral integrity is crucial to increase vote turnout and
confidence in the election process, so governments adopt a voting method that gives people
confidence, whether via print ballot papers or polling stations. In recent years, security issues
regarding vulnerability have raised concerns about the legitimacy of the traditional voting system
and the manipulation of votes.
Research incorporating blockchain technology in several industries is now a trend in the Internet and
Big Data era, looking to enhance current business models, deliver security, transparency, and
accuracy and offer innovative solutions for practical challenges. The popularisation of blockchain
technology resulted from cryptocurrency transactions achieving notoriety with the initiative of
Bitcoin and Ethereum, a decentralised digital system that solved common problems such as the
double expenditure challenge faced by the traditional banking system due to its cryptographic
transactions.
Blockchain technology is a suitable substitute for the traditional electronic voting system,
overcoming correlated challenges. Online voting is a trend in modern society, enhancing the
efficiency and effectiveness of democracy and guaranteeing accessibility to ensure elderly citizens
and disabled individuals have the opportunity to vote.
This project aims to explore the implementation of blockchain technology in the voting system,
intending to propose a more robust election system to address the disadvantages of the
conventional voting system, which can improve vote turnout, consequently contributing to more
democratic governance. The principal goal of this study is to demonstrate a rudimentary model of in
what method blockchain technology can be utilised in the electronic voting system, recognising real-
world limitations such as the cost of employing the technology and advanced regulations to
administrate a modern election system.
The structure of this report presents a review of the research and implementation of blockchain
technology in electronic voting systems. Following this introduction, the methodology lists the tools
used to develop the project. Subsequently, the development section shows the system's design, then
analyses the implementation process, discusses the results considerations, and discusses the
outcomes to understand the study components clearly.
Methodology
In order to develop a blockchain technology system to integrate into an electronic voting system, the
choice of developing tools and environment setup used in this project were facilitated by previous in-class
tutorials, providing substantial experiences within blockchain technology scenarios. To review, the
technologies used ranged from integrated development environments such as Remix and Visual Studio
Code to developing the Solidity smart contracts to deliver a decentralised application, as well as the
Ganache and Truffle frameworks that provided a local Ethereum virtual machine, allowing the testing and
debugging of the chain application.
The central part of the project consisted of developing smart contracts to provide functions to simulate a
voting system, from handling the registration of voters and political candidates to voting mechanisms that
prevent citizens from double voting or voting for an ineligible candidate—also, a contract capable of
handling the overall election process and the event details.
The implementation stage followed the environment setup phase assistance; classroom experiences
provided a basic understanding of the implementing chain technology. However, due to a slightly more
comprehensive application, diverse challenges required writing extensive unit tests to asses the functions
within respectively smart contract, including a complete election simulation test to guarantee proper
integration and functionality of the voting system.
The project is an individual effort that adheres to strict documentation methods to track the planning,
development, and testing stages required to achieve the project ambitions and serve as a fundamental
troubleshooting resource and reference.
Development
Description
The objective of the development of an electronic voting system integrated with blockchain
technology comes from the necessity of overcoming traditional election system challenges,
enhancing accessibility, trustworthiness, and transparency in the electoral process, and consequently
increasing the vote turnout. Named after the data structure, one of the blockchain's main
characteristics is immutability since each block contains data from the previous block, meaning that
no data can be deleted, altered or added without being traceable (Jafar, et al., 2021).
The other properties of the chain technology, such as decentralisation, transparency and privacy,
make it suitable to integrate into several systems, specifically the election system. Reducing errors
produced by the traditional system allows the initiative to be more convenient, addressing practical
issues related to the postal system, geographical and mobility barriers, and centralised systems
failures (Taş & Tanrıöver, 2020). This project proposes a more user-friendly system that does not
require technical expertise, creates an engaging political environment and mainly demonstrates the
integration of blockchain in the electronic voting system.
Design
The design of blockchain voting system was designed to provide a safe and transparent electoral
process. It consists of four main smart contracts, and each contract has a critical role in the
functionality of the system, as shown in the image below.
2. Candidate Management:
This contract manages the candidates' information, where it stores details like name and
party affiliation, tracks the vote count for each and the status of an active candidate.
Provides functions like:
- addCandidate( ), removeCandidate( ), getCandidate( ), updateCandidate( ) to ensure
verification of candidates and manage the processes involved.
3. Voting:
It is the main smart contract of the system, validates votes cast, and has functions like:
- voteCast ( ) to record which candidate was voted for by each voter;
- hasVoted( ) to ensure voters do not vote twice.
4. Election:
This contract manages all information regarding the election itself, collecting attributes like
'electionName', 'startTime' and 'endTime.' And functions such as:
- createElection( ) to create an election and control timeframe;
- getResults( ) to output how many votes went to each candidate;
- getWinner( ): to show the election winner.
The following image graphically illustrates the phases of an election, from creating an election and
registering voters and candidates to voting and finishing the election, concluding in the winner
announcement.
Although it offers an extensive range of benefits, blockchain technology is not free from challenges;
there are a few issues regarding scalability, and maintaining a secure blockchain voting system
requires advanced technical expertise and progressive infrastructure to maintain robust and secure
system (Jafar, et al., 2021). There is also a dilemma regarding privacy and transparency, how to
promote voter anonymity and guarantee transparency to the process of voting integral, and extends
to the challenges of making sure all voters have access to basic technology, such as electronic
devices and Internet access, bringing issues regarding inclusivity and fairness.
Cryptography Methods
The security side of the blockchain system is based on the concepts of the smart contract, immutable
transactions that are verified network participants, and Ethereum, a technology that functions
through a decentralised consensus mechanism. The main structure of a bloc chain is based on a
system of chain blocks linked by cryptography hashes, creating a tamper-proof environment and
providing security (Pilkington, 2015).
Although the success of cryptocurrencies like Bitcoin gave rise to the popularisation of blockchain,
smart contracts expanded the technology beyond, allowing it to operate on a peer-to-peer network,
eliminating centralisation and updating the fault tolerance consensus system Allied to the public key
cryptography, serving to validate user's keypair and signed requests, also permits an owner to
manage funds in a wallet, which is essential to the application of the technology in a system like the
voting system (Jafar, et al., 2021). As discussed previously, blockchain technology still faces scalability
limitations, and it has been proved that adding more machines to a network does not necessarily
mean that it enhances the network performance.
Results and Discussions
As the result of the project integrating blockchain in an electronic voting system, the challenges
provided a closer observation of the potential of blockchain technology. It showed that it can
revolutionise how society does business and change how systems are built. Acknowledging the
limitations encountered regarding deploying a substantial system on a large scale is essential.
However, I faced a few challenges when developing the smart contracts using solidity language,
which was quickly sorted due to the online documentation on every aspect; there were challenging
moments when developing test scripts and managing my Ganache wallet, and I also faced the loss of
the project when dealing with Gihub commits. Still, overcoming those challenges highlighted the
benefits and limitations of a blockchain technology system and provided essential learning points
about raising recent technologies.
In addition, there is a link to the video demonstration of the project's practical functions to offer a
visual perspective of the project operating in a real-world scenario. Moreover, the code is available
in the GitHub repository at the link below.
Jafar, U., Aziz, M. J. A. & Shukur, Z., 2021. Blockchain for Electronic Voting System - Review and Open
Research Challenges. Sensors (Basel, Switzerland), 31 Aug, 21(17), p. 5874.
Pilkington, M., 2015. Blockchain Technology: Principles and Applications. In: F. X. Olleros & M. Zhegu, eds.
Research Handbook on Digital Transformations. Exeter: Edward Elgar, p. 39.
Taş, R. & Tanrıöver, Ö. Ö., 2020. A Systematic Review of Challenges and Opportunities of Blockchain for E-
Voting. Symmetry, 12(8), p. 1328.