Zero Knowledge
Browse all Zero Knowledge articles.
20 min read
Roots of Unity in Finite Fields, Explained with Examples
In a finite field, the k-th roots of unity are the elements of the subgroup of order k. Learn how to find them and what makes a root of unity primitive.
22 min read
Multiplication of Polynomials in Point Form
Polynomial multiplication is widely used in zero-knowledge proofs and mathematical cryptography.
7 min read
Basic Bank Tutorial with SPL Tokens and Anchor
In this tutorial, we’ll build a simple bank program on Solana with the basic features you'd expect from a regular bank.
14 min read
The Fundamental Theorem of Finite Cyclic Groups
The Fundamental Theorem of Cyclic Groups provides guarantees about the existence of cyclic subgroups within a cyclic group.
10 min read
The constant product formula in Uniswap v3
This chapter is optional. It introduces no fundamentally new concepts compared to the previous ones, but offers a different perspective on deriving real…
33 min read
Circle FFT — Part 1: Building the Circle Domain
Circle STARKs is a new zk-STARK scheme that has been implemented in Stwo and Plonky3, and it has been adopted by several zkVM projects.
22 min read
Multiplicative Subgroups and Primitive Elements
This chapter continues our study of group theory by exploring subgroups and generators. The concept of a primitive element will be introduced at the end.
4 min read
ZK Proof of Selection Sort
Most computations of interest are generally “stateful” — that is, they need to go through a series of steps to produce the final result.
9 min read
How a ZKVM Works
A Zero-Knowledge Virtual Machine (ZKVM) is a virtual machine that can create a ZK-proof that verifies it executed a set of machine instructions correctly.
3 min read
Swapping Two Items in an Array in Circom
This chapter shows how to swap two signals in a list of signals. This is an important subroutine for a sorting algorithm.
3 min read
Quin Selector
The Quin Selector is a design pattern that allows us to use a signal as an index for an array of signals.
4 min read
Introduction to Stateful Computations in ZK
When carrying out iterative computations such as powers, factorials, or computing the Fibonacci sequence, we need to “stop the computation” after a…