Skip to content
zkVoting

zkVoting

zkVoting system is an election system that use zero-knowledge proofs.

Created on 12th November 2023

•

zkVoting

zkVoting

zkVoting system is an election system that use zero-knowledge proofs.

The problem zkVoting solves

Problems Solved

  • Vote Privacy: Protects the secrecy of the ballot, ensuring that no entity can trace the vote back to the voter.
  • Vote Manipulation: Mitigates the risk of vote manipulation by ensuring that the vote submitted is the vote recorded.
  • Accessibility: Offers a lightweight blockchain solution that doesn't require heavy computational resources.
  • Trust: Builds trust in the electoral system through cryptographic proofs that ensure vote integrity and verification without disclosure.
  • Scalability: Addresses the scalability issues commonly associated with blockchain technology, enabling the handling of large-scale elections.

Challenges we ran into

Learning Curve for o1js Library

As first-time users of the o1js library, we encountered a steep learning curve. The library is packed with advanced features tailored to the Mina blockchain, which required dedicated time to master. To overcome this, we:

  • Conducted internal workshops led by team members who first acquired expertise through documentation and practical experiments.
  • Reached out to the o1js community for guidance on best practices and troubleshooting advice.

Berkeley Blockchain Accuracy Issues

Our reliance on Berkeley's blockchain solutions was met with unexpected inaccuracies. It became evident that certain components did not perform as anticipated, affecting the accuracy of our voting system. To mitigate these issues, we:

  • Implemented rigorous testing phases to identify and document the inaccuracies.
  • Worked on alternative solutions while staying in communication with Berkeley's support team for patches and updates.

Recursive Proofs Complexity

Dealing with recursive proofs, a new addition to our cryptographic toolkit, was particularly challenging. Recursive proofs are crucial for ensuring scalability and privacy but understanding and implementing them was not straightforward. Our approach to resolving this involved:

  • Diving deep into academic papers and resources to better understand the theoretical framework.
  • Applying a hands-on learning approach by starting with simple proofs and gradually increasing complexity.

Managing Offchain Storage

Storing data off-chain presented significant difficulties, especially regarding syncing data back to the blockchain and ensuring consistency. Our steps towards a solution included:

  • Establishing a strict protocol for off-chain storage interaction.
  • Creating mock scenarios to test the reliability and consistency of our off-chain data before going live.

Tracks Applied (1)

O(1)Labs - ZK Voting

Our dApp uses o1js to implement key mechanics is full functional interact with the Berkeley test works accurately sati...Read More

O(1)Labs

Discussion

Builders also viewed

See more projects on Devfolio