TL;DR
This article explores efficient prime fields tailored to enhance the performance of code-based zero-knowledge proofs. These fields, implemented in Plonky3, also potentially benefit pairing-based protocols. We cover four prime fields:
Goldilocks Field ($p=2^{64} - 2^{32} + 1$) utilized in plonky2
Mersenne31 Field ($p=2^{31}-1$) used in plonky3
BabyBear Field ($p=2^{31} - 2^{27} + 1$) used in zkVM by Risc0
KoalaBear Field ($p=2^{31} - 2^{24} + 1$)
We aim to address the following questions:
Q1. What are those prime fields and why are they chosen?