Vous êtes sur la page 1sur 24

NITTE MEENAKSHI INSTITUTE OF TECHNOLOGY

(AN AUTONOMOUS INSTITUTION)


(AFFILIATED TO VISVESVARAYA TECHNOLOGICAL UNIVERSITY, BELGAUM, APPROVED BY AICTE & GOVT.OF KARNATAKA)

CNS REPORT

ON

BLOCK CHAIN VOTING SYSTEM

Submitted by:

1. CHANDANA.R 1NT16CS022

2. ANANYA.U
1NT16CS015
3. CHARAN TEJA.K 1NT16CS023
4. AMBIKA.K 1NT16CS012
5. APPORVA.H 1NT16CS017

In partial fulfillment of the requirements for the completion of IV Semester Object-Oriented


Programming Course-Project work during the academic year 2016-2017.

Department of Computer Science and Engineering


Nitte Meenakshi Institute of Technology,
Yelahanka, Bangalore– 560064
Academic Year 2017-18

NITTE MEENAKSHI INSTITUTE OF TECHNOLOGY


(AN AUTONOMOUS INSTITUTION)
(AFFILIATED TO VISVESVARAYA TECHNOLOGICAL UNIVERSITY, BELGAUM, APPROVED BY AICTE & GOVT.OF KARNATAKA)

CERTIFICATE
This is to certify that the Project Report

BLOCK CHAIN VOTING SYSTEM


Is an authentic work carried out by
1.CHANDANA.R 1NT16CS022
2.ANANYA.U 1NT16CS015
3.CHARAN TEJA.K
1NT16CS023
4.AMBIKA.K
1NT16CS012
5.APOORVA.H
1NT16CS017
In partial fulfillment of the requirements for the completion of IV Semester Object-Oriented
Programming Course-Project work during the academic year 2017-2018.

Name & Signature of the Guide Name & Signature of HOD

Table of Contents
Executive Summary ..................................................................................................................... 1

Introduction ................................................................................................................................... 2

Proposed System .......................................................................................................................... 3


Architecture................................................................................................................................. 3
Parts of the system...................................................................................................................... 3
User .......................................................................................................................................... 3
Authentication Server(AS) ....................................................................................................... 4
Arbitration Server(AR) ............................................................................................................. 4
Blockchain system ................................................................................................................... 4
Processes in the system ............................................................................................................... 4
Registering to vote ................................................................................................................... 4
Voting ....................................................................................................................................... 5
Verifying the vote ....................................................................................................................... 6
Counting votes ......................................................................................................................... 6
Recounting the cotes ................................................................................................................ 6
Economic advantages of the system ........................................................................................... 7
Cost of current voting system .....................................................................................................7
Cost of proposed system ..............................................................................................................7
Cost benefit analysis ....................................................................................................................7
Social benefits ............................................................................................................................. 9
Disadvantages……………………………………………………………………………………10
Conclusion ................................................................................................................................... 13
1

Executive Summary
Large sections of society today do not trust their government [1]. This makes the election a very
important event in a modern democracy. The issue with the current ballot system is that it can be
easily manipulated by power hungry organizations [2]. The proposed system looks to eliminate
the aspect of trust from an election to make it more secure and transparent.
The system uses existing technology such as a client server architecture integrated with a
blockchain system to ensure aspects such as transparency, security and auditability are achieved
without sacrificing privacy for voters. The cost of building the system is substantially less as
compared to the cost of running a ballot based system. There are substantial social benefits to
using the system as well such an easier and quicker voting process which will lead to higher
voter turnout. This system can be implemented for a larger number of countries as the internet
penetration in the world increases. We might definitely see a future where every country has
implemented a system similar to ours.
2

Introduction
In today’s world, widespread mistrust towards the government and interference in countries’
processes by external actors have made the democratic process of voting more critical than
ever. Democratic countries have been experiencing dictatorial regimes which have introduced
widespread terror among their people. People have had their human rights violated and their
fundamental freedoms provided by their constitution taken away. In such an atmosphere,
having a fair and transparent election is something that is paramount for the freedom most
people enjoy today.

The pitfalls of the current system of ballot voting are being taken advantage of by people or
organizations looking to gain power. In the African countries of Uganda and Kenya there has
been widespread controversy over their elections in recent years. The election of 1946 in
Romania was heavily rigged. The communists took over Romania and abolished the multi-party
system to gain complete control of the country [2].

These instances of controversial elections could all have been avoided if the counting process
was fair, transparent and verifiable. The current ballot system does offer anonymity to the voter
but the counting process is not transparent. People are supposed to trust the result which is
provided by an Election commission or a government body. This makes the process of counting,
a major vulnerability in the current process. There are also other major electoral scams such as
voter fraud, ballot stuffing and booth capturing. All these make it very difficult for organizers of
an election to distinguish between the actual votes and votes added without authorization.

The system that is being proposed solves most of the issues mentioned above and can be
implemented in the current world environment
3

TECHNOLOGY USED

1. BLOCK CHAIN:

Blockchain is a technology the underpins digital currency


(bitcoin,litecoin,ethereum,and the like).the tech allows digital information tobe
distributed,but not copied .

Fig:Working of blockchain
4

DETAILED DESCRIPTION OF TECHNOLOGY USED

BLOCKCHAIN :
“Blockchain” tech primarily solves the problem of trust on the Internet, which is particularly
important in the entertainment industry. Blockchain can bring back an element of transparency to
the industry, by allowing people to see in an open and public way where the money is coming
from and where it’s going.

“Right now there’s a lot of muddied-up payment channels between artists, content distributors
and audiences. I think it would incentivize a lot more filmmakers if they see where the money is
going and who’s getting what kind of cut. It’ll eliminate a lot of the middlemen who take a share
of the profit and strangle the product.”

“There are so many things in Hollywood that are old. Hollywood economics are deliberately
opaque. So the notion of putting those on the (block)chain and having a transparent ledger where
the economics are available, right there that’s super interesting. It also has interesting
implications in terms of piracy.

In terms of payout, that will take a while. But being able to compensate in models other than
traditional deficit financing is interesting. Now, talent gets the data back that they get back,
which may not be much. If you actually put that information on the chain, then it becomes
transparent. And then it becomes more efficient.”

3) Regulators are circling the industry. So are major financial institutions. Both will stabilize the
investing climate, and change it, probably dramatically. But because of those shifts, now might
be a good time to invest.

Binning
5

To avoid creating problems with securities regulators, StreamSpace is using blockchain


technologies under the crowd-equity fundraising rules of Reg. A+ of the Jobs Act of 2012. Their
blockchain-based system tracks film investor ownership and payouts

“We’re tokenizing film assets, so investors can take part in crowdfunding and crowd equity in
indie films. It’s essentially an ICO for each film, but it’s all tied together in a single platform.
People can invest in the film, and share in the profits.”

The regulatory climate is different in different countries, and accordingly, so is the investment
climate from country to country. Europe has been a really fertile ground for this, but his
company also has seen a tremendous amount of investment from Asian sources.

“We’re finding in Asia a tremendous appetite for blockchain and cryptocurrency, and also a
tremendous appetite for media companies, which is good for this town (Hollywood).”

4) Know what you’re buying into. Cryptocurrencies have made the most noise, but many
blockchain companies are issuing utility or even security tokens as part of their services. Many
are built on the Ethereum protocol (ERC20) and its smart-contract capabilities. And key issues
like latency, security and how transactions are validated across a network are vital to overall
operations.

“A utility token is something that gives you an asset to get a specific thing, like a ticket to
Disneyland. You don’t buy the token hoping it’ll appreciate. You do it to get something. If
something appreciates, that’s a rough description of a security.”

Lerner

“Do your due diligence, Understand their business model, and the token they’re trying to create,
and whether it aligns with what you’re interested in investing in. The big advice is only put the
money in that you can afford to lose. When I started getting into this sector, my husband was a
total skeptic but he also does Daily Fantasy (Sports). I said okay, what are you allocating to
Daily Fantasy? That’s what I’m allocating here. That’s a fun way to do it. I have fun trading
coins, buying some stuff, but it’s all money we can afford to lose.”
6

How does it work?


Imagine having a ledger book and inputting all relevant data about a purchase .Instead of
sliding that ledger onto your bookshelf .You make it public and give at tiny piece of it ton
hundreds of others .The ledger can be seen as a data ,but it is secure due to its advanced
encryption .Block chain is that distributed ledger ,and it is not housed on one serve .No one can
person or one server contains it .It is fundamentally decentralized.

Let’s say you want to buy a new track from your favourite band .You’d buy the digital
file online using your visa card .Visa would store that transaction ,and the place you are
purchasing the music from would store it .It would then be housed in two locations .On a block
chain ,the transactional information doesn’t live in only two locations ,it lives in hundreds
,thousands .or even millions of places-living on the peer-to-peer computers running the block
chain encryption .A block chain system replaces human guesswork and vulnerability of digital
transactions with algorithms and advanced cryptography .It’s harder to hack .It’s a whole new
way of thinking and a brand new method for securing digital information.

A brief uses of block chain or applications of block chain are :Block chain creates
a permanent record of digital transactions ;it stays secure because the data is verified and
encrypted .Block chain operates on a decentralized peer-to-peer network ,and its model is
scalable .The block chain’s digital ledger can be viewed and distributed ,but it cannot be altered .

Other use cases for the digital ledger include block chain –enabled voting
machines ,online music payments ,asset transfer and cloud storage.

The reason we see it at a scale in the financial sector ,supporting online banking
and accounting ,is because “block chain is good at digital verification ,”
7

Proposed System

The proposed system involves a client server architecture integrated with a block chain system.
The minimum requirements needed by a voter is a smartphone or a computer with a webcam
and an internet connection. If these are not met alternate arrangements such as pop up cyber
cafes and computers at public buildings must provide access to disadvantaged voters.

Architecture
Shown below is the network architecture of the proposed system.

Figure 1: Network architecture of proposed system

The above diagram shows how the user interacts with the different parts of the system. The
system will be explained in two parts – explaining the functionality of each part and the
processes associated with the system.
8

Parts of the system


There are four main parts to the system. Each of them will be explained in detail below.

User
The user must have a smartphone, laptop or any device with a browser and a front facing
camera. The user must also have an internet connection to register and vote as well.
If the user does not have a computer or an internet connection, he/she could go to a public
building such as a library or a school which does have computers to register to vote. These could
be kept open all day during voting registration and voting days to ensure people with low
sources of income do not get left out.

Authentication Server(AS)
The Authentication Server is a traditional centralized web server. It has a backend database
connected to it which has the information of all the citizens in the country. This system is used
by people to register to vote for their elections. People create login accounts when they register.
It also creates accounts on the blockchain system for the users when they vote. The blockchain
account is used by the Arbitration Server to vote for a candidate of the users’ choice.
The AS also authenticates the token provided to the Authorization Server by the user while
voting.

Arbitration Server(AR)
The Arbitration Server acts as an intermediary between a user and the Blockchain voting
system. It verifies the user while voting using the Authentication Server. The AR is a
blockchain thin client that sends the users’ vote to a blockchain node [3]. It also sends the user
the key to encrypt their vote. The AR sends the users’ vote to the appropriate node to be added
to the blockchain. The user can verify their vote using the AR as an intermediary.

Blockchain system
The blockchain system is the system on which the actual voting takes place. The users’ vote is
sent to the one of the nodes on the system depending on the load on each node. The node then
adds the transaction to the blockchain depending on the smart contracts that exist on each
node. The smart contracts are the rules that the nodes follow to not only verify but also add the
vote in the system. Each node follows the smart contract to verify the vote. The blockchain is a
private system and is not accessible to the public directly. The system will currently have node
server in each state to ensure a distributed network traffic on the system. The
9

Processes in the system


The process of voting has two steps in the old process, i.e. registering to vote and the process of
voting itself. The proposed system will have an extra step, i.e. the ability for the user to verify
their vote. This is an important step where the user can get a confirmation of their vote. The
other steps include counting the votes by the organizer and recounting in case of any
discrepancies.

Registering to vote
The process of registering to vote begins with the user interacting with the Authentication Server via
a website. The AS contains information about voters in a database. The user enters his/her
Personally Identifiable Information(PII) and scans supporting documentation to upload into the
system along with an email address. The users’ picture is also taken for verification. If the
information is verified and is correct, the user is allowed to create an account. The user enters a
username of their choice and a password to log in. This information is stored separately and not
linked to the users’ PII. This ensures privacy and anonymity while voting. Also an entry is made
next to the users’ database entry storing whether he/she has registered to vote. If the users’
information cannot be verified, he/she is not allowed to create an account.

All the information between the user and the AS is sent using TLS v1.2 protocol to ensure it is
all secure. The code for registration process is placed in Appendix B and Appendix C of this
document.

Voting
The process of voting is a multi-step process. It involves verifying your identity with the AS
and then voting using the AR. On the day of voting each candidate is given an account on the
blockchain system so they can get votes. There is also a “Abstain account” for abstained votes
to be sent to.

During voting day, the user logs in to the authentication server using the username and
password created in the previous step. An image of the user is taken to ensure that the user is
the owner of the account. This image is compared with the image taken during registration.

A small video of the user is taken before they log in and is sent to the Authentication Server.
Using the Affectiva API the AS can identify user emotions based on machine learning
technology [4]. If the system detects fear, the users’ session is stopped and told to retry after 5
minutes. While logging in for the second time if the system detects fear again, the user must go
to their local polling center such as a library to vote. This system would reduce the impact of the
issue related to voting under duress.

Once the user logs in, their system would create a public key which they would send to the
Authentication Server. The AS would add associate the key with the username. The key would
be used to create an account for the user on the blockchain system to vote. A specific amount
of ether (currency the user can use to vote) is added to the users’ account which enables them
10

to vote.

The AS would then send a session token back to the user.


The user would be redirected to the AR. The user would provide the AR with the session token,
would verify it with AS. The verification and generation of token between the AR, user and AS
is done using the Modified Needham-Schroeder protocol. This protects the system from
impersonation and man in the middle attacks.

The AR would send a verification message to the user along with the public key of
the blockchain node to which his/her vote would be sent.
The user would encrypt their vote with the public key and send it to AR. This would ensure that
the AR cannot read the users’ vote and hence the vote would remain a secret. The AR would
send the encrypted vote to the appropriate node. The node would decrypt the message with their
private key and send a specific amount of ether from the users’ account to the candidates’ (or to
the Abstain account if they would like to forfeit their vote) blockchain account. Each node
would verify the transaction according to the smart contracts . These contracts would verify a
particular transaction was a duplicate one or no and check its validity. After this process the
node would pass this transaction to other nodes in the blockchain system.
The code for the smart contracts used in the Blockchain system is placed in Appendix A.
11

Verifying the vote


The process of verifying the vote depends on the type of election it is. Some elections allow for
interim results and some do not. In either case the voter must get a confirmation that his/her
transaction has been approved by the blockchain system.
In case of the election that allows interim results, one of the nodes of the blockchain could be
made publicly accessible. It would have a website similar to https://blockchain.info where a
user could enter their public key to verify whether their vote was counted. This node would not
have the ability to add any transactions to the system. This will be implemented through smart
contracts. It will only be a reader of the transactions. This will reduce the attack surface of the
system.

If the organizers of an election want to keep the interim results a secret, he/she could only get a
binary verification via the AR. Since the AR is a thin client it would act as an intermediary to
verify the transaction [3]. At the end of the election in above case, the user will be able to check
the result for the election.

Counting votes
The process of counting votes of a candidate can be very simple. Each voter has a fixed amount
of ether or currency value that they use to vote for a candidate of their choice. The candidate
with the highest amount of ether in their account wins the election.
For users who abstained from voting, their ether will be sent to an Abstain Account. This
ensures their vote does not get misused.

Recounting the cotes


There are instances of disputes in the results of an election. These can be resolved in the
proposed system easily.
The entire tree associated with a single account root can be made public for people to verify if their
vote has been tallied or no [5]. This makes the system transparent for users. Since no one knows
which user is associated with which account, it protects the users’ anonymity in voting.
The public keys for each transaction in the blockchain system can be mapped to accounts in the
AS. The list of public keys generated gives the list of people who voted. By mapping this list
with the public keys associated with each transaction, the election can be verified.
12

OUTCOMES

Block chain voting open source would be same as the stakeholders in the
conventional method of voting. This revolutionary change can encourage a lot of
people of a vote. Anyone who as an internet connection and is an adult which
means they have the right to vote is eligible to a part of this process of blockchain
voting.

The use of this technology from a voters point of view is very simple. Anyone
with a phone and internet access will easily be able to understand the specifications
of the platform. The citizens who are voting dont have to wait in long lines and
dont have to travel a lot to go and vote.
This quick and hassle-free method of voting will engage more and more people to
particpate in the voting process and be a part of of a more democratic world. This is
definetly a cheaper and simpler method of conducting elections.

As soon as various governments realize the importance of introducing this


technology into their political environment,the better it will for nations to have easy
and fair elections
13

Economic advantages of the system

Cost benefit analysis of proposed system


Cost of labor per person = $80/hour
Requirement of 25 people over 12 months to build and test the system
One time Cost to customer = $4,000,000
Cost of hardware and maintenance for 1st election = $100,000,000 for a voter base of 100
million (based on EC2 calculator)
(Includes data center costs, network equipment and bandwidth)
For subsequent election cycles cost = $50,000,000
Cost of running a ballot based election = $2 per person [6]
= $200,000,000 for 100 million voters

The cost of running the election for the 1st year using proposed system = $104,000,000

Cost for a country


14

Figure 2: Graph of phone and internet penetration of a country

The graph above shows the internet and smartphone penetration in a country. These are
the two minimum requirements of a user to vote. The internet penetration is given a higher
importance since people can still go to government building such as libraries to vote.

The system requires internet penetration of a country to be greater than or equals to 90%
to make this project feasible.

Anything below that will require the government to invest into too much infrastructure to
set up an internet connection for users. These are current statistics of countries in the
world. Large number or people in the world are gaining access to the internet every day.
As this number grows the proposed system will become feasible for many more countries
in the world than it is now.
15

Social benefits
The system of remote blockchain voting will impact society in a very positive way.
The system will increase convenience for voters [7].
It will make it very easy for people with disabilities or who have trouble moving around
to vote.
It is very quick and private way to vote [8].
This will increase the number of voters since the process does not take up too much of
their time of the day.
It will help increase the trust of the people in the government since it is more transparent
than the current ballot system.
The system is better for the environment as compared to the paper voting system.
It eliminates the need for paper voting and the carbon emitted by the logistics of those
ballots.

Hence this system has a much smaller carbon footprint.


16

DISADVANTAGES OF BLOCK CHAIN

There are landmines and violent convulsions in the journey towards maturity of any foundational
technology.

Some do believe Blockchain is overhyped, over-celebrated. Our point of view on this is that this is how
any technology grows towards mainstream adoption. You will hear a lot of positives and you will hear a
lot of negatives.

Having said that, there are a few very real challenges that Blockchain as a technology will need to
overcome.

Complexity

Blockchain technology is not fit for mainstream yet. With terms like SHA-256, Proof of Work, Proof of
Stake, Nonce dominating the vocabulary, it needs to go through the process that the internet did. You are
comfortable using the internet without really concerning yourself with TCP/IP, HTTPS, switches etc.

While Blockchain has made cryptography more mainstream, glossaries and a drastic simplification of the
jargon will definitely help.

Network size

Blockchains are only as strong as the network size. The larger the network, the more secure and anti-
fragile they become. Needless to say, it calls for a large network of users, however.

This becomes a huge topic for discussion especially in the case of private networks. By virtue of being
controlled by a private entity or a group of private entities, it may have fewer independent nodes. Is it
even Blockchain then?
17

Transaction costs, network speed

Enough has been written and said about the high transaction costs on the Bitcoin network. Bitcoin started
out as a democratic, near-free means of exchanging value for the world’s population. Ironically, its own
success now stands I the path of its success. With its increased adoption, network congestions and high
transaction costs have become an unnecessary reality.

Other Blockchains like Litecoin, Dash etc. are trying to tackle the problem of network congestion heads
on- the jury is still out though.

Then, there is the problem of the size of the Blockchain. A full node on the Bitcoin Blockchain stores the
complete Blockchain ledger locally. The size of the Blockchain becomes a problem because the full node
will have to store all the transactions that have ever happened on the Blockchain.

Human error

Blockchain can be thought of as ‘garbage in, garbage out’. The data going on the Blockchain is
immutable, permanent. If the data stored on the Blockchain is inherently untrustworthy or inaccurate or
riddled with errors, there is very little Blockchain can do about it other than holding the garbage
unchanged forever.

Unavoidable security flaw

The ‘51% Attack’ is a security issue that was mentioned by Satoshi Nakamoto in the very first Bitcoin
white paper published in 2008. If more than half the nodes on a Blockchain network collude to edit,
change or remove a data already recorded on the Blockchain it can be done.

Bitcoin mining pools have been growing in size and influence over the last few years- the possibility of a
few pools colluding to control 51% of the nodes in the entire network is not imminent right now, but
definitely not unimaginable.
18

Politics

Where there is a democracy, there is politics. Blockchain networks tend to be governed by developer
communities following their own written and unwritten rules or a ‘constitution’ if I may. Several
Blockchains do not have the typical corporate governance structure.

It leads to debates and disagreements, sometimes heated and very public, even spilling onto Reddit
threads and Twitter timelines. Think of it as a bad thing for the inherent showboating involved. Think of
it as a good thing in the interest of transparency!
19

Conclusion
The current ballot system is shown to have large number of issues which can lead to widespread
political unrest in a country. It is vital for a democracy to have a transparent voting system that
must have the least number of obstacles for a voter to vote. The proposed system not only
handles voter privacy and auditability but also provides a transparent system for verification of
the election. The proposed system is shown to be highly cost efficient as compared to other
countries and can be implemented with existing infrastructure owned by a nation. Keeping all
these factors in mind the proposed system is a comprehensive solution that satisfies all the
requirements requested by the client.
20

Bibliography

[1] Gallup, "Trust in Government," Gallup, 30 September 2015. [Online]. Available:


http://www.gallup.com/poll/5392/trust-government.aspx. [Accessed 28 Septmeber
2016].
[2] Wikipedia, "List of controversial elections," 20 September 2016. [Online]. Available:
https://en.wikipedia.org/wiki/List_of_controversial_elections. [Accessed 27 September
2016].
[3] R. Skudnov, "Bitcoin Clients," Turku University of Applied Sciences, Turku, 2012.
[4] Affectiva, "Affective Product Overview," 15 January 2016. [Online]. Available:
http://www.affectiva.com/wp-content/uploads/2014/11/AffectivaProductOverview.pdf.
[Accessed 28 September 2016].
[5] P. Noizat, "Blockchain Electronic Vote," in handbook of digital Currency, Paris, Elsevier
Inc., 2015, pp. 453-461.
[6] The electoral knowledge network, "Cost of Registration and Elections," ACE Project, 15
Jan 2016. [Online]. Available: http://aceproject.org/ace-en/focus/core/crb/crb03. [Accessed
28 September 2016].
[7] N. Uribe, "10 Benefits of Electronic Voting," 01 August 2016. [Online]. Available:
http://www.fobsoftware.com/blog/10-benefits-of-electronic-voting-for-home-owner-
associations. [Accessed 28 September 2016].
[8] G. Schryen, "Security Aspects of Internet Voting," in IEEE, Hawaii, 2004.
[9] Wikipedia, "List of countries by number of Internet users," 23 September 2016. [Online].
Available: https://en.wikipedia.org/wiki/List_of_countries_by_number_of_Internet_users.
[Accessed 29 September 2016].
[10 Wikipedia, "List of countries by smartphone penetration," 18 September 2016. [Online].
] Available:
https://en.wikipedia.org/wiki/List_of_countries_by_smartphone_penetration#2016_ranki
ngs. [Accessed 29 September 2016].
21