Polynomials
have properties that are very useful in ZK
proofs. A polynomial is an
expression of more than two algebraic terms. The degree of a polynomial
is the highest degree of any specific term.
For an example of how Polynomials can be built and expressed in code. Run:
python3 finite_fields/python/polynomial.py ---
Polynomial arithmetic deals with the addition, subtraction, multiplication, and division of polynomials.
We can represent a bit pattern by a polynomial in, say, the variable
-
the pattern
$011$ by the polynomial$x + 1$ .
Representing bit patterns with polynomials will allow us to create a finite field with bit patterns.
In general, a polynomial is an expression of the form:
for some non-negative integer
In reality, we do not have intentions of evaluating the value of a
polynomial for a certain value of
Polynomial arithmetic is quite simple. The more complex operation is the division which is not in the scope of this tutorial for now.
We can define several polynomials belonging to the same field. For
example, for the
We can follow the same logic for polynomial arithmetic operations when
the coefficients belong to finite field. We just need to remember the
modular nature of finite fields. As an example, let’s operate with
polynomials whose coefficients belong to the
Addition:
Subtraction:
Multiplication:
Again the division case is out of the scope of this tutorial for now.
A polynomial
The Book is a community-driven effort created for the community.
-
If you’ve learned something, or not, please take a moment to provide feedback through this 3-question survey.
-
If you discover any errors or have additional suggestions, don’t hesitate to open an issue on our GitHub repository.