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 fileZK 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:sampleEquivalent direct script:
bash scripts/zk/verify-sample.shResult
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 passedWhat 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.
Related next docs
Operational brief for DAO-controlled micropayment batches, showing how approved policy becomes batched stablecoin settlement with judge-visible runtime proof and telemetry continuity.
Shortest reviewer path across live proof, V3 hardening, trust links, and launch boundary surfaces.
Generated reviewer-visible route into telemetry, hosted reads, runtime evidence, indexed governance, and the infrastructure value layer behind PrivateDAO.