Secure Evaluations
Similar toCircleEvaluation, SecureEvaluation is a point-value representation of a polynomial whose evaluations over the CircleDomain are from the SecureField (an alias for QM31). This is implemented as follows:
SecureField element is represented by four base field elements and stored in four consecutive columns. Thus the evaluations are represented as SecureColumnByCoords, as shown above.
Similar to CircleEvaluation, we can interpolate a SecureCirclePoly with coefficients from the SecureField as shown below:
Secure Circle Polynomials
Similar toCirclePoly, SecureCirclePoly is a coefficient representation of a polynomial whose coefficients are from the SecureField. As discussed in the earlier section, we can define a circle polynomial as follows:
Here, are the coefficients from SecureField (i.e. ). We can represent the coefficient using four elements from the BaseField (i.e. ) as follows:
where . Substituting the above representation in the equation of we get:
Thus we can represent a SecureCirclePoly using four CirclePoly: and as follows:
where is a CirclePoly with coefficients , similarly for and . This is implemented as follows:
SECURE_EXTENSION_DEGREE is the degree of extension of the SecureField, which is 4.
Similar to CirclePoly, we can evaluate the SecureCirclePoly at points on the given CircleDomain which outputs the SecureEvaluation.
interpolate and evaluate functions convert between the two polynomial representations using Circle FFT. As you may have noticed, the twiddles are precomputed for efficiency, and we will explore this in the next section on Circle FFT.