Why ZK?
This page will give an introduction of what is Zero-Knowledge Proofs and why they are special in privacy preserving applications.
Last updated
This page will give an introduction of what is Zero-Knowledge Proofs and why they are special in privacy preserving applications.
Last updated
If you observe crypto space recently, you will see some keywords: ZK, proofs, proof aggregatiın, non-interactiveness etc.
Why are people so hyped about it? Why does people say "ZK is the endgame" motto? Before all - What the hell is a ZK?
Before explaining what zero-knowledge proofs are, we should talk about proof systems a little bit. Think about the mathematical proofs of some theorems - for example, sum of angles of a triangle is 180 degree. If you want to prove it, you start with some axioms, then build more blocks on it and eventually - usually after long calculations and mathematical corollaries, lemmas etc.- you get to the point (of course, triangle example is pretty toy in this picture.).
Now think about proving some statement to another person. For example, you are trying to say that you have 3 numbers and their sum is divided to 5 without remainder. But, you don't want to share any information about your numbers, like whether they are even or not. Prime or not. Negative or not.
Zk proof systems can be explained with short terms as this:
There is and Prover a Verifier. Prover tries to prove a statement to verifier.
Normally, prover can share some information to verifier. When no information about the statement is shared with verifier in the proof, than this systems is said to be Zero-Knowledge proof based system.
If a verification time is less than näively re-execution of the program, it can be said that proof sent is succinct
Zero-Knowledge Proof based applications or systems are a powerful way of making privacy-preserving communications, where you are able to specify the information that will be shared between parties. In the previous page, you've seen a arithmetic circuit and we stated that there are public/private outputs. You can specify and public or private outputs in this communication, hence make your communication as safe as you want.
There are several things to specify:
With Zero-Knowledge, you can not send information, since it is a proof method rather than an encryption method.
Zero-Knowledge proofs are generally executed by building systems called ZK Circuits which are simply some constraints, that are explained slightly in the previous page.
Okay, i admit that i am not an expert explaining complex subjects nicely. However, there is someone who can do this: .
OPTIONAL: If you are eager to learn what is a SNARK, then you can watch the of Dan Boneh. I recommend you to take a look at the Finite Fields part in the next chapter a little bit before watching the video.