ZKU-Vote: Anonymous voting within DAO

Proposal Overview

ZKU-Vote is a platform that allows anonymous voting. Participants can approve projects/vote for classmates/workmates without having to reveal their identity and decision, candidates can view the current results. Participants only get access to the voting page and get voting rights after the participant is verified by Discord role.

Application type

zkDAO

Use Case

Currently ZKU-Vote showcases the following using zk-proofs:
Anonymous voting for classmates/workmates, only students can vote.
Anonymous project approval by governors only. (5 governors needed for approval)

This app is designed to be easily modified to fit the DAOs need when it comes to anonymously taking votes. An important feature is the access being restricted to DAO members and voting rights being distributed based on the user’s role within the DAO.
The aim is to have a project that can be taken apart and be useful for other developers, or to showcase the possibilities with the semaphore boilerplate from the semaphore docs.

Competitive Landscape

My experience with other voting apps that I have looked at is that I had to use metamask or another wallet to connect, the app offered multiple polls on one public page, could not get it to work/was not functional yet or I had a hard time trying to modify/add to/learn from the project because of complexity.

ZKU-Vote does not require a wallet (gas fee payments done by owner wallet) which removes an obstacle for onboarding, the dapp is only accessible for members of the DAO (zkDAO in this case) by using discord oauth, which I have not seen being used by others yet. User information is only stored on the client side.

Proposal Ask

The ZKU-Vote application was established to be community-driven and self-funded by the DAO in a bid to bring privacy to the DAOs. In order to get this up and running, we will be requesting the $15k/year stable basic income to take care of initial development, welfare and operations costs.

This ask will be in line with the laid down milestones as detailed below

  1. launching a feature-complete product on our testnet
  2. forming a DAO with 5-out-of-9 multisig with our DAOs
  3. launching on our mainnet with audit
  4. attracting 1k daily active users (with launch video, full PR promotion)
  5. attracting 10k daily active users (with a detailed roadmap, governance process)

Roadmap

Objective Date Status
Testnet launch April 30th Done
Beta Testing and Fixes May 10th Done
Mainnet Launch May 10th Done
Smart Contract Audit July 31th Pending

Following @Hakwan’s advice, choosing now as the best time to launch and to be able to receive meaningful feedback to make adjustments, a working version is already running on Harmony mainnet.

Possible features to be added:

  • Adding the discord bot to get all the candidates from the DAO into a list.
  • Adding time lock features to end votes at a certain interval.
  • Adding funds inside a wallet to automate proposal payout once 5 stars have been reached.
  • Adding basic template(s) for adding custom polls.

External links

Source code ||
ZKU-Vote ||
VoterDemo Contract

1 Like

Yes from me as a zkDAO governor, also confirming the first milestone has been met. May I suggest adding auditing to the timeline too?

1 Like

Hi! This is an awesome anonymous voting mechanism. I have a question related to the wider use of your product.

Participants only get access to the voting page and get voting rights after the participant is verified by Discord role.

Can I configure the system so that users registered on a certain portal or on a certain crypto exchange would be allowed to vote? For example, I participate in the construction of an educational portal, my students have already been identified when registering, is it possible to remove Discord from this scheme and replace it with registration on our portal?

1 Like

Thank you @socathie! updated.

Hey @vikavi thanks for showing interest. Yes it’s possible, if you want I can help with that :envelope_with_arrow:.

1 Like

Hi, thank you. This is very cool!

1 Like

A yes from me as a governor of zkDAO and confirmation of the first milestone

1 Like

Hey, I tried out the application but cannot get it to work. There seems to be some issue with the app recognizing my governor role and giving me permission to vote. Please look into it and fix the issue so we can move forward with the approval.
Also, include a demo video of the product in your post.

1 Like

Hey @Kousik_Rajesh,
There should be an error message on screen, could you share that? Also if it says “leaf not found” or something similar it’s because the application seems to be slower on mainnet, so it takes a little longer to register, other than that it should be working. Will add loading messages for clarity. Working on video demo now, thanks.

External links

+ Video demo

This is a yes from me as a governor of zkDAO. I can confirm that first milestone is reached.
Possible improvement: When I try to vote for the 2nd time on the same proposal, nothing happens. Notify users that they already voted.

1 Like

Seems to be working now. First milestone approved.
But I feel the UI needs a lot of changes before mainnet launch.
Some suggestions:

  • Use better contrast between background and foreground (both are blue)
  • remove unused components (three dots, more button in vote for final submissions page)
  • Use some kind of caching so I don’t have to authorize discord everytime I refresh
1 Like

Thanks for the feedback, I appreciate it.
@AleksandarHadzibabic,
Okay thats weird, I will have it fixed.
@Kousik_Rajesh,
I will make upgrades to the UI/UX. :+1:

I also vote yes and confirm Milestone 1 as a zkDao governor.

1 Like

@AleksandarHadzibabic
@Kousik_Rajesh
I have updated the UI, notifications should be fixed, and added caching.
Click here to view the app

1 Like

Great! Seems good now