Zero-knowledge proofs are primitives for proving the integrity of arbitrary computation over confidential information. They are used in applications like private digital cash and anonymous voting. In this workshop, you will learn the theory behind zero-knowledge proving systems, and try your hand at writing a few circuits. The session will also brainstorm ideas for more private applications that can be built.