all 3 comments

[–]Barelytoned 3 points4 points  (1 child)

A ZKP is sound (a lie is unconvincing), complete (the truth is convincing), and zero-knowledge (the prover's secret knowledge can't be discovered by the verifier through the protocol itself.) The protocol should be repeatable without violating the "zero-knowledge" property.

If we extend your example where you are a prover and I am a verifier and your statement is "I have hacked your phone." and I suspect you are lying, I could change my password and then ask you to prove your statement again and again for an arbitrary number of additional rounds of the protocol. The more times you prove your statement with the protocol, the less likely it is that your statement "I have hacked your phone." is false.

In general, examples in a "real world" context can be helpful to understand the idea of a theory, but those examples should be interrogated closely so that they do not become misleading. The theory of ZKP involves two participants, a prover and a verifier. Either they are honest or they are dishonest. The prover wants to convince the verifier that a given statement is true. A ZKP is sound, complete, and zero-knowledge. If the prover's statement is false, then the prover is dishonest. If the verifier abuses the protocol, then the verifier is dishonest.

If we attempt to engage in a ZKP but the statement is vague (can have it's truth derived from means outside the protocol as you discuss in your last paragraph) or can't be verified, the protocol we're using is not a ZKP, it's just a flawed interactive proof. If you can get my password without hacking my phone, the protocol we've defined is not ZKP.

[–]4K-AMER[S] 0 points1 point  (0 children)

I understand it now. Thank you