Abstract: This paper primarily examines the work of Ulrich Haböck et al. titled "Circle STARKs," interpreting Circle FFT and its implementation aspects. The analysis focuses on three main areas: 1) the foundation for accelerating basic operations with CFFT; 2) the implementation of CFFT calculations; and 3) the coding implementation of CFFT.
1. Introduction
In traditional STARKs, Fast Fourier Transform (FFT) is used to efficiently perform interpolation and write adjacent row constraints. To utilize FFT for fundamental polynomial operations, the finite field ${\mathbb{F}_{p}}$ must possess a smooth-order root of unity. Besides the FFT itself, the choice of finite field $p$ directly influences the complexity of arithmetic operations, thereby impacting the efficiency of STARKs. The most effective field for arithmetic operations is the Mersenne prime field, specifically $p = {2}^{e} - 1$. Notably, $p = {2}^{31} - 1$ allows for highly efficient arithmetic operations on 32-bit computers. For these reasons, traditional FFT is inadequate in meeting the efficiency demands of STARKs. In reference [1], the authors continue the ECFFT [2][3] approach, constructing Circle STARKs based on the Mersenne prime $p = {2}^{31} - 1$ on the circle defined by the equation ${x}^{2} + {y}^{2} = 1$. The core innovation lies in the introduction of Circle FFT (CFFT) within STARKs.
2. Circle FFT
2.1 Fundamentals of CFFT
The choice of field significantly affects the efficiency of FFT acceleration and the feasibility of using FFT for this purpose. A prime $p$ that is friendly to CFFT possesses the property $p \equiv 3 \bmod 4$. The set of $p+1$ points on the curve $C = C\left( {{\mathbb{F}}{p}} \right)$ forms a group, defined by the group operation $\left( {{x}{0}},{{y}{0}} \right) \centerdot \left( {{x}{1}},{{y}{1}} \right) := \left( {{x}{0}}{{x}{1}} - {{y}{0}}{{y}{1}}, {{x}{0}}{{y}{1}} + {{x}{1}}{{y}{0}} \right)$, where the circular group $C\left( {{\mathbb{F}}{p}} \right)$ is a cyclic group. Additionally, we define the rotation operation ${{T}_{P}}\left( x,y \right) := P \centerdot \left( x,y \right)$, the squaring map $\pi \left( x,y \right) := \left( x,y \right) \centerdot \left( x,y \right)$, and the group inverse $J\left( x,y \right) := \left( x,-y \right)$.
When using FFT acceleration, the length of the coefficients to be computed must be ${2}^{n} \left( n \ge 1 \right)$. For CFFT, we define a double coset of size $N = {2}^{n}$ as $D = Q \cdot {{G}{n-1}} \cup {{Q}^{-1}} \cdot {{G}{n-1}}$. Here, ${{G}{n-1}}$ is a subgroup of size ${2}^{n-1}$ of $C\left( {{\mathbb{F}}{p}} \right)$, and $Q \in C\left( {{\mathbb{F}}{p}} \right)$. When the prime $p \equiv 3 \bmod 4$, we have $D = Q \cdot {{G}{n}} = Q \cdot {{G}{n-1}} \cup {{Q}^{-1}} \cdot {{G}{n-1}}$. When $D$ is a coset of the subgroup ${{G}{n}}$, it is the standard position coset of size $N$. Furthermore, under the squaring map, the set $\pi \left( D \right)$ of size $N/2$ shares the same properties as $D$, meaning it is also a double coset or standard coset. The standard position coset is illustrated in Figure 1, where the elements are evenly distributed along the circle, corresponding to the binary size of the set. For $n\ge 1$,${{\pi }^{n-1}}(D)=\left{ ({{x}{D}},{{y}{D}}) \right}$ contains only two elements.