Search projects, hackathons, sponsors and tech

    ← All projects

    Votium

    ZK Snark-based voting framework => allowing anyone to vote anonymously over a public blockchain.

    Demo

    About

    The problem it solves Voting on public chains like Ethereum comes with the problem of anonymity. Wallet Addresses are prone to chain analysis at the same time some voting motions are only possible if the public address of the person is linked with a real-world Identity, one example being the public election of local leaders, filling out employee feedback. In that case, all this data is public! { everyone can know u hate that project manager XD } The problem statement requires the following to exist: - Voters are able to cast votes without revealing their identity on a public blockchain. - Smart contracts are able to find whether a vote is legit/authorized without needing any public blockchain identity, like ens, public addresses, etc. Votium provides a framework { zKCircuits + Smart Contracts } for developers to make anonymous voting Dapps. They can use it to create a motion, add voters that are authorized to vote, and at the same time verify ZK-snark proofs of votes. Users submit proof that they are eligible to vote { the proof doesn't have their credentials } while the smart contract can verify whether it is coming from a legit voter or not. Allowing users to vote anonymously on a public chain. Hashing of public credentials along with proof is used to stop someone from double voting. Votium can enable a completely new set of applications to exit on public blockchains like public elections, employee feedback, and DAOs that require the real-world identity of members. Votium being a framework allows people to extend it and build on top of it without needing to deal with the low-level primitives that come with dealing with ZK technology. The following notion [link](https://statuesque-belief-1c1.notion.site/Votium-ZK-Snark-Based-Voting-44a1b2caa256435d98085cd32d0b01f3) discusses Votium in greater detail.

    How it's made

    Challenges we ran into The main challenge faced during this challenge was making private keys work with ZK-Snarks, ZK-snarks work on finite fields, the private key was lying outside the field initially, and hence to derive the private key, firstly it had to be bought into the finite field that took quite some effort to figure out. It needed hours of reading articles over the internet to figure how to pull this off and now Votium works with Ethereum private keys :)