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

Refactor API to allow other instantiations #4

Open
6 tasks
jdwhite48 opened this issue Jan 31, 2022 · 0 comments
Open
6 tasks

Refactor API to allow other instantiations #4

jdwhite48 opened this issue Jan 31, 2022 · 0 comments
Labels
restructure The API could be organized better

Comments

@jdwhite48
Copy link
Owner

jdwhite48 commented Jan 31, 2022

While many regard the most efficient instantiation for Groth-Sahai to be under the SXDH instantiation (and using Type-III setting in general), it might be good to restructure the code to allow for other instantiations in the literature such as DLIN in the Type-I pairing setting [GS '08] or SDLIN extended to the Type-II pairing setting [GSW '10].

While I have had this in mind from the start, this still would require quite a bit of refactoring:

  • Figure out if Arkworks even supports curves besides Type-III pairing setting
  • Migrate all existing code into a folder that indicates that it is the SXDH instantiation
  • Generalize CRS to just have the commitment key vectors (u, v), with choice of generators left up to instantiation
  • Pull out the abstracted versions of Groth-Sahai components -- bilinear group definitions (B1, B2, BT), Equation, Statement, GSType, EquProof, etc.
  • Figure out how to generalize the 4 kinds of equations -- PPE, MSMEG1, MSMEG2, Quadratic
  • Introduce more traits as needed to generalize the Groth-Sahai construction further
@jdwhite48 jdwhite48 added the restructure The API could be organized better label Jan 31, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
restructure The API could be organized better
Projects
None yet
Development

No branches or pull requests

1 participant