You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implements generation of linear and quadratic constraints from a padded
sumcheck proof, specified in 6.6 [1] and 4.4 [2].
- `fields`: for efficient computation of Lagrange basis polynomials, we
add trait `LagrangePolynomialFieldElement`, which defines methods for
the basis polynomial denomimators and methods for evaluating basis
polynomials 0, 1, and 2.
- `sumcheck/witness`: computes the layout of the witness vector, needed
for symbolic manipulation of quantities in constraints and eventually
for construction of Ligero commitment and proof.
- `sumcheck/symbolic`: allows computing symbolic expressions consisting
of terms of the form `a + bx`, where `a` is a known quantity, `x` is
some unknown element of the witness vector and `b` is a constant scale
factor.
- `sumcheck/bind`: implements the `bindeq` function of 6.2 [3].
- `sumcheck/mod`: sumcheck prover now emits the witness vector and
Fiat-Shamir transcript so they may be used to validate constraints.
- `sumcheck/constraints`: implements the constraint generation of 6.6.
In order to valiate the correctness of all this, we also modify
`longfellow-zk` to emit a Ligero commitment and constraints when running
`zk_test.cc` [4]. More work on test vector generation from C++ is
needed.
[1]: https://datatracker.ietf.org/doc/html/draft-google-cfrg-libzk-01#section-4.4
[2]: https://datatracker.ietf.org/doc/html/draft-google-cfrg-libzk-01#section-6.6
[3]: https://datatracker.ietf.org/doc/html/draft-google-cfrg-libzk-01#section-6.2
[4]: https://github.com/tgeoghegan/longfellow-zk/tree/constraint-test-vector
0 commit comments