What Are Zero-Knowledge Proofs?: A Detailed Explainer

Published:

Updated:

What Are Zero-Knowledge Proofs__ A Detailed Explainer - cover

The immutable and verifiable nature of public blockchains has made them stalwarts of information integrity.

Unfortunately, the transparent nature of public blockchains are also curtailing their adoption due to lack of privacy.

For example, in smart contract interactions or when validating transactions, parties must disclose full transaction details. This can include sensitive financial information, contract terms, or personal data, depending on the blockchain's use case.

This is also a deterrent for individuals who want to keep their asset holdings confidential.

Zero-Knowledge Proofs (ZKPs) emerge as a groundbreaking concept to address these issues. A product of cryptographic research, ZKPs are making a strong foothold in Web3.

This 5-minute explainer on Zero-Knowledge Proofs convers the topic circumferentially for beginners and probes deeper for more curious minds.

What Are Zero-Knowledge Proofs?

Zero-Knowledge Proofs (ZKPs) are cryptographic methods that allow one party (prover) to prove to another (verifier) that a statement is true, without revealing any information (“zero-knowledge”) about what is being proven. This enhances privacy and security in transactions and smart contracts.

Say you want to prove to your friend you know the password to an account on the web but you don’t want to reveal any information whatsoever about the password.

How would you do that?

One way is to login to the profile using the password and showing your friend. 

By successfully accessing the account, you demonstrate that you know the password, yet your friend remains completely in the dark about the password's specifics — its length, characters, or any hint of its composition.

This way, you, the prover, provided proof while ensuring your friend, the verifier, has “zero knowledge” of the password itself.

History of ZKP

While new to Web3, ZKPs have a history dating back to the 1980s.

Zero-Knowledge Proofs were introduced in the 1980s by MIT researchers Shafi Goldwasser, Silvio Micali, and Charles Rackoff. Their work laid the foundational principles for ZKPs and opened the door to numerous applications in secure communications and cryptography.

Over the years, ZKPs have evolved from a theoretical construct into a practical tool with wide-ranging applications, especially in the realms of blockchain and digital privacy.

The Fundamental Principles of ZKPs

ZKPs are built on three foundational principles:

  • Completeness: If the statement is true, an honest verifier will be convinced by an honest prover.
  • Soundness: If the statement is false, no deceptive prover can convince the honest verifier that it is true, except with some small probability.
  • Zero-Knowledge: If the statement is true, the verifier learns nothing other than the fact that the statement is true.

To be useful in a blockchain, ZKPs also have to be succinct — this is the fourth foundational principle if you consider practical implementation in blockchains as computational resources are limited.

  • Succinctness: The proof must be smaller than what is being proven and verifiable quickly.

How Zero-Knowledge Proofs Work

At a high level, a Zero-Knowledge Proof involves a series of interactions or steps where the prover gradually convinces the verifier of the truth of a statement, without revealing any additional information.

These steps typically involve mathematical computations and logic puzzles that are easy to solve if you know a certain piece of information (the secret), but practically impossible otherwise.

Take our earlier example of proving to your friend that you know the password to an account.

The “logical puzzle” here is logging into the account using the “secret” which is the password. Solving the logical puzzle is easy but nearly impossible if you hadn’t known the secret.

Types of Zero-Knowledge Proofs

ZKPs can be broadly classified into two:

Interactive Zero-Knowledge Proofs (IZKPs)

In interactive ZKPs, the prover and verifier engage in a series of challenges and responses.

Think of it like a game of 20 questions where the prover (the person who knows the secret) and the verifier (the person who needs convincing) talk back and forth. The verifier asks specific questions, and the prover's answers make sense only if they really know the secret. This game uses special math (like hash functions and random numbers) to make it work.

The more right answers the prover gives, the lower is the probability of fraud until it becomes negligible.

Non-Interactive Zero-Knowledge Proofs (NIZKPs)

Non-interactive proofs convert the challenge-response format into a single statement.

This is like leaving a complex, coded message that proves you know a secret, without anyone needing to ask you questions. It uses a special math trick (the Fiat-Shamir heuristic) to turn the conversation into a one-time statement.

This way, the prover can show they know the secret without any back-and-forth talk.

Benefits of Zero-Knowledge Proofs in Blockchain

Secure Identity Verification

In identity verification processes, ZKPs allow individuals to prove their identity or credentials without revealing the actual data, thus enhancing personal data security.

Private Transactions

Cryptocurrencies like Zcash utilize ZKPs to offer the option of "shielded" transactions, where the sender, receiver, and amount transferred are all kept private.

Regulatory Compliance

They enable blockchain systems to comply with privacy regulations like GDPR, by providing verification of transactions without exposing personal data.

Reducing On-Chain Data

ZKPs can minimize the amount of data that needs to be stored on the blockchain. By proving the validity of transactions without revealing their full contents, ZKPs can significantly reduce the blockchain's size, enhancing its scalability.

Speeding Up Verification

ZKPs allow for quicker verification on blockchain networks since only the proof needs to be checked, not the underlying data.

Robustness Against Attacks

By not exposing transaction details, ZKPs reduce the attack vectors that malicious actors can exploit, strengthening the overall security of the blockchain.

Secure Supply Chain Proofs

ZKPs can prove the authenticity and compliance of goods in a supply chain without revealing sensitive business information or trade secrets.

Verifiable Private Transactions

ZKPs enable the creation of private tokens, where ownership and transactions can be obscured, yet verifiable.

Asset-Backing Confirmation

For tokens representing real-world assets, ZKPs can confirm asset backing without disclosing sensitive information about the assets.

Major Applications of ZKPs

Two major applications of ZKPs in blockchain come in the form of zk-SNARKs and zk-STARKs. Despite their uncanny similarity to “SHARKS,” they have nothing to do with marine life.

zk-SNARKs

zk-SNARKs (Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge) are distinguished by their non-interactive nature and succinctness.

This means that once a common reference string is established during an initial setup phase, the prover can generate proofs that the verifier can independently and quickly check, without further interaction.

This feature is particularly valuable in blockchain applications where efficiency and privacy are paramount, such as in private transactions.

However, the need for a trusted setup in zk-SNARKs poses a significant challenge.

This setup phase must be conducted with utmost security, as any compromise could potentially undermine the entire system.

zk-STARKs

zk-STARKs (Zero-Knowledge Scalable Transparent Arguments of Knowledge) offer scalability and transparency, addressing some of the limitations of zk-SNARKs.

They are designed to handle large-scale computations efficiently, and most importantly, they do not require a trusted setup, thereby reducing the risk of security vulnerabilities associated with such a process.

1900zk-STARKs use hash functions and polynomial computations, avoiding heavy cryptographic assumptions and making them potentially more secure against quantum attacks.

However, these advantages come with their own trade-offs. The proofs generated by zk-STARKs are generally larger than those of zk-SNARKs, which can be a disadvantage in terms of storage and data transmission.

What are zk-Rollups?

A zk-Rollup is a Layer 2 scaling solution for blockchains, particularly Ethereum. The 'zk' in zk-Rollup stands for Zero-Knowledge.

The main idea behind zkRollups is to aggregate multiple transactions into a single transaction, thus reducing the overall load on the blockchain.

This is similar to other rollup methods like Optimistic Rollups. The difference is that zk-Rollups use ZKPs.

This approach significantly enhances the scalability of the network by processing transactions off-chain and then posting a single succinct proof to the on-chain ledger.

Key Features of zk-Rollup

  • Batch Processing: It combines multiple transactions into a single transaction, thereby reducing the amount of data that needs to be stored and processed on the main blockchain.
  • Efficiency and Speed: By handling transactions off-chain and only sending a proof to the blockchain, zk-Rollups can process transactions more quickly and at a lower cost than standard on-chain transactions.
  • Security: Despite the off-chain processing, zk-Rollups maintain a high level of security because the integrity of transactions is verified through Zero-Knowledge Proofs.
  • Reduced Gas Fees: As they consolidate multiple transactions, the overall gas fees are significantly reduced, making transactions more economical for users.

Zero-Knowledge Proofs in Blockchain-Based Games

ZKPs are very useful in blockchain games as they can help deter fraudulent plays while reducing load on the blockchain which adds to faster gameplay.

Below are a few ways how Zero-Knowledge Proofs help web3 games.

Preserving Anonymity

One of the primary benefits of ZKPs in blockchain gaming is the ability to prove the possession of certain attributes or the completion of specific in-game tasks without revealing the player's identity or other private information. This aspect is crucial in maintaining player anonymity, a key concern for many users in the space.

Cheating Prevention

ZKPs can significantly reduce cheating in games.

For example, they can be used to prove that a player has achieved a certain level or score without manipulating the game's code or exploiting vulnerabilities, as the proof itself does not reveal any exploitable information.

Reducing Blockchain Bloat

ZKPs can help in reducing the amount of data that needs to be stored on the blockchain. By only proving the validity of a transaction without storing all its details, blockchain games can operate more efficiently and scale better.

Faster Transaction Processing

With ZKPs, the verification process is streamlined, leading to faster transaction processing times. This improvement is crucial for games, where quick and seamless transactions are essential for a smooth gaming experience.

The Future is zkEVM

One of the most significant milestones in web3 has been the introduction of zkEVM (​​Zero-Knowledge Ethereum Virtual Machine).

Ethereum Virtual Machine (EVM) is the core engine that runs Ethereum smart contracts. The zk-EVM is an adaptation of this, integrating ZKPs to enhance privacy and efficiency.

The integration of ZKPs with EVM aims to solve two of the most pressing issues in the Ethereum network: privacy and scalability. By using ZKPs, zk-EVM can execute smart contracts without revealing sensitive information, ensuring user privacy. 

Another exciting prospect of zk-EVM is its potential in building a quantum-resistant blockchain. As quantum computing advances, it poses a significant threat to current cryptographic practices. The zk-EVM's advanced cryptographic techniques, particularly in the realm of zk-STARKs, offer a framework that could withstand quantum computing threats, securing the blockchain's future.

Conclusion

Zero-Knowledge Proofs (ZKPs) represent a huge leap in privacy and security of blockchains.

By enabling the validation of information without revealing the underlying data, ZKPs offer a unique solution to the perennial dilemma of balancing transparency and confidentiality.

Looking forward, the potential of ZKPs extends far beyond current implementations. ZKPs offer a new paradigm where trust and privacy coexist harmoniously.

We are already witnessing the emergence of numerous zkEVM blockchains — a positive and much-awaited development in web3. At the forefront of this are notable projects like Immutable, Polygon and zkSync.

About the Author:

Transak Team