So let's begin
Hello, fellow stranger! Welcome to the home page of our latest project. This project originated to compete in the yearly students hackaton HackTUES. So let's describe its basic goals and core functionalities.
The Problem
Each voting, election, poll and such can be altered with the standard ways they are realised. This is specifically true for elections of national scale where elections can be altered. The ability to share, express and get your opinion a proper feedback is a right that many don't have. And that is the goal we are aiming at.
The Solution
How 'ChaingeVote' solves this? Well, BLOCKCHAIN. What's blockchain? You should check this.
OK, now let's take a closer look at the specific solution we provide.
A Peer-to-peer network connecting stations which are used to vote. These votes are stored on blocks that are chained together. After filling a block, it gets broadcasted to the near stations which get the block and put it in their chains.
OK, but how do we know these blocks aren't corrupted? Well, to approach this problem we used a verification system based on complex cryptographic algorithms which provide unique digital signatures. Based on them it is made sure that no messages (votes) have been duplicated. Using TCP connection and additional checksums the blocks are authenticated.
This is short description of a complex system.
The advancement
- Full transparency
During the elections the votes are published to live user-friendly applications. Note: We do not gather ANY information about the individual. Nothing else but the message (vote) is exptected as an input from the person.
- Credibility
Establish a trustful system where no suspicious operations are included in the process ; i.e. justify the term 'full transparency' by verifying that the code we have open-sourced is the code actually running on the stations.
These are the most important things which should be included in another updated and expanded version of the current state of the system.
Soo, about ...
-
A: How do you suggest to implement the second point from the previous part?
B: An expansion to the system which provides live-calculated checksums of the code running on the micro-controller. They can be compared to the ones calculated from the open code repository.
==============================
-
A: How do you solve the problem with verifying blocks from the chain when the system is implemented on a small micro-controllers?
B: The common approach for block verification is using the proof-of-work algorithm. We howeever use proof-of-stake. A set of stations is chosen randomly. Each of them is asked whether they are busy w/ any jobs at the moment. If not they are assigned the task to calculate the block hash and thus verify it. With this solution stations without many jobs (such as in small towns compared to the big cities) do most of the mining and other provide and distribute the contents.
The prototype of Chaingedvote uses ESP32s to create a peer-to-peer network to host the blockchain. For outputing information the system uses OLED i2c displays and for input it simply uses 3 buttons.
Use different, more efficient hardware(RPi) or chain more less expensive parts together for larger processing power. Verification of the blocks can be faster with more cores.
Business enquiries
Contact info: > zaharymomchilov@gmail.com
Contact info: > kamenstefanov420@gmail.com
Contact info: > stefan.bosev1@gmail.com
Contact info: > kristoimenov@gmail.com