Understanding zero-knowledge proofs
Here are some resources on zero-knowledge proofs and how to generate them.
When to use zero-knowledge proofs
There are three moments when ZK is the right tool for you:
- Computing power imbalance (which includes improved scalability): I can verify a result without running the resource-heavy computation.
- Adversarial environment: I can verify a result without knowing trade secrets that attained this result.
- Anonymity: I share only the information I want to share.
How to use zero-knowledge proofs
There are many ZK languages. Hylé aims to verify as many as possible.
DSLs are specific languages that usually compile down to a specific circuit. They're good, but they're complex and may have a high learning curve.
zkVMs prove the correct execution of arbitrary code. They allow you to build ZK applications in a certain language without having to build a circuit around it. There are two main types of zkVMs: Cairo and RISC-V. You can benchmark your Rust code and find the best zkVM for your needs with the any-zkvm template.
We currently support RISC–V-based zkVMs Risc0 and SP1 and will support more types, including Cairo-based zkVMs and DSLs, in the future.
Read more
- awesome-zk link repository on GitHub
- Hylé's very simple introduction to zero-knowledge proofs
- Lauri Peltonen's blog series on ZK