Introduction
This book is an ongoing effort to gather some notes about cryptography with a focus on schemes which are relevant to the decentralized web such as multiparty signatures, zero-knowledge proofs, etc.
For now it consists of the following parts:
- Mathematics:
 - Cryptography:
 - Proof Systems:
 - ZK Hack Puzzles Walk-through:
 
We assume that the reader has some basic knowledge of arithmetic and algebra and of common concepts from cryptography (hash functions, signatures, ...).
Here are a number of freely available textbooks to learn more (we will point to specific sections of them when needed):
- A Computational Introduction to Number Theory and Algebra by Victor Shoup
 - the Boneh-Shoup cryptography textbook
 - lecture notes for an advanced graduate cryptography course by Jonathan Katz
 - The Joy of Cryptography by Mike Rosulek
 - Mathematics of Public Key Cryptography by Steven Galbraith
 - Least Authority's MoonMath manual
 - Proofs, Arguments, and Zero-Knowledge by Justin Thaler
 
Mathematical Notation
- Given a set we let denote the set of strings of length over and the set of all strings, i.e., where denotes the singleton consisting of the empty string; the length of a string is denoted
 - Given a non-empty finite set the sampling of a variable according to the uniform distribution is denoted
 - Unless specified otherwise, groups are denoted additively.
 - Main algebraic structures:
 
| notation | algebraic structure | 
|---|---|
| arbitrary group | |
| arbitrary ring | |
| integral domain | |
| arbitrary field | |
| natural numbers | |
| integers | |
| rational numbers | |
| real numbers | |
| complex numbers | 
Note that all proofs throughout the book are collapsible:
Acknowledgments
This book is built with mdBook using the following preprocessors:
- mdBook-KaTeX
 - mdbook-toc
 - mdbook-footnote
 - mdbook-mermaid
 - mdbook-admonish
 - mdbook-numthm
 - mdbook-numeq
 - mdbook-mathpunc
 
If you spot anything off, I'd be happy to get your feedback and acknowledge it here.