Let’s start with a simple analogy. Suppose you have two persons: Patrick and Virginia. Take a look at the picture now. There is a tunnel which divides into two paths marked as A and B.
A and B are separated by a magic door which opens only when magic spell is whispered near the doo

Patrick wants to prove to Virginia that he has the magical spell. But Virginia won’t trust him until he proves his powers. Patrick ain’t willing to tell this magical spell to Virginia so they decide to work upon a challenge.
Virginia tells Patrick to go inside the tunnel from the main entrance. Choose any of the paths which he likes: A or B. After Patrick goes in, Virginia will wait for him at the V-point. Virginia will shout either ‘A’ or ‘B’ and Patrick has to come out from that path.
Suppose Patrick goes on Path A, and Virginia asks him to come from Path B, he can do so by opening the magic door. So he should be knowing the spell.
OR MAYBE,
Patrick goes on Path A, and Virginia asks him to come from Path A, he can do that without knowing the spell.
At any given call by Virginia, Patrick can either come from that path or he can’t.
If Patrick doesn’t know the magical spell, probability of him coming out through the right pathway is 1/2 or 0.5 here. Therefore, if only one round of testing is done by Virginia, Patrick may fool her half of the times without even knowing the spell.
So Virginia decides to take this test multiple times. Let’s say 20 times. If she takes this same test 20 times simultaneously, Patrick has to come out from the aforementioned path 20 times correctly.
Mathematically, there can be 2^20 possibilities or 1,048, 576 outcomes. Only 1 out of these ~1 million ways will have Patrick coming out on the right pathway every time.
Chances of Fooling Virginia: 9.53e-7 or Negligible 😲
Patrick successfully proved to Virginia if he has the magical spell or not without even telling her. Virginia authenticated if Patrick has the spell or not. Voila!! You now have the basic mental model of zK Proofs.
As you know, traditional proofing algorithms expose crucial data to Verifier systems, which causes significant risk in the future.
zK-Proofing gives a method to prove to the Verifier that you have performed some computation or operation without exposing the internal details.
This technique will be used someday for Nuclear Disarmament of countries without them exposing any detail related to their Nuclear Missile systems. It will also become an integral part of blockchain networks to improve privacy on-chain.
Implementation of zK-Proofs have been extended using technologies that could also help in scaling blockchain networks like Ethereum. Example: zK-SNARK, zK-Rollups & zK-STARK.
I will be covering them in upcoming articles and threads on my twitter profile @pythontony
Here are some resources I would recommend you to check out:
If you enjoyed reading this content, retweet for better reach. It encourages me to share more such lucid explanations 😅😉

