Inspiration

As technology is getting included in every area of our society, it's no secret that very soon we'd have to move away from paper ballots and employ the use of an electronic system. We need to have a proper system in place to make sure that when we make this switch the integrity of our election remains valid. A free and fair election is something every country should have and this is what inspired me to think up of this idea.

What it does

Vote Chain is a voting system that ensures the integrity of elections through blockchain and cryptographic methods. It ensures: 1) Every voter is valid and eligible 2) Every voter can only vote once 3) Once a vote is casted it is impossible for it to be changed 4) Even if the details of a voter are known(name, id number e.t.c), It is impossible for an adversary/hacker to impersonate and vote on behalf of that voter 5) Makes sure each vote is validated using a proof of work before entering it into the blockchain 6) The whole system is also zero-knowledge proof, so nobody can know who a particular voter voted for.

How we built it

1) Created a blockchain system where each block represented a vote 2) Created a system of voter registration where each voter registers with their name and a unique id number(In the case of a student election that could be their matriculation number, In the case of Nigerian election it could be their NIN e.t.c) 3) When a voter registers, he/she is given a key that can only be used to vote once and can't be forged. 4)Created a system that generated the voter's key by the cryptographic hashing of the the name, id, exact timestamp(to the second) when the person registered and a nonce value(which is a random number that is generated from 1 to a million. Using this system even if a hacker knows a persons name and id, It is still impossible to generate that persons key even while using the same cryptographic hash function.

Challenges we ran into

1) There is no way I could verify the information provided for voter registration because I don't have a database that contains the data of the people registering.

Accomplishments that we're proud of

I was still able to build a voting system that was fraud proof even though it was on a small scale.

What we learned

1) Through this project, I got to learn how blockchain really works 2) I also learned a lot about cryptography and added some knowledge on OOP

What's next for Vote Chain

I would probably create a front-end for the whole thing and deploy it. Make it a platform where people can run elections on.

Built With

Share this project:

Updates