Everything you need to know about zero-knowledge proofs
Tags: Zero Knowledge Proofs, Cybersecurity, Cryptography, Privacy, Infosec

Between the rise of digital surveillance and data breaches, keeping some secrets is now harder than ever.

Fortunately, a developing branch of cryptography offers a path toward robust digital privacy.

Zero-knowledge proofs are a developing domain of cryptography tackling the question of how parties can share secrets through digital channels without revealing the secret itself.

Read on to learn more about what zero-knowledge proofs are, the different types of proofs that currently exist, and what zero-knowledge proofs can be used for.

What are Zero-Knowledge Proofs?

Zero-knowledge proofs are cryptographic protocols enabling parties to prove the possession of a mutually-known secret without revealing the secret itself.

Shafi Goldwasser, Silvio Micali, and Charles Rackoff first described zero-knowledge proof in a paper entitled “The Knowledge Complexity of Interactive Proof-Systems,” published in 1989.

The document, along with a paper published by computer scientists László Babai and Shlomo Moran, is credited with inventing interactive proofs and the 5 authors received the first Gödel Prize in 1993.

To qualify as zero-knowledge proof, a protocol must satisfy three requirements, two of which stem from their status as a form of interactive proof.

1. Completeness

If a statement is true, an honest prover must be able to convince an honest verifier that the statement is true.

2. Soundness

If a statement is false, a dishonest prover must not be able to convince an honest verifier that the statement is true.

3. Zero-knowledge

If a statement is true, the verifier shouldn’t learn anything other than the fact that the statement is true.

Different types of ZKP

Zero-knowledge proofs can be interactive or non-interactive.

Interactive proof occurs when the prover must perform an action or series of actions to convince a specific verifier of something.

Non-interactive proof can be provided by the prover and verified by anyone who can access the information and wants to verify it for themselves.

Here are some of the different forms of interactive and non-interactive proofs:

Interactive

Proof-of-knowledge

A method for convincing a ‘verifier’ that the ‘prover’ has a piece of information.

Pairing-based cryptography

Pairing-based cryptography involves using two cryptographic elements to produce a unique third element that can be used to identify the relationship between the first two elements.

Witness-indistinguishable proof

A witness-indistinguishable proof is a special form of zero-knowledge proof used for problems involving nondeterministic polynomial time (NP). Where typical zero-knowledge proofs use a ‘witness’ to maintain the anonymity of the ‘prover,’ witness-indistinguishable proofs simply ensure that ‘verifiers’ can’t tell the difference between ‘provers’ using different ‘witnesses.’

Multi-party computation

This method enables two or more parties to verify each other’s secrets by sharing secrets without revealing them to produce a unique result.

Ring-Signature

The use of ring signatures involves distributing a number of keys to trusted participants in a group. Any combination of a certain number of those keys can be used to reveal a secret without exposing which keys were involved.

Non-Interactive

Zk-SNARK

Zero-Knowledge Succinct Non-interactive Arguments of Knowledge (Zk-SNARK) is a form of non-interactive proof requiring a setup phase between trusted individuals.

Zk-STARK

Developed by professor Eli-Ben Sasson of the Technion-Israel Institute of Technology, Zk-STARK is a more efficient implementation of Zk-SNARK that doesn’t require a trusted setup but tends to involve larger proofs.

Applications of ZKP

In spite of the obvious applications for zero-knowledge proofs as a privacy-enabling technology, their use currently remains limited as developers work to reduce the size and computational requirements of zero-knowledge proofs and find effective methods for implementing them.

Currently, zero-knowledge proofs are mainly used to enable private addresses and transactions when using digital assets but researchers see potential in a wide variety of privacy-sensitive applications ranging from simple authentication to nuclear disarmament.

Zcash is credited with being the first useful application of Zk-SNARK and projects have used the technology to enable privacy when using other cryptocurrencies like Ethereum and DASH.

ING Bank published a white paper describing an efficient method for using zero-knowledge proof to improve privacy in the delivery of financial services, a couple of examples being:

“a mortgage applicant could prove that their salary sits within a certain range, without revealing the exact figure. Similarly, it could prove that a payment amount is within a limit, but it does not show the exact amount.”

While there aren’t a lot of practical applications of zero-knowledge proofs at the moment, the breadth of their potential makes it an exciting time to be involved in their development and implementation.

Thanks for Reading!

If you enjoyed this article, please follow us and give us some claps! Medium allows users to clap up to 50 times for an article.

Plutus DeFi is on a mission to bring privacy to decentralized finance (DeFi).

Interested in decentralized lending with privacy? Sign up to beta test our anonymous lending aggregator at https://plutusdefi.com/.