is a vulnerability that is not yet published.
is a protocol between two parties in which one party called the prover has to prove a certain fact to the other party, called the verifier. At the end of the protocol the verifier “accepts” or “rejects” the prover. The following properties are useful:
- Completeness: The verifier always accepts the protocol if the prover knows the fact.
- Soundness: The verifier always rejects the protocol if the prover does not know the fact.
In a zero-knowledge proof, the verifier learns nothing about the fact being proved. Furthermore, the verifier cannot later prove the fact to anyone else. The FIAT SHAMIR protocol is the first practical zero knowledge protocol.
The Ali Baba cavern example will explain the concept. Alice wants to prove to Bob that she knows the secret word that opens the door between C and D. She does not want Bob to hear the word. Bob goes to point A. Alice chooses one side of the cavern C or D. Then Bob comes to B. He challenges Alice to come out from the branch he calls her. If Alice knows the secret word she will succeed each time. Else at each iteration, she has 50% of chance to fail the challenge.