I had earlier asked the question What is a witness string? I unable to understand the concept

From the answers I got, it seems that a witness is more or less the answer. For e.g. in the padlock example given in the accepted answer, the witness is the padlock combination which can be easily verified to be true or false.

I assume it (witness == answer) is not the same in Zero Knowledge proof systems because then it wouldn't be a zero knowledge system. Can someone explain witnesses in the context of Zero Knowledge Proof systems?

In the padlock example, if we had to provide a zero knowledge proof, what would be a witness string? Alternately is there some other simple example of ZK proof, where we can understand what a witness string is?


1 Answer 1


A witness $w$ is essentially some extra helping information that you can use to verify something.

In the case of zero-knowledge proofs, $w$ will help you prove that the other party solved the problem, but it may not necessarily be the solution (since we need the zero knowledge property).

So there is no real difference between what you already know as a witness and a witness in zero-knowledge proofs, except that witnesses in zero-knowledge proofs are more likely to be more complicated as well.

  • $\begingroup$ In the padlock example, the witness can be the combination in what is not a zero knowledge proof. Is there some similar example of a witness in a zero knowledge proof? For e.g. if we had a zk proof that a particular padlock can be opened with a combination - what could be a witness? Alternately for some other example $\endgroup$
    – user93353
    Oct 24 at 3:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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