Summary
Now you have a clear understanding of what ZKPs are and what they are used for.
In this chapter, we have analyzed in detail the different kinds of ZKPs, both interactive and non-interactive. Among these protocols, we saw a ZKP that used RSA as an underlying problem, and I proposed an original way to trick it.
Then, we saw the Schnorr protocol implemented in an interactive way for authentication, on which I have proposed an attempt to attack.
Moving on, we explored the zk-SNARKs protocols and spooky moon math, just to look at the complexity of some other problems. Among them, we saw an interesting way to attack a discrete logarithm-based zk-SNARK. We dived deep into Zcash and its protocols to see how to anonymize the transactions of this cryptocurrency.
Later in the chapter, we encountered and analyzed a non-interactive protocol based on the D-H algorithm. Finally, we explored ZK13, a non-interactive protocol, and its use of shared secrets to enable the authentication...