QAP
Introduction
Given a R1CS instance , the verifier has to check if it holds:
which is a complexity task so we want to somehow reduce this to .
Preliminaries
Protocol Explanation
Let's consider a simpler case where we want to check if . Denote th column vectors of and as and respectively. Then, what we want to check becomes:
So if we consider polynomials and then, it is equivalent of checking if this two are same:
Since the sum itself is another polynomial, if we denote them as and , we have simple equality check:
This check can be done using a single random challenge following the Schwartz-Zippel Lemma.
Applying to R1CS
Similarly, let's denote the polynomial interpolation of th column of , , as . Then, the R1CS check becomes:
Since each sum results in a single polynomial, we can simplify this equation as:
Degree imbalance
The equality above is not as simple as it looks since the . Because of this imbalance, our polynomials are not necessarily equal but if we think about the , they must be equal over the evaluation domain:
which is equivalent to checking:
In other words, should be divisible by the degree zero polynomial:
Therefore, the quotient polynomial must be well defined:
Final formula for QAP
Prover commits to polynomials and verifier checks with random challenge :
References
Last updated