A polynomial combines coefficients with nonnegative integer powers of a variable. In a zk-SNARK construction, it can gather several program equations into one object. section 15.3.8
A constraint polynomial works in stages:
- Choose roots such as 1, 2, and 3, assigning one program equation to each point. section 15.3.8
- Require evaluations such as f(1), f(2), and f(3) to equal zero when the computation is correct. section 15.3.8
- Use selector polynomials that isolate individual equations, then add their contributions into one polynomial. section 15.3.9
- Keep secret inputs and intermediate values in coefficients while evaluating the result at a hidden random point. section 15.3.9


