A mental model for zero-knowledge attestation
category: Privacydate: 1 min read
#zk#privacy#cryptography#snarks
Zero-knowledge gets sold as cryptography that proves you know something without revealing it. That's true but unhelpful. The useful model is: a zk system is three functions — commit, prove, verify — glued by a structured relation.
RUST
// the relation is the product; the SNARK is packagingtrait Relation { type Witness; type Statement; fn satisfies(w: &Self::Witness, s: &Self::Statement) -> bool;}Design the relation first. Pick the proving system last.
The proof system is a compression scheme for the relation. Get the relation right and the choice of SNARK is an engineering tradeoff, not a research problem.
- Commitment schemes are where privacy actually lives.
- Verification cost scales with public inputs, not witness size — design accordingly.
- Trusted setups are social infrastructure. Treat them like you'd treat a CA.
end of file · zk-attestation-mental-model.md