This document proposes a blockchain-based voting system to address issues with current elections like votes not being accurately recorded, lack of transparency, and the possibility of manipulation. It describes how a private blockchain with features like immutability, verifiability, and distributed consensus could provide a secure and transparent voting process. Voters would be able to verify their votes by matching their unique hash ID to the database and view results immediately. The proposed system aims to increase accuracy, transparency, and voters' trust in the election process. It was developed using Flask for the web framework, SQLite for the database, and PyCharm as the IDE.
1. Safe Voting Using Blockchain
-Misfahul Anfiya T N (17CSC28)
-Soniya M (17CSC45)
-Gloria Deepti S (17CSC14)
2. Problems Faced in Present Elections
● No assurance if votes are correctly registered to
the voter’s desirable candidate.
● Sometimes our vote is being registered by
others.
● Lack of transparency, accuracy and security.
● Possibility of manipulation of votes and
hacking of ballot machines.
● Lack of trust and belief in voting process and
government.
● Long time to calculate results.
3. Solution - Blockchain Technology
● Blockchain is a distributed, immutable, incontrovertible, public ledger.
● This new technology has three main features:
➔ Immutability
➔ Verifiability
➔ Distributed consensus
● Every blockchain consists of a cluster of nodes functioning on a peer-to-peer
(P2P) network system.
● Every node in a network has a copy of the shared ledger which gets updated
timely.
● Each node can verify, initiate or receive transactions and create blocks.
4. What is a Block and what does it contain?
● A block is a container data structure. The blockchain is a chain of data
blocks.
● Each block contains an index, unique hash id, cryptographic hash of the
previous block, a timestamp, and transaction data.
● Blockchains are designed to be immutable.
● Once a block is written to a blockchain, it cannot be deleted.
7. 3 V’s of the Voting Process
❏ Verification:
➔ To authenticate valid voters.
❏ Voting:
➔ Voters can vote only after the admin has started the election process.
➔ Voters give their preferences to candidates and votes are stored in the form of
blocks.
➔ Voters can download their hash id and preferences for verification process after
voting.
❏ Viewing the Database:
➔ Voters can verify their votes with the help of the hash id to check if their votes are
correctly registered.
9. Technical Stack
● IDE- Pycharm
Pycharm is an integrated development environment (IDE) used in computer programming
specifically for the Python language.
● Web Framework- Flask
Flask is a micro web framework written in Python. It is classified as a micro-framework
because it does not require particular tools or libraries.
● Database- SQLite implemented using Flask SQLAlchemy
Flask-SQLAlchemy is an extension for Flask that adds support for SQLAlchemy to your
application. It aims to simplify using SQLAlchemy with Flask by providing useful defaults
and extra helpers that make it easier to accomplish common task.
10. Technical Stack
Reasons for using Flask:
❖ Gives the developer varieties of choice when developing web applications
❖ It provides users with tools, libraries, and mechanics that allow to build a web
application
❖ Allows the developers the opportunity to use some extensions provided by the
community that allows to add more functionality to the web application.
Reasons for using Sqlite:
❖ Implements a small, fast, self-contained, high-reliability, full-featured, self-contained,
server-less, zero-configuration, transactional SQL database engine. SQLite is the most
widely deployed database in the world
11. Our Voting S/W Contribution
➢ The database containing votes of all voters would be viewed by voters immediately
after election process is over.
➢ The voters themselves can verify their votes in the database with the help of their
unique hash id.
➢ The transaction slip generated in the form of pdf after submission of votes acts as a
proof for voters that they have voted and it also contains their preferences.
➢ Greater accuracy due to tally of coin values.
➢ Better transparency
Saved time
Increased voters’ belief on voting process
12. Pros and Cons of Private Blockchain
ADVANTAGES
► Speed
► Scalability
► Time saving
► Less cost
► Reliability
DISADVANTAGES
► Needs trust building
► Lower security
► Centralization
► Control and
Manipulation
13. Limitations and Future work
❏ Tampering the database would be transparent but there is no way to prevent tampering.
❏ Making the software online can help many students vote simultaneously from different
locations where the concurrent changes to database should be handled properly.
❏ This voting system can be integrated with college website which helps the students to
vote online from their homes.
❏ The other posts for which election need to be held can also be added dynamically by
admin in future work.
14. Conclusion
● Developed a web based voting system using private blockchain technology
which involves admin and voters as a actor.
● At present most of the people have lost faith in the publication of results
after elections is over.
● Developing this kind of voting system using blockchain technology which
is very safe, secure and transparent would help the voters to believe that
enter the election process is secured and true.