The Binius protocol is an efficient zero-knowledge proof system designed to operate over binary fields, particularly focusing on individual bits (0 or 1). This method is highly efficient due to its unique approach to handling and extending these bits using Reed-Solomon encoding.
The main goal of Binius is to optimize zero-knowledge proofs by minimizing the overhead involved in encoding and extending data. Traditional proof systems use larger field sizes, leading to inefficiencies, especially when dealing with small values such as loop indices or Boolean values. Binius addresses this by working directly with bits, thus reducing the redundancy and making the proofs more compact and efficient.
Data Representation in a Hypercube:
Hypercube to Grid Transformation:
Extension Using Reed-Solomon Codes:
Row Combination:
Bit Decomposition:
Evaluation at Random Points:
Commitments and Proofs:
Verifier Checks:
Prover Time:
Verifier Time:
Proof Size:
Even if $O(N \log N)$ seems less efficient wrt to $O(N)$ which is the prover complexity of Groth16 or Plonk, Binius operates directly over binary fields making $N$closely related to the bit-length of the data while the others use large prime fields (typically 256-bit primes), where
$N$ corresponds to the number of operations performed over these fields. In other words;
Binius is more efficient for circuits with many small values (bits), leveraging binary operations.
Plonk is optimized for general arithmetic circuits over large prime fields, making it less efficient for small, bit-level operations.
Circle STARKs build on the concept of Elliptic Curve FFT (ECFFT) to improve the efficiency of STARKs for certain finite fields. The key innovation is the use of a circle curve $𝑥^2+𝑦^2=1$ for arithmetization, which allows for efficient interpolation using the FFT algorithm. This approach is particularly efficient when $p+1$ is divisible by a large power of 2, such as the Mersenne prime $p=2^{31}-1$.
Initialization and Preprocessing
Polynomial Representation
FFT and Inverse FFT
Proving and Verification
(Same idea in STARK applied)