# On Zero-Knowledge Proofs in Blockchains

Zero-knowledge proofs are generating excitement lately due to their potential to increase privacy and security in blockchain applications. The concept itself is not new, as cryptographers have been working with zero-knowledge proofs for years, but the technique is only just now poised to redefine the concept of online privacy. In this piece I am explaining the basic principles of zero-knowledge proofs and how they can be applied in the context of blockchains.

# What is zero-knowledge proof?

The notion of zero-knowledge was first proposed in 1985 by MIT researchers Shafi Goldwasser, Silvio Micali and Charles Rackoff in their paper “The knowledge complexity of interactive proof systems”:

A zero-knowledge protocol is a method by which one party (the prover) can prove to another party (the verifier) that something is true, without revealing any information apart from the fact that this specific statement is true.

In other words; zero-knowledge proofs let you validate the truth of something without revealing how you know that truth or sharing the content of this truth with the verifier. This principle is based on an algorithm that takes some data as input and returns either ‘true’ or ‘false’.

There are three requirements that must be met by any zero-knowledge application:

- Completeness: If the input is true, the zero-knowledge proof always returns ‘true’
- Soundness: If the input is false, it is not possible to trick the zero-knowledge proof to return ‘true’
- Privacy: The input can not be obtained by any other party

# How does zero-knowledge proof work?

The best way to explain the process of zero-knowledge proofs is with a non-digital example which is, of course, far from the complexity of zero-knowledge proofs but very well explains how they work.