Skip to content

Bachelor's Thesis - Implementation of an e-voting system based on blockchain technology

Notifications You must be signed in to change notification settings

andrzejwl/evoting

Repository files navigation

E-Voting

Bachelor's Thesis - Implementation of an e-voting system based on blockchain technology

Architecture

The system consists of the following components:

  • User Interface (included in a separate repository) - enables the end users to submit new votes and verify the existing ones.
  • Blockchain - all blockchain nodes.
  • Blockchain Connector - a broker which enables communication between the web application and the blockchain.
  • Node Registry - contains information about the blockchain network.

System Overview

Practical Byzantine Fault Tolerance (PBFT)

The running system is using the PBFT consensus mechanism. It works according to the following scheme:

pbft

Implementation Overview

The key logic revolves around the following classes (i.e. Golang structs):

class diagrams (1)

Vote Casting and Verification

The vote casting procedure uses the system in the following manner:

vote casting upscaled

After a user successfully casts a vote, a UUID token is returned. The token is bound to the corresponding user's vote (to avoid disclosing information such as the relation between particular users and votes). The tokens allow users to verify if their vote was submitted correctly and whether it has not been altered after the submission. The verification procedure is presented graphically below:

vote verification upscaled (1)

About

Bachelor's Thesis - Implementation of an e-voting system based on blockchain technology

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages