feat: Zeromorph changes for full Goblin #3329
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds polynomial "concatenation" functionality into ZeroMorph.
The idea behind concatenation is the following: given several polynomials (for example,$X_1$ , $X_2$ , $X_3$ , $X_4$ , $Y_1$ , $Y_2$ , $Y_3$ , $Y_4$ ) of length n, we want to show that the set of values in $X$ polynomials is identical to the values in $Y$ .The way we can do it is with a grand product argument, however sumcheck complexity of the grand product argument is quadratic in the number of polynomials that are used in the GP (we have to extend the univariate to the degree d and then we need to multiply those (d+1) elements d times). However, if we were to perform the same grand product instead on polynomials $X= (X_1|X_2|X_3|X_4)$ and $Y=(Y_1|Y_2|Y_3|Y_4)$ , the length of the sumcheck would increase 4 times, but the degree d would decrease proportionately.
So let's say we have an original circuit of length n, where all non-permutation relations are satisfied (including on$X_i$ and $Y_i$ polynomials). However, for the grand product argument we extend the polynomials to length $k\cdot n$ , where $k$ is a power of 2. Then we use the property of Zeromorph that it uses univariate commitments for commiting to multilinear polynomials. Because of this property, the final univariate opening of $X$ at challenge $x$ is equivalent to opening $X_1+x^n\cdot X_2+x^{2n}\cdot X_3+x^{3n}\cdot X_4$ . So what we do in Zeromorph is substitute the opening of a concatenated polynomial by opening of a polynomial derived from a combination of $X_i$ polynomials multiplied by powers of $x$ . This allows us to have fewer commitments and avoid shifts to prove the composition of concatenated polynomials
Checklist:
Remove the checklist to signal you've completed it. Enable auto-merge if the PR is ready to merge.