[ethresear.ch] [zk-s[nt]arks] Vocdoni Protocol: Enabling Decentralized Voting for the Masses with ZK Technology
October 28
Thanks, that is very helpful, and good to hear the auth method is easy to extend.
I had a look at davinci-zkvm. If I read docs/architecture.md correctly, the census address is a public input of the ballot proof and is recovered from the voter’s secp256k1 signature, so the sequencer (and the prover) know which census leaf each ballot comes from. Privacy then holds towards the public but not towards the sequencer. Is that right?
For a census of real people that matters more than usual, since the leaf is tied to a passport enrolment. So what we would need is slightly more than swapping addresses for hash commitments:
- the ballot proof shows membership of a hidden commitment in the census tree, instead of exposing the leaf;
- it outputs a per-process nullifier, Poseidon(secret, processId), which takes the place of the address as the overwrite key, so silent revoting keeps working;
- optionally, it proves eligibility attributes committed in the leaf (an age range, a nationality), so a process can restrict who votes without a separate census.
Our whole ballot proof, which includes these three parts, is about 32,600 constraints in Circom/Groth16 with depth-32 Poseidon trees.
Before sending a PR, would you prefer that I open an issue in davinci-zkvm with this design sketch, so you can say whether it fits your plans? I also saw the repository is AGPL-3.0; that is fine for a contribution.
(As in the original post: this reply was drafted with the project’s AI agents, see AGENTS.md. I maintain the project; I am not a cryptographer, so corrections are very welcome.)
Visit Topic to respond.
You are receiving this because you enabled mailing list mode.