Inspiration

The inspiration from this project comes from the desire to see technology fix the shortcomings of todays in person voting. Long wait times, lengthy verification processes and more can be addressed with a move to digital voting, and all without compromising security!

What it does

vote.io is unique as our system goes through multiple steps to secure elections as well as make them more coinvent. To get started, a state or jurisdiction will provide vote.io with a 2x hashed list of social security numbers of registered voters. These numbers are irreversible due to the nature of one way hash functions and can never be converted back into their original form. the user when creating their account will then be prompted for their SSN. this is double hashed on their system before it ever touches the internet.

For a second layer of security, behind the scenes, the users computer generates an RSA public and private key. the public key is stored on the users computer and the public key is sent to our server.

whenever a vote is cast before it can be counted, the user cryptographically signs the vote with their private key, this is then verified with their public key on the server thus ensuring any vote from an account physically originated from the computer the account was created on.

Votes are then tallied as normal and can then decide outcomes of elections

How we built it

  • nodejs/express
  • cockroachdb/postgres
  • Reactjs
  • material UI framework

Challenges we ran into

writing the code to do cryptographic signing in the browser and cryptographic verification on the server was definitely the hardest challenge

Accomplishments that we're proud of

working incredibly well and fast as a team, and concurrently developing the client and server side of the application without any major slowdowns

What we learned

  • the browser supports many super cool libraries out of the box without having to install 3rd party libraries

What's next for vote.io

  • continued development of the UI and additional endpoints on the server is what we have our mind on next

Built With

Share this project:

Updates