What It Does

Our web app consists of a user-friendly voting system that uses a blockchain to achieve decentralized, anonymous and verifiable voting. The blockchain consists of secure and untraceable user identification to prevent double voting and maintain anonymity as well as votes stored with partial homomorphic encryption. Users can view and verify the blockchain or the numerical results at any time, maintaining a zero-trust system.

How We Built It

Our front-end was built on React, maintaining a simple and user-friendly interface to highlight our central concept. Our back end was built with Python, exposing an API with Flask.

Challenges We Ran Into

The concept of a blockchain was not very familiar to most of us, with our knowledge mostly ending at some degree of cryptography. To achieve this project, we had to do extensive research into this area and figure out a way to have the system be both anonymous and still have a degree of user authentication to prevent abuse. This is traditionally maintained by having a trusted party to maintain this, but our zero-trust online system was more challenging to achieve this in.

Accomplishments That We're Proud of

We're proud that we have a working and integrated system where all of our goals for this system are achieved and clearly demonstrated.

What We Learned

We learned a great deal about many areas of technology including cryptography, and we learned about overcoming CORS limitations.

What's Next For CDE

CDE or any similar systems have significant potential to be used in settings where such a system is especially important, such as anonymous organizations or real elections. For our project, we would expand our authentication to support ID-based authentication such as SingPass for such uses apart from just using IP addresses.

Built With

Share this project:

Updates