In the DAO ecosystem, there have always been concerns about plutocracy due to how decentralized projects/communities with token-weighted voting distribute their tokens. Certain solutions like voting delegation, proof of personhood and 1 person 1 vote have mitigated the problem however some can still be gamed (e.g. Curve Wars) or lack adoption.
zkVoice aim is to provide a zero-knowledge proof-based coordination tool that allows DAO members with less voting power to signal their voice against token whales or project benelovent dictators. The modular design of MolochV3 allows DAOs to easily embedded this simple primitive on top of any proposal. During voting period, dao members against a certain decision would be able to secretly signal their voice (1 member 1 vote), and if a member threshold is met, the proposal will fail in favour of the community to generate more debate & inclusion in their governance process. Besides providing off-chain coordination and privacy, this pretty simple approach also minimizes the cost of single members' rage quitting the DAO, leaving this mechanism as a very last resort.
We forked MolochV3 contracts repository and integrated EF Semaphore Protocol to implement a SemaphoreShaman, a separate contract that plug-ins zkVoice primitive on DAO proposals, creates secret proposal polls, and turn the red light in case a certain member voice threshold is met.
A ShamanSummoner proxy contract (EIP1167) helps to deterministically deploy a SemaphoreShaman contract so it can be setup in one single DAO proposal tx.
Sadly during this hackathon, I couldn't get a full implementation that can be integrated with DAOHaus dao tooling, however contract unit and E2E tests were included in the repo. Thanks to the sponsors, I had fun this weekend learning about zero-knowledge proofs