FairDAO is a zero-knowledge dApp that helps DAOs to make sure the voting process includes all groups and minorities and the outcome is not biased toward a specific group of the population while prevents double-voting.
This dApp will address important aspects of the web3 communities that build DAOs and aim to fund projects and public goods. This project ensures DAOs that the voters are the fair representatives of the population by keeping their sensitive group information private. It will also serve as a first stepping stone for an anti-collusion infrastructure that will not allow members to vote twice on a single proposal.
- This will be a first step stone to build an infrastructure that guarantees fairness and prevents bias in decisions while keeping privacy, such as race, skin color, religion, sexual orientation, country, location, health, language, etc.
- It helps DAOs to make sure no one casts twice for a single proposal.
To build this DAO tooling we request $15k/year stable basic income to develop, maintain, cover operation costs, and adopt with current DAO toolings. The milestones are described as detailed below:
- launching a feature-complete product on testnet
- forming a DAO with 5-out-of-9 multisig with our DAOs
- launching on our mainnet with audit
- attracting 1k daily active users (with launch video, full PR promotion)
- attracting 10k daily active users (with a detailed roadmap, governance process)
|Feature Improvement and Fixes
|Beta Testing and Fixes
|Smart contract audit
The app itself will need some work in terms of UI and UX, but I love that it’s planning to do multiple wallet compatibility! Voting yes from me as a governor.
yes vote from me too, as a zkDAO governor (funding pending milestone 1, testnet launch though).
Hamid, can you elaborate a bit more how you used Sparse Merkle Tree in this project too? at zkDAO we are particularly keen to support products which get out of the box a bit re: technical development. i’m curious to learn more
Fairness is a necessary quality of any voting process and this application is trying to ensure this quality is present in every poll. A strong yes from me as governor of zkDAO
Hamid, can you update to post a link to your testnet launch too, if it has just happened?
A yes vote from me as a zkDAO governor. Traditional methods are hard to mask the identity of populations of small sizes and zk tech has a lot of promises in this area.
Thanks for the feedback and your support for this project.
The sparse Merkle tree (SMT) all data points are indexed, and data points are added to the leaves (corresponding index). If the data is not in its index, we now have the non-inclusion proof (Data will be null) So, to insert any datapoint to the tree we need to provide following signals: the old root of tree and new index ( that are stored in the smart contract), old (index, data) pair, and the new (index, data) pair. Then, the new root will be created using new data points. The data structure of SMT makes it easier to update, delete, insert, and search in the tree as it is the collection of (data, index) pairs, or (key, value) pairs.
Please see the
smt library and the sample code on how to add, update, delete nodes in the sparse merkle tree here: GitHub - cedoor/sparse-merkle-tree: Sparse Merkle tree implementation in TypeScript.
Yes the testnet is launched. I added the testnet link on Harmony.
The process is to connect with metamask wallet and generate the secret and nullifier and provide your group ID (0, 1, …n), then run generate the calldata and join. Next, a user need to create a vote, and finally use the secret and nullifier to vote yes or no for a selected proposal.
that sounds great. Hamid - can you post the link to the testnet launch here too?
Well justified use cases for the app. Yes from me as governor of zkdao.
I can see the great value in this project. Yes from me as a governor of zkDAO.
with >5 positive votes from zkDao’s governors, this project will be funded.