Batched commitment of polys with different sizes on mpcs layer#864
Batched commitment of polys with different sizes on mpcs layer#864
Conversation
|
The current implementation is still rudimentary: it does not support parallel execution or has any optimization what so ever. I'm also awaiting for a PR on sumcheck to rewrite the sumcheck implementation to match with those in |
|
Hi @Jiangkm3 could you elaborate primitive in your design from verifier perspective: giving
Then how is formula to combine both into a single (eval_3, num_var_3)? thanks |
|
Updated the approach to match with the new suffix-alignment of sumcheck. See the new interleaving approach ( Lines 80 to 84 in a0f20c0 |
|
New interleave function here: Lines 172 to 175 in 1c504a5 This allows the prover to compute interleave in |
|
Parallel version of interleave now available: Lines 229 to 231 in 3d8b8b9 |
This PR enables ceno to batch commitment polynomials of different sizes on
mpcslayer using any commitment scheme. The main contributions are:pcs_batch_commit_diff_size,pcs_batch_commit_diff_size_and_write,pcs_batch_open_diff_size, andpcs_batch_verify_diff_sizeinmpcs/src/lib.rsthat implements the batching.run_diff_size_batch_commit_open_verifyinmpcs/src/lib.rsandbatch_commit_diff_size_open_verify()inmpcs/src/basefold.rsandmpcs/src/whir.rsfor testing.The idea is to use packing, which merges the polynomials into a sequence of large polynomials of a fixed size
packed_polys. If the final few smallest polys cannot be fit into these packed polys, a final smaller polynomialfinal_polyis introduced. The process is then as follows:packed_polystogether (since they are of the same size) andfinal_polyseparately.unify_sumcheckto reduce the different claim points on each poly down to the same point on each poly. It then performs packing to producepacked_polysandfinal_polyif exists. Finally it invokes the MPCS protocol to provepacked_polysandfinal_polyseparately.unify_sumcheck, packing, and the MPCS.