Circle STARKs
Author(s): nguyendinhthang3101, BaoNinh2808
Overview
Scalable and Transparent Arguments of Knowledge (STARK) is a proof system in which a prover generates a proof to convince a verifier of the integrity of a computation. STARK is also a type of Succinct Non-interactive Argument of Knowledge (SNARK). Most other modern SNARKs are pairing-based and rely on elliptic curves, so they must operate over large prime fields to ensure security. However, STARKs are not based on pairings, so their security depends not on the size of the finite field but on the properties of the underlying Interactive Oracle Proof (IOP), specifically the FRI protocol. This means we are not constrained to large prime fields when constructing secure STARKs, opening the door to using smaller, more efficient primes.
For example, several STARKs-based tools and zkVMs have adopted small primes:
- RISC Zero uses the BabyBear prime (), a 32-bit prime.
- Pico uses the KoalaBear prime (), also 32-bit.
- OlaVM uses the Mini-Goldilocks prime (), a 64-bit prime.
- Stone uses the prime , which is 61 bits.
Among all currently used primes, Mersenne31 () is the fastest for computation on 32-bit CPUs. It enables extremely efficient multiplication - up to 1.3× faster (HLN23) than BabyBear, which is already the fastest among the commonly used primes in zkVMs and STARKs libraries. For more details, see this blog post by zkSecurity. This makes Mersenne31 an attractive candidate for implementing STARKs.
However, there is a challenge. STARKs rely heavily on two core operations: FFT (Fast Fourier Transform) and FRI (Fast Reed-Solomon IOPP). Both require large multiplicative subgroups of size . For primes of the form (where is an odd integer), we are able to construct multiplicative subgroups of size with . All the primes listed above follow this form, making them naturally compatible with FFT and FRI.
In contrast, Mersenne31 has the form and does not support multiplicative subgroups of size in the same way. To use Mersenne31 as the prime field for STARKs, we need a new mechanism for constructing large multiplicative subgroups and redesigning FFT and FRI to operate over these subgroups.
This is where Circle STARKs come in. Instead of working with traditional 1D subgroups, Circle STARKs operate over 2D points that lie on a circle. The authors of Circle STARKs introduce a novel design for FFT and FRI that works with such 2D multiplicative subgroups, enabling efficient STARKs construction using Mersenne31.
In this report, we introduce the components of Circle STARKs, and explain the intuition behind each component and the underlying mathematics. Our goal is to provide readers who wish to study Circle STARKs with a high-quality reference that covers both the technical details and the design ideas. The structure of this report closely follows the Circle STARKs paper (HLP24) to make it easy to cross-reference.
Flow of Circle STARKs
The diagram below illustrates the overall flow of Circle STARKs (and STARKs in general).

In a Circle STARK (and any STARK), the goal is to generate a proof that convinces the verifier of the integrity of a computation—that is, the correctness of its execution. The first step is to express the computation in Algebraic Intermediate Representation (AIR) so it can be handled by the mathematical back-end.
Front-end: AIR
Within AIR we perform the following steps:
- Collect Traces – Record the intermediate values that represent the step-by-step execution.
- Interpolate to Trace Polynomials – Use fast Fourier transform (FFT) to obtain polynomials that encode these traces.
- Apply Constraints – Impose algebraic constraints capturing the program’s logic, producing Constraint Polynomials.
- Form the Composition Polynomial – Combine all constraints into a single Composition Polynomial using a polynomial quotient technique and a random linear combination. The constraints are satisfied if and only if this composition polynomial has low degree.
- Low-Degree Extension and Commitment – Extend the trace and composition polynomials to a larger domain (LDE) and commit to their evaluations with Merkle trees. These commitments serve as the input to the back-end.
Back-end
The back-end’s job is to prove that the composition polynomial derived from the trace is indeed of low degree polynomial. It uses the FRI protocol as the core low-degree test and the DEEP technique to strengthen soundness.
Intuition Behind the Circle STARK Design
Two key operations dominate the STARK/Circle STARK pipeline: FFT and FRI. While FFT could theoretically be replaced by direct Lagrange interpolation, FFT offers far better performance— versus . Both FFT and FRI require working over a multiplicative subgroup of size . However, the Mersenne31 prime field does not naturally contain such smooth subgroups.
To use the Mersenne31 prime, the authors introduce a special structure:
- Circle Curve – A 2D curve defined over the Mersenne31 field.
- Circle Group and its cosets – A multiplicative subgroup of the curve with size .
Each point on the Circle Curve has two coordinates . As a result, Circle STARKs operate on 2-dimensional points, unlike standard STARKs, which use 1-dimensional field elements. This requires re-engineering both FFT and FRI to handle the new geometry.
So, the structure of this report:
- Explore the Circle Curve, the Circle Group, and their cosets.
- Describe the Circle FFT.
- Describe the Circle FRI.
- Integrate all components to present the full protocol.
Circle Curve
In this section, we describe about Circle Curve and explain why Circle Curve build on Mersenne31 prime field has points.
And because it has points then it is ideal for define the group base on this set.
Definition:
Let be the prime field. The Circle Curve, denoted by is the unit circle over defined by the equation:
Or we can write it as the set notion:
Why Circle Curve of Mersenne31 prime field has points?
The Lemma 1 in Circle STARKs paper say that the Circle Curve of the finite field has total || + 1 points. Then if our finite field is Mersenne31 prime field with , the total points is .
Proof of Lemma 1:
we draw a line to . This line intersects the -axis (projective line) at with with (see Figure 2).
- For all we can calculate . Each is correspond to one value . We have total || possible values for mean there are total || valid points .
- When , .
So that in total we have valid points in

Circle Group
Circle Group is Circle Curve with operation defined as:
This definition of group operation satisfies group axioms:
- Identity : The identity/neutral element is
- Since
- Inverse : For every element , the inverse of an element is
- Since
- Associativity : For all :
- Closure : For all : is an element of
- Since from and we have .
With is Mersenne31 prime field, we have is group with elements. Now we need to prove this is cyclic multiplicative group.
Proof that the Circle Group Is a Cyclic Multiplicative Group
Consider the Circle Group
equipped with the operation
1. Relation to a “Complex” Group
Define the set
where is a formal symbol with .
Note that is different with .
Equip with the multiplication
This is exactly the usual multiplication of complex numbers, but carried out inside the finite field .
The map
is a group isomorphism:
-
It is bijective because every with corresponds uniquely to a pair with the same relation.
-
It preserves the operation because
Hence proving that is cyclic immediately shows that is cyclic.
2. Embedding in a Finite-Field Extension
Write where . The multiplicative group is cyclic of order . (let prove it yourself)
For any , its norm is
Thus
This is precisely the kernel of the norm map
3. Size and Cyclicity of
The norm map is a surjective group homomorphism. By the First Isomorphism Theorem,
Thus . (We can also use this result to prove that the number of elements in Circle Group is ).
It is a standard result that every subgroup of a cyclic group is cyclic. Since is cyclic and is a subgroup of size , it follows that is itself cyclic. And because the operation define in is multiplication () so is multiplicative subgroup.
4. Conclusion
Because is isomorphic to , we conclude:
Other operations define on Circle Group:
Square map
Square map is the squaring for a point defined as
Inverse
The inverse is define as:
If we square and its inverse , we obtain the same -coordinate , while the -coordinate is the inverse. This means that if we visualize the Circle Group as a circle in 2D, then and are mirror images across the -axis.
Circle Domain
In this section, we introduce the actual domain used in Circle STARKs, called the Standard Position Coset. This domain is built from a Twin-coset, which in turn is formed from a coset of the Circle Group.
You can think of our progression so far as follows: first we explored the Circle Curve, then we built the Circle Group on it, next we used that group to create the Twin-coset, and finally we formed the Standard Position Coset - the real domain used in Circle STARKs.
For readers who are not familiar with the term coset, it is simply a group that has been shifted by multiplying or adding a constant. For example, let our group be
A coset of can be obtained by multiplying every element by :
assuming the group operation in is multiplication.
Twin-coset
It is natural to choose a cyclic multiplicative subgroup of size (with ) from a cyclic multiplicative group of size .
Let be a cyclic subgroup of of size . We pick a point , which must not be the identity element or have order two . So we can construct 2 cosets and of subgroup :
- Rotation by : Multiplication of by corresponds to rotating in the counterclockwise direction. This is visualized as the rotated blue points representing

- Rotation by : Multiplication of by corresponds to rotating in the clockwise direction. This is visualized as the rotated red points representing

If (i.e., two coset does not have any shared elements) then we call (the unite of 2 cosets) is "Twin-Coset" of size .

This set is called a Twin-Coset because the two cosets are mirror images across the -axis. Sometimes they can also be mirrored across the -axis, but not always. When that occurs, we call it a Standard Position Coset.
Exlain why Q must not be the identity element or have order two
If we know that and multiply by of both sides we have or , which is why can't be the identity element or have order two.

Inverse map of the point from one coset is the point of other which mirrors by -axis. . That's why it's called "Twin-coset"
Standard position coset
If twin-coset of is coset of then it is called Standard Position Coset. This mean: If