Foundations are done. This track now moves into algebra — and the shift matters more than it might look, because polynomials turn out to be the actual language ZK circuits get written in. Every program a ZK system proves gets translated into polynomials somewhere underneath. This lesson covers the basics that everything later builds on: what a polynomial is, its degree, how to evaluate one, and what a root is.
What a polynomial is
A polynomial is an expression built from powers of a variable, each one scaled by a number called a coefficient, all added together.
, , and are the coefficients; is the variable. The whole expression is just powers of , each scaled by a coefficient, summed up.
The degree
The degree of a polynomial is the highest power of that appears in it — a single number that says a lot about how the polynomial behaves.
Degree is just a constant, with no at all. Degree is linear — a straight line. Degree is quadratic, which is where first shows up, and degree is cubic. The pattern keeps going from there, but these four names cover almost everything this track needs.
Evaluating a polynomial
To evaluate a polynomial, plug in a specific number for and work the result out, one step at a time.
Plug in a number, get a number out — that’s the entirety of what evaluation means.
Roots of a polynomial
A root is a value of that makes the polynomial equal zero. Finding one is the same process as evaluating, just checking which inputs happen to land on :
and both zero the polynomial out, and doesn’t — which means and are the roots of , and the polynomial factors cleanly around them.
Every root corresponds to a factor — knowing the roots is the same information as knowing the factored form.
Polynomials live inside a finite field
This is exactly where the previous lesson connects to today’s. In a ZK system, a polynomial’s coefficients — and every value it gets evaluated at — don’t live in the ordinary numbers. They live inside , the same finite field from the last lesson.
Nothing about the process changes — substitute, compute, reduce by the modulus — it’s the identical evaluation from earlier in this lesson, just finished off with one extra step.
Why ZK circuits are built from polynomials
Here’s the payoff, and the reason this entire phase of the track exists: an entire computation — every step, every constraint — can be encoded into a single polynomial. Checking that polynomial at just one random point then tells you, with overwhelming probability, whether the whole computation was done correctly.
That one idea — compress a computation into a polynomial, verify it with a spot-check — is the foundation underneath R1CS, QAP, and PLONK, the systems ZK proofs are actually built from. The next lesson goes further into how polynomials behave under their own arithmetic, over a finite field.