BlockChainZero Knowledge proofs

What are zero-knowledge proofs?

By Joel Lozano
Picture of the author
Published on
zero-knowledge-proofs

What are zero-knowledge proofs?

Zero-knowledge proofs (ZKPs) are an area of ​​cryptography that has become extremely relevant to the blockchain industry. From wikipedia: zero-knowledge proofs is a method by which one party (the prover) can prove to another party (the verifier) ​​that a given statement is true, while avoiding conveying to the verifier any information beyond the mere fact of the statement's truth What is it that I can “prove something is true, without giving any more information about it”?

What is it that I can “prove something is true, without giving any more information about it”?

Let's think about the following analogy: I'm playing Where is Waldo? where I have to find a figure of a person in a sea of ​​people, images, and objects. I want to convince my friends that I've found Waldo but without telling them exactly where he is so that they can continue playing. The way it's done is that I (Alice) take a large piece of cardboard, punch a hole in it, and put the large piece of cardboard on top of the game. That way I can prove that I've found Waldo, without revealing exactly where he is. When I remove the cardboard, people can continue playing without knowing any more information than they did at the start.

𝗣𝗿𝗼𝗽𝗶𝗲𝗱𝗮𝗱𝗲𝘀 𝗱𝗲 𝗭𝗞𝗣𝘀:

Integrity: If a statement is true, an honest verifier can be convinced by an honest prover that they have knowledge about that statement. Soundness: If a statement is false, no dishonest prover can unilaterally convince an honest verifier that they have knowledge about the correct information. Zero knowledge: If the state is true, then the verifier learns nothing more from the prover other than that the statement is true.

𝗜𝗺𝗽𝗼𝗿𝘁𝗮𝗻𝗰𝗶𝗮:

Due to these properties, it is possible to make the following statements in the blockchain world: (private transactions) “I can prove that I made a transaction following the rules of Ethereum” (scalability) “I can prove that these 100 transactions that I made on my Layer 2 blockchain, follow the rules of Ethereum” (interoperability) “I can prove that these tokens on blockchain A I destroyed, so that I can create the same tokens on blockchain B” (identity privacy) “I can prove that I am over 18 years old without giving any other information” (private voting) “I can prove that I can vote and it is the first time I vote in this round”

𝗥𝗲𝘀𝘂𝗺𝗲𝗻

In summary, I I would classify the potential of ZKPs into 3: Scalability Privacy Interoperability Which i) solves the Blockchain Trilemma, ii) brings privacy back iii) allows to expand the use cases enormously. Topics left out for other posts: History Dev Mindset Types of ZKPs ZKP Constructions Mathematics behind ZKPs Tooling

💡Key Ideas:

Define what outcome you want when starting to learn these topics Simplify towards the level of abstraction you want to operate Don't over complicate it!

🛠️ Build and Practice:

Reflect: are you more of a top-down approach (big picture then details) or bottom-up approach (simple detailed concepts, then building from there)?

Resources

Stop Learning ZK Mathematics

Stay Tuned

Get informed about the latest publications
The best articles, links and news related to web development delivered once a week to your inbox.