Expand description
API for stacked multilinear polynomial commitment schemes.
For any multilinear PCS that can commit to batches of matrices of the same height (considering the columns of those matrices as evaluations of multilinear polynomials on the Boolean hypercube), and then prove joint evaluations of those multililiner polynomials at the same point, this module provides functionality that can commit to heterogeneous batches of matrices (considering that batch as a single mutlilinear polynomial in many variables), and then prove evaluations of that multilinear polynomial at a point.
This is implemented by making a virtual vector consisting of the concatenation of all of the
data in the matrices in the batch, splitting that vector up into vectors of a prescribed size,
and then using the underlying PCS to commit to and prove evaluations of those vectors. The
verifier then computes the expected multilinear evaluation of the larger vector by using a
multilinear evaluation algorithm in a smaller number of variables). This is essentially the
the interleaving algorithm of Ligero(https://eprint.iacr.org/2022/1608).