Skip to main content
Try out the RareSkills ZK AI Tutor!

Zero Knowledge

Browse all Zero Knowledge articles.

8 min read

Number Theoretic Transform (NTT)

The Number Theoretic Transform (NTT) is an algorithm for evaluating a polynomial in a finite field on n values in O(n log n) time.

Last updated onJul 1, 2026
Read Article

11 min read

Using the Convolution Theorem to Prove Equivalence Between Multiplication in Coefficient Form and Point Form

At the beginning of this series, we argued that the multiplication of two polynomials of degree at most n can be performed in O(n) complexity time if…

Last updated onJun 16, 2026
Read Article

16 min read

Understanding Starknet’s Contract Deployment Model

On Ethereum, you deploy a contract in a single transaction. Starknet takes a different approach: deployment is split into two separate transactions…

Last updated onApr 26, 2026
Read Article

10 min read

Orthogonality of Roots of Unity

The sum of powers of the k-th roots of unity generated by a primitive k-th root of unity is either zero or k.

Last updated onApr 21, 2026
Read Article

13 min read

Reading Solana Instruction inputs using sBPF assembly

In the previous tutorial, we introduced the sBPF memory layout and explained the purpose of each register during program execution.

Last updated onFeb 26, 2026
Read Article

12 min read

sBPF Memory Layout and Register Conventions

This tutorial introduces the Solana BPF (sBPF) memory layout and the roles of its virtual machine registers.

Last updated onFeb 27, 2026
Read Article

7 min read

Using Sstore Hooks with Storage Mappings

In the chapter “Introduction to Storage Hooks And Ghosts”, we covered storage hooks and ghosts with simple storage variables.

Last updated onFeb 13, 2026
Read Article

10 min read

Implication Operator

The implication operator is frequently used as a substitute for the if statement since it is cleaner.

Last updated onFeb 13, 2026
Read Article

9 min read

Conditional Statements in CVL and Formally Verifying Parts of Solady and Solmate

Some contract behaviors (properties) are inherently conditional, and using constructs like if/else in CVL is one way to capture conditional behavior…

Last updated onFeb 13, 2026
Read Article

5 min read

Overflow and Mathint

In CVL, the type mathint represents unbounded integers, unlike Solidity’s fixed-size types such as uint256.

Last updated onFeb 13, 2026
Read Article

17 min read

Introduction to the Cairo Language

Cairo is a programming language designed for provable, verifiable computation, particularly within the context of zero-knowledge systems like Starknet, a…

Last updated onJan 15, 2026
Read Article

4 min read

Visual representation of the roots of unity

The property that if ω is a k-th root of unity, then ω^i and ω^(i+k/2) are additive inverses may seem a little abstract — this chapter introduces a…

Last updated onNov 12, 2025
Read Article