Zero Knowledge
Browse all Zero Knowledge articles.

The Schwartz-Zippel Lemma and its application to Zero Knowledge Proofs Nearly all ZK-Proof algorithms rely on the Schwartz-Zippel Lemma to achieve succintness. The Schwartz-Zippel Lemma states that...
Last updated on Aug 20, 2025
4 min read
ZK Proof of Selection Sort
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. Sometimes, we do not need to show...
Last updated on Aug 20, 2025
10 min read
Zero Knowledge Multiplication
Zero Knowledge Multiplication Zero Knowledge Multiplication of Polynomials Using the polynomial commitment scheme from the previous chapter, a prover can show that they have three polynomials $l(x)$,...
Last updated on Aug 20, 2025
9 min read
How a ZKVM Works
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. This allows us to take a...
Last updated on Aug 20, 2025
6 min read
Indicate Then Constrain
Indicate Then Constrain If we want to say that “ can be equal to 5 or 6” we can simply use the following constraint: However, suppose we want to say that “ is less than 5 or is greater than 17.” In...
Last updated on Jun 20, 2025
12 min read
Elementary Group Theory for Programmers
Elementary Group Theory for Programmers !Group Theory Hero Image This article provides several examples of algebraic groups so that you can build an intuition for them. A group is a set with: a...
Last updated on May 20, 2025
22 min read
Elementary Set Theory for Programmers
Elementary Set Theory for Programmers Why another set theory tutorial? The target audience for this piece is the sort of folks who don’t care about abstract math unless they see a direct use-case for...
Last updated on Apr 25, 2025
3 min read
Swapping Two Items in an Array in Circom
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. More generally, lists are a...
Last updated on Apr 15, 2025
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 certain...
Last updated on Apr 15, 2025
4 min read
Conditional Statements in Circom
Conditional Statements in Circom Circom is very strict with the usage of if-statements. The following rules must be followed: Signals cannot be used to alter the behavior of an if-statement. A signal...
Last updated on Apr 15, 2025
Circom Template Parameters, Variables, Loops, If Statements, Assert This chapter covers essential syntax, which you'll see in most Circom programs. With Circom, we're able to define a Rank 1...
Last updated on Apr 15, 2025
6 min read
The Permutation Argument
The Permutation Argument A permutation argument is a proof that two lists hold the same elements, but possibly in a different order. For example, is a permutation of and vice-versa. The permutation...
Last updated on Apr 15, 2025