What are zero-knowledge proofs?

TLDR;
.
- Zero-knowledge proofs, also known as ZKPs, are a cryptographic way to prove knowledge about something without disclosing the thing
.
- ZKPs were first discussed in an academic paper in 1985�
.
- On the blockchain arena, zero-knowledge proofs power things like decentralized identity and enhancing privacy
.
Blockchain�s decentralized nature makes it challenging for users to trust each other. Zero-knowledge proofs solve this issue by enabling participants to prove knowledge of a certain piece of information without disclosing the information.
.
Although zero-knowledge proofs apply both in the centralized and decentralized worlds, we will discuss them from the decentralized/blockchain view. Ready? Let�s dive in.
What are zero-knowledge proofs and how do they work
A zero-knowledge proof is a method that involves a prover and a verifier with the prover showing knowledge of information or data and the verifier authenticating the prover�s claims without the need for the actual information or data.ZKPs work by the prover and verifier agreeing on the cryptographic parameters that will govern the proving and verifying process.
.
- The three principles of zero-knowledge proofs
.
- Completeness - The verifier must be satisfied that the prover�s proof is complete and true.
.
- Soundness - The proof system must be able to detect attempts to provide false proofs.
.
- Zero-knowledge - The verifier must have zero knowledge of the data or information provided by the prover.
.
Examples of how zero-knowledge proofs work
.
You are part of a group that has access to a safe. You encounter a person who claims to be part of the group. To verify that they�re indeed part of the group, they�ll need to have the secret code combination to access the safe�s contents. To verify they have the combination without requiring them to reveal it to you, you put something inside the safe and ask them to get it for you.
.
If they have the code, they get the secret item and show you without revealing the secret code combination. In this scenario, the stranger is the prover and you are the verifier.
.
Let�s look at ZKP application In a decentralized or blockchain ecosystem:
.
A Monero blockchain user wants to send 20 Monero (XMR) coins to a friend. The friend expects the funds but doesn�t know the wallet balance of the sender. He initiates a send transaction on the blockchain. The transaction includes a zero-knowledge proof that he has the capacity to fulfill the transaction.
.
Transaction validators on Monero validate the proof and, if valid, the friend accepts the proof, and the 20 XMR coins move from the sender to the receiver and the transaction is added to the blockchain. Here, the receiver is the verifier while the sender is the prover.
Types of zero-knowledge proofs
- zk-STARKs - The zero-knowledge scalable transparent argument of knowledge (zk-STARK) proof is among the most used today due to its speed and reduced interaction between the verifier and the prover.
.
- zk-SNARKs - Proofs in the zero-knowledge succinct non-interactive argument of knowledge (zk-SNARK) are lightweight and easy to verify making them less costly to run compared to STARKs.
.
- Bulletproofs - They are non-interact ZKPs and operate outside a predetermined trust setup.
.
- PLONK - This is part of the SNARKs family. PLONK stands for �permutations over Lagrange-bases for oecumenical non-interactive arguments of knowledge.� This type of zero-knowledge proof accommodates several participants during the proving-verifying process.
Uses of zero-knowledge proof
Zero-knowledge proofs are being applied in blockchain projects for various reasons. Some of them include:
.
- Private transactions - This is applied by projects like Zcash and Monero that focus on powering private transactions. Monero, for example, uses Bulletproofs to guarantee that a transaction happened without revealing its value.
.
- Decentralized identity - Zero-knowledge proofs provide a way to validate the identity of blockchain users without revealing their intimate information like phone numbers and home addresses. This can be applied by decentralized exchanges to obstruct users� identity, account balances, and trading activities.
,
- Powering oracle networks - ZKPs enable oracle networks to accurately verify off-chain data before offering it for use in an on-chain environment.
.
- Secure scaling layers - Zero-knowledge proofs make it possible to develop scaling layers or layer 2s that focus on security and faster transactions.
.
- Integrity verification - This applies in a supply chain environment. Zero-knowledge proofs allow suppliers and customers to be verified without disclosing personal and company information.
Conclusion
What are zero-knowledge proofs? These are cryptographical techniques used to enable data and information verification without revealing the actual data or information. ZKPs can be used in a wide range of scenarios like powering oracle networks, secure scaling networks, private transactions, and boosting integrity on a supply chain.