FAQs: MoonMath Manual to zk-SNARKs

Our MoonMath Manual to zk-SNARKs is generating a lot of interest and so we’ve put together answers to some of the most common questions.

What are zk-SNARKs and why should I care?

Zk-SNARKs, or zero-knowledge succinct non-interactive arguments of knowledge, is a type of zero-knowledge proof that allows for the verification of information without revealing the underlying data. As a lot of other cryptographic building blocks, these constructions enable us to build systems that fundamentally revolutionize the way we manage privacy and security in the digital world. 


Why did you write the MoonMath Manual?

Our colleague, Mirco Richter, realized that many people would try to understand zero-knowledge proofs, and especially zk-SNARKs, but that existing resources were not covering all ground. They were either too general or were explaining mathematical intricacies, expecting knowledge in cryptography and higher mathematics. 

Mirco wanted to fill this gap and first gave lectures at zk0x02 and zk0x03 (two events of the zkSummit series) in Berlin, dissecting zk-SNARKs through minimal examples. The MoonMath Manual is the result and extension of this work and intends to give good explanations with many examples on the mathematical foundations needed to understand the intricacies of zk-SNARKs (and other cryptography), such as algebra and elliptic curves, as well as toy examples for building zk-SNARKs. 

Additionally, our work of auditing implementations of zero-knowledge proof technology inspired some chapters in which we explain intricacies and pitfalls of implementations of zk-SNARKs, hashing, and elliptic curves from a developer perspective. Through the backing of the first Gitcoin Grant and a lot of internal investment, we were able to release the first version of the MoonMath Manual.


What prerequisites does one need to study or read the MoonMath Manual?

The MoonMath Manual is accessible for both beginners and experienced readers of the topic alike as we dissect the mathematical foundation needed for zk-SNARKs. It is assumed though, that the reader has a basic understanding of programming and enthusiasm as well as an affinity for logical thinking and strategic problem solving. While each chapter builds on the previous one, the manual is written in a way that allows the reader to study only the  (sub-)chapters they are particularly interested in.


Why is it called the MoonMath Manual?

Firstly, understanding the details of zero-knowledge proofs requires insight into various mathematical and computer theoretical disciplines, including alternatives to well-established computational models and programming paradigms. The resources for that are scattered and as a result, the intrinsics of zero-knowledge proofs seem elusive or “magical” to some and have been referred to as “moon math”, which we play upon. Secondly, we intend the book to be a manual to zk-SNARKs with it covering most concepts one needs for a high-quality implementation and a deep understanding.


Do you conduct training on zk-SNARKs?

Yes, we gave lectures and workshops on zk-SNARKs and cryptography, and have also used the MoonMath Manual, as well as other resources, internally and externally for these training purposes. If you or your organization is interested in how the MoonMath Manual can be used for training purposes, please email us at contactus@leastauthority.com


What do you plan for the future for the MoonMath Manual?

The MoonMath Manual is intended to be updated with new results in the field as a “live” book. The cryptography research community is investigating the field of zero-knowledge proofs with its limitations, constructions and use cases at an intense and fast pace. We plan to examine and include explanations and examples on new zk-SNARK technology as we think they become popular in real-world applications, as well as conduct more training on cryptography and zero-knowledge proofs and community work within the space.


For more information and to download the MoonMath Manual, see https://leastauthority.com/community-matters/moonmath-manual/ 

If you would like to support the continuous production of content like this, please donate via one of the following channels, or contact Least Authority for additional solutions:

  • Bitcoin: bc1q0d8pf6tgqq6j0gzv5yf259usvh6zfjsuuq39d7
  • Ethereum: 0x470E2902CC34A8b2A1E1890325cA0564593a5eDB
  • ZCash: t1JyQ9X4VDkiZSdNF2XLXPU5CHTT33saunf