Preliminaries

Here we want to highlight knowledge we expect you to have in order to effectively make use of this book, with the core learning outcome of being able to create circuits in Halo2 (given the implementation by the Ethereum Foundation's PSE team).

Firstly we want to highlight that the amount of maths needed to actually make circuits and debug them is a fraction of that required for doing proof system research and improvements - more importantly, the level of maths required is something essentially anybody can learn with a modest amount of effort.

You should:

  1. know that a ZKP is some data that shows that a specific computation was carried out in a valid way, and that the associated public inputs represent certain values within that computation

  2. know that the value of a ZKP is determined by how the computation and revealed values relate to things in the real world

  3. know that making circuits is about deciding what computation and public input would prove the claim we would want to prove (e.g. what circuit and public inputs would prove that we are the owner of Satoshi's private key)

  4. have some mathematical maturity, sufficient that basic questions about fields could be solved by you without too much angst (using the internet to look things up as much as you please)

  5. most importantly have a basic idea about how the Halo2 proof system works

Not ready?

If you don't feel ready yet, then perhaps check out our non-mathematical introduction to zero knowledge proofs!

Last updated