Background- zero knowledge tech

History and premise of zero-knowledge cryptography

In cryptography, the zero-knowledge proof(ZKP) mechanism is useful for sharing confidential data across the network without disclosing data to any third person in the network. you may think "no one will share confidential data with unknown network participants already. why do we need ZKP at all ?" Specifically, in Blockchain networks (both permissioned and permissionless), every transaction should go through verifiers in order to validate it. so, the verifier(miners or endorsers) can see whatever data you submitted along with the transaction. what if you don't want to disclose your confidential data even to a verifier? That's where ZKP comes in effect, in a Zero-knowledge proof mechanism, you prove that you know something(your data), without revealing it.

ZKP was first introduced by MIT researchers (Shafi Goldwasser, SilvioMicali and Charles Rackoff) in a 1985 paper, zero-knowledge proof (ZKPs) have gained a lot of momentum following the security concerns observed in the blockchain industry and hence found quite a few use cases in real-world applications. In cryptography, a zero-knowledge proof is a method in which one party (“prover”) proves to another party (“verifier”) that a given statement is true without providing any additional information.

ZKP requirements

To meet the requirements of a zero-knowledge protocol, it must satisfy the following criteria:

  1. Completeness: The protocol should always return ‘true’ if the input is valid. If the prover and verifier act truthfully, and the underlying statement is true, then the proof should be accepted.

  2. Soundness: It should be theoretically impossible to deceive the protocol into returning ‘true’ if the input is invalid. Therefore, a dishonest prover cannot convince an honest verifier that an invalid statement is valid (with only a small margin of probability).

  3. Zero-knowledge: The verifier should gain no additional knowledge about the statement, other than its validity or falsity. This means that the verifier has “zero knowledge” of the statement and is unable to derive the original input (the contents of the statement) from the proof.

Last updated