Trust issues in current elections at various levels, motivated us to build a voting solution on the Ethereum blockchain.

What it does

Allows secure, transparent and anonymous voting. It also allows voters to verify whether their votes were counted or not. The vote calculation speed is also quite fast facilitating quick results

How I built it

By writing and deploying smart contracts in Solidity. For the hackathon version, we had spinned up our own django servers to play with the vote data. The front-end is curated in Angular.

Challenges I ran into

Ensuring the anonymity of the voter was probably the toughest challenge we ran into. The vote had to be casted via the blockchain, but still the ETH-address which is voting, should not be made public. Also simulating the django servers as oracles was another challenge we faced.

Accomplishments that I'm proud of

Implementing the voter-anonymity feature using sophisticated cryptography. Effective use of simple cryptographic techniques like hashing and encryption allowed us to ensure the security, transparency and voter-anonymity, all at the same time. The front-end also looks decent enough for a POC.

What I learned

We don't always need to use buzzword cryptographic techniques like zero-knowledge, bullet-proofs, commitments to get your task done, when we are very clear with the use cases of simpler techniques like hashing and encryption.

What's next for Excalibur-voting

We are looking forward to do small pilots for elections at district levels. If the responses are good enough, we would love to have it implemented for elections taking place at corporate-levels, state-levels and country-levels.

Built With

Share this project: