Add Ligero univariate and multilinear PCS
Description
Supersedes https://github.com/arkworks-rs/poly-commit/pull/125: we have refactored our original (univariate) Ligero codebase to support other linear code PC schemes (multilinear Ligero, Brakedown). This requires the implementers of new linear code schemes to implement LinearEncode and LinCodeParametersInfo, where most methods are trivial and the core logic contained in encode. Perhaps there's some simplifications to be done to the traits still.
closes: https://github.com/arkworks-rs/poly-commit/pull/125
Before we can merge this PR, please make sure that all the following items have been checked off. If any of the checklist items are not applicable, please leave them but write a little note why.
- [x] Targeted PR against correct branch (master)
- [x] Linked to Github issue with discussion and accepted design OR have an explanation in the PR that describes this work.
- [x] Wrote unit tests
- [x] Updated relevant documentation in the code
- [ ] Added a relevant changelog entry to the
Pendingsection inCHANGELOG.md - [x] Re-reviewed
Files changedin the Github PR explorer
@mmagician what's the status of this? Sorry for the delay on the review, but happy to merge it to avoid stagnation.
@mmagician @autquis @Pratyush I have just pushed a couple of commits, the most relevant of which is the following: https://github.com/arkworks-rs/poly-commit/pull/132/commits/8d356dbc24bc47201133a6c09e4f09d007dfb0ed. This fixes a small issue we noticed while going through the verification code recently.
However, the no_std check fails. I am unsure if this is caused by the Sync trait bound I have added: https://github.com/arkworks-rs/poly-commit/pull/132/commits/265e261101f0b03e2a4a1ba99948d71863f9d6e6.
Adding this bound was, as far as I can tell, necessary to get everything building.
Any ideas on what is happening/how it should be fixed?
@Antonio95
I added ark-std to the patch due to arkworks-rs/std#48 .