Some statements are expensive to prove. If I need to make a proof for such kind of statement repeatedly (generate new proof $\pi$ for each new verifier), I think it might be a waste of time (as well as computation resources).

  • If there is a proof $\pi$ that I generated in a non-interactive way, can I reuse it?
  • What problem would cause if I try to show it to several verifiers?

If this proof $\pi$ could still maintain its effectiveness, and does not harm the soundness and zero-knowledge property, I think it would be helpful to reuse this proof.

  • 1
    $\begingroup$ Are we talking about designated-verifier NIZKs here? Otherwise, the proof is publicly-verifiable (given the CRS is known to all parties). $\endgroup$
    – ckamath
    Commented Apr 5, 2023 at 6:16
  • $\begingroup$ Thank you. Do not know "designated-verifier NIZK" before. I am interested in the motivation of creating this notion. To prevent from what kind of attacks? Or to provide what kind of new properties? Could you please write a simple example to introduce its motivation? $\endgroup$
    – Yiyi
    Commented Apr 6, 2023 at 3:30
  • 1
    $\begingroup$ They are easier to construct than standard NIZK (and are often used as stepping stone to standard NIZKs) $\endgroup$
    – ckamath
    Commented Apr 6, 2023 at 6:50

1 Answer 1


A standard NIZK is publicly verifiable: not only can you reuse it, you could even publish it on your webpage, and let anyone download it and verify it. This does not harm soundness of ZK in any way. In fact, NIZKs are very commonly used in settings where many people will verify it.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.