Root docs
Repository viewer
Legacy docs parity surface
Back to repository viewer
Repository document
ZK Evidence
zk-evidence.md
Boundary
This route preserves legacy markdown access inside the Next.js surface. The raw repository file remains authoritative.
Open raw fileZK Evidence
This repository now includes a real multi-circuit zk proving flow for the PrivateDAO companion stack.
Formal zk threat reasoning:
- `docs/zk-threat-extension.md`
- `docs/zk-assumption-matrix.md`
- `docs/zk-capability-matrix.md`
- `docs/zk-provenance.md`
- `docs/zk-verification-flow.md`
- `docs/zk-transcript.generated.md`
- `docs/zk-attestation.generated.json`
Circuits
- `zk/circuits/private_dao_vote_overlay.circom`
- `zk/circuits/private_dao_delegation_overlay.circom`
- `zk/circuits/private_dao_tally_overlay.circom`
Sample Inputs
- `zk/inputs/private_dao_vote_overlay.sample.json`
- `zk/inputs/private_dao_delegation_overlay.sample.json`
- `zk/inputs/private_dao_tally_overlay.sample.json`
Setup Artifacts
- `zk/setup/private_dao_vote_overlay_final.zkey`
- `zk/setup/private_dao_vote_overlay_vkey.json`
- `zk/setup/private_dao_delegation_overlay_final.zkey`
- `zk/setup/private_dao_delegation_overlay_vkey.json`
- `zk/setup/private_dao_tally_overlay_final.zkey`
- `zk/setup/private_dao_tally_overlay_vkey.json`
- `zk/setup/pot12_final.ptau`
Proof Artifacts
- `zk/proofs/private_dao_vote_overlay.proof.json`
- `zk/proofs/private_dao_vote_overlay.public.json`
- `zk/proofs/private_dao_delegation_overlay.proof.json`
- `zk/proofs/private_dao_delegation_overlay.public.json`
- `zk/proofs/private_dao_tally_overlay.proof.json`
- `zk/proofs/private_dao_tally_overlay.public.json`
Commands
npm run zk:build
npm run zk:prove:sample
npm run zk:verify:sample
npm run build:zk-registry
npm run build:zk-transcript
npm run build:zk-attestation
npm run verify:zk-registry
npm run verify:zk-transcript
npm run verify:zk-attestation
npm run verify:zk-consistency
npm run verify:zk-negativePer-layer replay:
npm run zk:prove:vote
npm run zk:prove:delegation
npm run zk:prove:tallyVerified Public Signals
Vote overlay
proposalId = 1001
daoKey = 500000000000000001
minWeight = 100
commitment = vote/salt/voter/proposal/dao commitment
nullifier = voter/proposal/dao nullifier
eligibilityHash = voter/weight/dao eligibility bindingDelegation overlay
proposalId = 1001
daoKey = 500000000000000001
minWeight = 100
delegationCommitment = delegator/delegatee/proposal/dao/salt binding
delegationNullifier = delegator/proposal/dao nullifier
delegateeBinding = delegatee/proposal/dao binding
weightCommitment = delegatee/weight/dao commitmentTally overlay
proposalId = 1001
daoKey = 500000000000000001
commitment0..1 = two commitment-consistent revealed vote tuples
yesWeightTotal = deterministic weighted yes tally
noWeightTotal = deterministic weighted no tally
nullifierAccumulator = public accumulator over the revealed sample nullifiersEvidence Standard
The zk stack is only considered valid when:
- every circuit compiles
- each witness is generated from its circuit-specific sample input
- every proof is generated successfully
- every proof verifies against its exported verification key
- the generated zk registry matches the real artifact tree
- the generated zk transcript matches the real artifact tree
- the generated zk attestation matches the registry and transcript summaries
- recomputed public signals match the stored public outputs
- tampered public signals fail verification
- tampered proof objects fail verification
This is intended to be a real proving path, not a placeholder research note.
The repository-level command that replays this end-to-end path is:
npm run zk:all