Skip to content
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

Cleaning up / refactoring Marlin #27

Open
UlrichHaboeck75 opened this issue Aug 30, 2021 · 1 comment
Open

Cleaning up / refactoring Marlin #27

UlrichHaboeck75 opened this issue Aug 30, 2021 · 1 comment
Labels
enhancement New feature or request

Comments

@UlrichHaboeck75
Copy link

UlrichHaboeck75 commented Aug 30, 2021

Our Marlin code base deserves some cleaning up. We still have left-overs from Marlin's initial AHP which are not necessary due to the coboundary sumcheck, and there are some structural improvements by arkworks we might want to take over.
In short,

  • we can get rid of individual degree bounds in the AHP, and rebrand AHP to an algebraic oracle proof instead (to be in alignment with our paper),
  • we could move constraint system related traits (i.e. the large part of the ahp/constraint_system.rs file) to ginger (arkworks seems to have done that), and
  • we should move the matrix arithmetization to the indexer submodule.

Beyond that, I recommend to switch to the Lagrange kernel instead of the UnnormalizedBivariateLagrangePoly, even if it comes slightly costlier in circuit. This is mainly for the following reasons.

  • The matrix arithmetization step becomes much simpler (we simply index the non-zero entries of the plain R1CS matrices ), and
  • we are in full alignment with our paper and the security analysis therein.

If we keep with the generalized derivative, I at least opt to remove the double transposition of matrices: The indexer outputs the transpose of the representation with respect to the (non-normalized) kernel (to be in alignment with the lincheck from Fractal), and then again transposes the arguments for Marlin's t-polynomial in the inner sumcheck.

For details see the TODO's I have pushed in a separate branch inline_docu for our cargo doc.

@UlrichHaboeck75 UlrichHaboeck75 added the enhancement New feature or request label Aug 30, 2021
@UlrichHaboeck75
Copy link
Author

P.S.: As we need to stay compatible with the mainchain verifier, I'd opt to provide two versions of Coboundary Marlin in our repo: coMarlin, which is in full alignment with our paper, and coMarlin_gd which works with the generalized derivative.

@DanieleDiBenedetto DanieleDiBenedetto linked a pull request Feb 21, 2022 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant