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 proposed an attack attempt.
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.
Later in the chapter, we encountered and analyzed a non-interactive protocol based on the D-H algorithm. We explored ZK13, a non-interactive protocol, and its use of shared secrets to enable the authentication of VMs.
Finally, we explored zk-SNARKs in the world of cryptocurrency, especially those used to anonymize transactions...