Election process using Blockchain technology
Published: 2023-09-27 07:51:36

# Introduction
Traditional voting systems have failed us a numerous of times in the past. Today we don’t need to make the same mistakes again, trusting in hand-counted results or waiting for days having people spend their time on work a computer could do.  
Today we have technology that could solve most of these challenges. In Germany we have digital chips in our personal identity cards for a couple of years. Using those chips one could attempt to facilitate a vote securely for each citizen and store the record on a trusted ledger.

# How it works
The citizen has two options to vote. He can use the native desktop app with an addon or he can use the mobile app. Both applications do connect to the National voting website to authenticate the user, and assess the vote.

The National voting website will forward the authenticated request to the Back office component, that will map any ID card identity to a blockchain identity. Blockchain identities are unique, similar to ID card identities.

From the back office component all votes are written to the blockchain designated to contain the voting data. Each citizen is presented with the option to verify any vote himself with limited visibility. Each person's private details are protected, and cannot be accessed without proper permission. All votes written to the blockchain will be encrypted before they are written to the blockchain. Encryption is facilitated so only the government has visibility into the data.

The blockchain ensures any data written to the blockchain cannot be alternated nor deleted. It only allows to add new votes. By identifying each unique user, first time of vote, and voting data the integrity of the overall voting process can be assured.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7q1gjx59vukmy3a1x6wl.png)


# References
1. [Desktop — AusweisApp2 SDK 1.22.6 documentation (bund.de)](https://www.ausweisapp.bund.de/sdk/desktop.html) [↩](https://github.com/renezander030/blockvote#user-content-fnref-1-328a92f30dee4a5d0665b79d0c2bf052)
2. [Encrypting data with a public key in Node.js - Stack Overflow](https://stackoverflow.com/questions/8750780/encrypting-data-with-a-public-key-in-node-js) [↩](https://github.com/renezander030/blockvote#user-content-fnref-2-328a92f30dee4a5d0665b79d0c2bf052)
3. [https://docs.waves.tech/en/building-apps/smart-contracts/writing-dapps](https://docs.waves.tech/en/building-apps/smart-contracts/writing-dapps) [↩](https://github.com/renezander030/blockvote#user-content-fnref-3-328a92f30dee4a5d0665b79d0c2bf052)
4. [Simple voting on the Waves blockchain | Waves documentation](https://docs.waves.tech/en/building-apps/smart-contracts/simple-voting-on-the-waves-blockchain#_5-voting) [↩](https://github.com/renezander030/blockvote#user-content-fnref-4-328a92f30dee4a5d0665b79d0c2bf052)
5. [GitHub - elenaili/waves8ball](https://github.com/elenaili/waves8ball) [↩](https://github.com/renezander030/blockvote#user-content-fnref-5-328a92f30dee4a5d0665b79d0c2bf052)
6. GitHub repository [renezander030/blockvote: Election Process using Blockchain Technology (github.com)](https://github.com/renezander030/blockvote)