Skip to content

A blockchain-based remote electronic voting system with unconditional privacy.

License

Notifications You must be signed in to change notification settings

csmuller/up-voting-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UP Voting System

This is a blockchain-based implementation of the voting protocol proposed in the paper "Verifiable internet elections with everlasting privacy and minimal trust" by Philipp Locher and Rolf Haenni. The acronym UP stands for Unconditional Privacy, a property this protocol has besides individual and universal verifiability.

An important component of the prototype is the Public Bulletin Board (PBB) where all election relevant data is stored. It blockchain-based and implemented with Tendermint and Cosmos-SDK to satisfy the protocol's minimal trust assumptions.

Three Zero-knowledge Proofs are at the heart of the unconditional privacy property and are also part of this implementation. They were originally implemented in the UniCrypt library which served as a template.

Build

Requires Go 1.13.0+.

Make sure that your GOPATH is set and GOPATH/bin is in your PATH. This project makes use of go modules.

Clone the repository:

mkdir -p $GOPATH/src/github.com/csmuller
cd $GOPATH/src/github.com/csmuller
git clone https://github.com/csmuller/up-voting-system.git
cd up-voting-system

Install the PBB, voter client and administration client applications by using the included Makefile This installs the binaries into $GOPATH/bin or $GOBIN if set.

make install

Run

Now you should be able to run the following commands:

pbbd help
vcli help
acli help

About

A blockchain-based remote electronic voting system with unconditional privacy.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published