Zeromorph EvaluationEngine trait#71
Conversation
5f826c7 to
d8b6c2f
Compare
a5bcb1c to
bf4cf70
Compare
- Added an additional test `test_dense_evaliations()` to provide more comprehensive testing for the `evaluate()` and `evaluate_opt()` functions in `MultilinearPolynomial`.
- Added serialization, deserialization, and Abomonation traits to UVUniversalKZGParam struct in `non_hiding_kzg.rs` file along with implementing comparison and length evaluation traits. - Created a new file `kzg_commitment.rs` which implements KZG Commitment Engine and setup, commit functions. - Integrated `kzg_commitment` in module `provider` and set up conversions between Commitment and UVKZGCommitment. - Enhanced assertion in `minroot_serde.rs` file from clone comparison to dereferenced comparison in MinRoot delay case.
- Updated `prove` and `verify` methods in `ZMPCS<E>` struct within `non_hiding_zeromorph.rs` with actual logic for commitment, evaluation, and verification. - Adjusted the construction of `ZMCommitment` and `ZMEvaluation` within `prove` and `verify` methods. - Commented on portions of the code in `non_hiding_zeromorph.rs` that need further modification and refinement. - Modified test value for `test_pp_digest_with` in the `test_supernova_pp_digest` test case to match the new expected output.
5d2f846 to
ce4f528
Compare
61c9dd0 to
fd62444
Compare
There was a problem hiding this comment.
Shouldn't we use pp-spartan by default in Arecibo, since we consider it more efficient and Ethereum-friendly than "regular" Spartan? At least I would propose mandatory having e2e proof/verify test instances in lib.rs for Bn256/Grumpkin curve cycle as we consider it as default in our solidity-verifier.
Trying to run test_ivc_nontrivial_with_compression with zeromorph stuff using pp-spartan, e.g.:
test_ivc_nontrivial_with_compression_with::<
bn256::Point,
grumpkin::Point,
SPrime<bn256::Point, ZM<halo2curves::bn256::Bn256>>,
SPrime<grumpkin::Point, EE<_>>,
>();
gives me following assertion error (at setup phase):
thread 'tests::test_ivc_nontrivial_with_compression' panicked at 'assertion failed: ck.length() >= Self::commitment_key_floor()(S)', src/spartan/ppsnark.rs:912:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
test tests::test_ivc_nontrivial_with_compression ... FAILED
|
@storojs72 your point about the default doesn't really apply to Arecibo, since there isn't any "default" per se, Arecibo/Nova just provides the two APIs (compression, spark_compression) side-by-side. But it does apply to Lurk!
Yes, that's normal and due to microsoft/Nova#203, or #5 here. |
f83879b to
46b3af6
Compare
| bn256::Point, | ||
| grumpkin::Point, | ||
| S<bn256::Point, EE<_>>, // SZM<bn256::Point, halo2curves::bn256::Bn256>, | ||
| S<bn256::Point, ZM<halo2curves::bn256::Bn256>>, |
There was a problem hiding this comment.
This translates the former test_ivc_nontrivial_with_zm_compression
ceaf9ae to
d89fd77
Compare
1711f39 to
729ba78
Compare
729ba78 to
83950c5
Compare
EvaluationEngineby adopting refactor: Parametrization of lib.rs tests for various EvaluationEngines #70,CommitmentKeywith a token universal setup, which allows implementing aCommitmentEngineTraitfor KZG commitments,EvaluationEngineTraitimplementation for ZMPCS. The scheme is slow (due to poor univariate KZG batching)Closes #19
TODO:
gen_srs_for_testingso the tests run in reasonable time.Next steps: