← Back to home

Quadratic Voting with World ID

Chain agnostic onchain quadratic voting, enforced by zero knowledge proofs

Screenshots

Quadratic Voting with World ID screenshot 1
Quadratic Voting with World ID screenshot 2
Quadratic Voting with World ID screenshot 3
Quadratic Voting with World ID screenshot 4
Quadratic Voting with World ID screenshot 5
Quadratic Voting with World ID screenshot 6

Problem Statement

Our project allows for quadratic voting in any DAO governance or poll. Quadratic voting means a voter’s voting power increases proportionately to the root of their token balance. For example, VoterA with 1 token has 1 vote, VoterB with 2 tokens has 1 vote, VoterC with 4 tokens has 2 votes (4 = 2^2), Voter D with 100 tokens has 10 votes. This prevents something like Solend’s ridiculous vote patterns where a single whale has more voting power than all the other voters combined (one dollar one vote). Quadratic voting is also better than one person one vote, because those who value the vote more should be given more influence than someone who doesn’t care. Our quadratic can be deployed on any evm for now, and can be easily ported to non-evm chains as well. Quadratic voting system levels the DAO playing field, making sure the true will of the democratic majority is not overwhelmed by a few whales.

Solution

Our quadratic voting is implemented onchain on smart contracts. We found that looping through all the square numbers can get extremely costly in terms of gas. Surprisingly, the cheaper way was to have a series of if-else conditions with a cap on voting power. We deployed on Polygon and Optimism to test it across different chains, and also for the lower gas fees. To prevent Sybil attacks (a single person voting from multiple smaller wallets), we want to ensure that votes are linked to actual humans, not just addresses. With World ID providing ZK proofs of unique humanness, we can enforce this.

Hackathon

ETHNewYork 2022

2022

Contributors