Reviewer core
Curated in-app view
Source file linked
Back to documents
Document route

ZK Local Groth16 Verification 2026-05-22

Fresh snarkJS verification packet for the shipped vote, delegation, and tally Groth16 proof artifacts, with the on-chain verifier boundary stated explicitly.

Document context

Local Groth16 verification evidence only; it proves shipped circuit artifacts verify successfully without claiming completed Solana on-chain verifier CPI enforcement.

Audience: Judges, ZK reviewers, privacy reviewers, security reviewers

Open raw file

ZK Local Groth16 Verification - 2026-05-22

Purpose

This packet records a fresh local verification pass for the PrivateDAO ZK companion circuits. It is intended for reviewers who need to distinguish verified ZK proof artifacts from marketing language.

Verified Scope

  • Vote overlay circuit: `zk/circuits/private_dao_vote_overlay.circom`
  • Delegation overlay circuit: `zk/circuits/private_dao_delegation_overlay.circom`
  • Tally overlay circuit: `zk/circuits/private_dao_tally_overlay.circom`
  • Verification keys: `zk/setup/*_vkey.json`
  • Proof/public inputs: `zk/proofs/*.proof.json` and `zk/proofs/*.public.json`

Command

npm run zk:verify:sample

Equivalent direct script:

bash scripts/zk/verify-sample.sh

Result

Executed on 2026-05-22 after the Testnet custody hardening commit:

[zk] verifying proof: private_dao_vote_overlay
[INFO] snarkJS: OK!
[zk] verifying proof: private_dao_delegation_overlay
[INFO] snarkJS: OK!
[zk] verifying proof: private_dao_tally_overlay
[INFO] snarkJS: OK!
[zk] verification passed

What The Vote Circuit Proves

The current vote overlay circuit enforces:

  • `vote` is binary: `0` or `1`
  • voter `weight` is at least `minWeight`
  • `commitment = Poseidon(vote, salt, voterKey, proposalId, daoKey)`
  • `nullifier = Poseidon(voterKey, proposalId, daoKey)`
  • `eligibilityHash = Poseidon(voterKey, weight, daoKey)`

This provides a real Groth16 companion proof path for vote validity, nullifier continuity, and eligibility binding.

Boundary

This is a local Groth16 verification packet for shipped circuit artifacts. It does not claim that Solana on-chain verifier CPI enforcement is complete. The stricter production lane remains tracked separately by:

  • `docs/zk/enforced-runtime-evidence.md`
  • `docs/zk/external-closure.generated.md`
  • `docs/zk-capability-matrix.md`

Reviewer Interpretation

Reviewers can verify that PrivateDAO has real ZK circuits, keys, proofs, public inputs, and a repeatable proof verification command. Runtime wallet captures and on-chain verifier enforcement remain distinct closure gates and should not be conflated with this local proof-verification pass.