Open In App

Non-Interactive Zero Knowledge Proof

Earlier Zero-knowledge proof verification systems used to be interactive. The ‘prover’ of information called ‘witness’ and ‘verifier’ had to be simultaneously online in order to successfully execute operations.

This made entire process ambiguous and unscalable. In 1986, Fiat and Shamir invented Fiat-Shamir heuristic and changed interactive zero-knowledge proof to non-interactive zero-knowledge proof.



Fiat–Shamir heuristic is technique for taking an interactive proof of knowledge and creating digital signature based on it. This way ‘witness’ or fact can be verified publicly without prover being online all the time.

Non-Interactive Zero-Knowledge Proof with Discrete Algorithm :



  1. Sanchita wants to prove to Sachin that she knows value such that y = g^a to base g.
  2. Sanchita picks random value v from set of values Z, and computes t = g^v.
  3. Sanchita computes c = H(g, y, t) where H() is hash function.
  4. Sanchita computes d = v – c*a.
  5. Sachin or anyone can then check if t = g^d * y^c.

Fiat–Shamir heuristic allows us to replace interactive step 3 with non-interactive random oracle access, but in practice, Hash function is used.

In Interactive ZKP, Sachin would have picked random value c from set Z and sends it to Sanchita.

If the hash value used below does not depend on (public) value of y, security of scheme is weakened, as malicious prover can then select certain value x so that product c*a is known.

Advantages :

Applications :

Article Tags :