Inspiration

The main inspiration behind this project was to provide DAOs a secure and private platform to practice voting in the governance.

What it does

It is an extension of semaphore. The main difference is the incentivization mechanism of voters. Each voters when voting receive some % of tokens as well.

This is to ensure people use zk platforms.

How we built it

Circuits: Circom, Groth16, Snarkjs, Circom Tester

Contracts: Solidity, Hardhat, Ethers, Typechain

Server: NestJS, MongoDB

Client: NextJs, ChakraUI, Emotion, Ethers, SWR

Challenges we ran into

The main challenge was to design a system where the identity of voters are not disclosed and voters and contributors relation is not made.

We have done this in a manner that voters will use identity proof while voting and voting proof while withtdrawing the tokens. If the proof is included in the merkle tree then the users can proceed. So we are not storing anything on the smart contract except for the state of the merkle tree.

Accomplishments that we're proud of

Integration of ZK into the coordinape mechanism with better UX.

What we learned

Economic design Game theory Circom development ZKP security

What's next for SPIC (Semaphore Protected Incentivized Community)

Moving to cairo ecosystem and other new blockchains as well.

Built With

  • chakra-ui
  • chakraui
  • circom
  • circom-tester-contracts:-solidity
  • emotion
  • ethers
  • groth16
  • hardhat
  • heroku
  • nest
  • next
  • react
  • snarkjs
  • snarks
  • solidity
  • typechain-server:-defender-oppenzeppline-client:-nextjs
  • vercel
Share this project:

Updates