-
Notifications
You must be signed in to change notification settings - Fork 160
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feat/fflonk #498
base: master
Are you sure you want to change the base?
Feat/fflonk #498
Conversation
📦
📦
📦
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think in general looks good. It was quite straightforward to follow shplonk part, but I'm not sure about fflonk. I think lets go through the paper and implementation together to make sense. The utility methods all look good though, it is only the BatchOpen and BatchVerify methods.
Some notes:
- I think it would be better to use the
polynomial
package. It already has some methods implemented what we need and makes it imo relevant. Otherwise we copy-paste methods all over. And I think it also makes it nicer if we have[]polynomial.Polynomial
instead of[][]fr.Element
etc. - I think we can also add
Points
struct as we disccussed in case in the future we want to have some information about the strcture of the points. This would allow to have some optimizations when doing poly-poly multiplication
A few todos on my side what I would like to add:
- add package examples so that the users have an example to copy-paste the correct usage. The example tests are also in CI, which make it a good documentation source.
- I'll also want to revisit package documentation a bit to make it better in the doc site (pkg.go.dev), e.g. inline links etc.
@ThomasPiellard - I don't touch the branch currently - I'll add the documentation and examples after you have finished. |
As a note - we discussed with @ThomasPiellard about how to compute the n-ths roots of the input points. But in the field implementations we have, |
A few TODOs for another PR to improve the packages:
|
Description
Implementation of shplonk
Implementation of fflonk (only the commitment)
Type of change
Please delete options that are not relevant.
How has this been tested?
Please describe the tests that you ran or implemented to verify your changes. Provide instructions so we can reproduce.
Checklist:
golangci-lint
does not output errors locally