Today's exercises are mostly taken from this ZK Topic Sampler.
Visit http://web.mit.edu/~ezyang/Public/graph/svg.html and play around with the interactive demo. This is a programmatic version of the 3-coloring example we went over in class.
Implement a non-interactive ZKP for discrete log in code! To do this, you'll need to read and understand the first section of this handout, as well as the Fiat-Shamir heuristic.
Specifically, you should implement:
If you need help, a reference implementation in Javascript with comments can be found here. This exercise may take you a few hours.
For an additional challenge, try implementing a non-interactive ZKP for proof of 3-coloring as well!
Create an account and post a message on zkmessage, a zkSNARK-powered anonymous message board.
If you're curious, we go much deeper into the construction of zkmessage here.