Votechain: a Blockchain-based E2E Voting API built with Socket.io and Express JS
Votechain is a Blockchain-based E2E voting API. It allows anyone to create transparent and safe elections that allow for easy vote recounting. Users are able to review votes on the browser and as a JSON file to enhance voter confidence and increase election transparency. The focus on vote recounting stems from the Blockchain Voting and its effects on Election Transparency and Voter Confidence paper I wrote, which was fundamental for the project I proposed as part of the Google Summer of Code 2017 program.
In Votechain everything happens in a few clicks. The app creates a distributed election in which all nodes validate new votes and keep a log of the voting record locally, so that if an intruder tries to take control of the network, the effort to do so will be at least computationally equal to the number of nodes originally connected to the network.It is important to say the focus of the project was to allow for easy vote recounting and transparency for all stakeholders, so I delimited the scope of the project to that. Therefore, I didn't worry about things such as voter identification since it was more important for me to deliver a JSON file that could be easily checked for duplicate votes, invalid votes and so on than to worry about all steps of a real-world election.The schematics of the architecture of the software is laid out in the following image:
Link to open source repository: https://github.com/teogenesmoura/votechain
Thank you for reading,
Teo