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):

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:
notationalgebraic 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:

Proof

You can choose to display it or leave it hidden forever.

Acknowledgments

This book is built with mdBook using the following preprocessors:

If you spot anything off, I'd be happy to get your feedback and acknowledge it here.