slop_stacked/lib.rs
1#![allow(clippy::disallowed_types)]
2//! API for stacked multilinear polynomial commitment schemes.
3//!
4//!
5//! For any multilinear PCS that can commit to batches of matrices of the same height (considering
6//! the columns of those matrices as evaluations of multilinear polynomials on the Boolean
7//! hypercube), and then prove joint evaluations of those multililiner polynomials at the same
8//! point, this module provides functionality that can commit to heterogeneous batches of matrices
9//! (considering that batch as a single mutlilinear polynomial in many variables), and then prove
10//! evaluations of that multilinear polynomial at a point.
11//!
12//! This is implemented by making a virtual vector consisting of the concatenation of all of the
13//! data in the matrices in the batch, splitting that vector up into vectors of a prescribed size,
14//! and then using the underlying PCS to commit to and prove evaluations of those vectors. The
15//! verifier then computes the expected multilinear evaluation of the larger vector by using a
16//! multilinear evaluation algorithm in a smaller number of variables). This is essentially the
17//! the interleaving algorithm of `Ligero`(https://eprint.iacr.org/2022/1608).
18
19mod fixed_rate;
20mod prover;
21mod verifier;
22
23pub use fixed_rate::*;
24pub use prover::*;
25pub use verifier::*;