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

Attach auth_length to AuthPath and SRS #10

Closed
burdges opened this issue Apr 2, 2020 · 5 comments
Closed

Attach auth_length to AuthPath and SRS #10

burdges opened this issue Apr 2, 2020 · 5 comments
Assignees

Comments

@burdges
Copy link
Collaborator

burdges commented Apr 2, 2020

At present, our circuit needs its auth_path to be length auth_depth, which I suppose avoids adding logical constraints that permit stopping early. How bad would such constraints be? Should we just publish a series of SRSs for different sizes? How deep does zcash's SRS support?

If otoh we keep the full length AuthPath, then we should reevaluate everywhere we pass Params because the AuthPath's length determines this too. We should of course ensure our main JubJub generator does not overlap with any generators used by Pedersen hashes if we select our SRS based on the AuthPath's length. lol

@swasilyev
Copy link
Collaborator

I'm not sure if i understand. The prover performance for a circuit is always worst-case. So by supporting smaller depth we just save some negligible computations outside the snark. Also the circuit, i guess, would grow 2x, by adding a conditional at each tree level.

@burdges
Copy link
Collaborator Author

burdges commented Apr 5, 2020

In that case, we should publish a series of SRSs for different sizes I suppose. I think the SRS and AuthPath should identify auth_length and the AuthPath should identify the root, from which it checks the PublicKey for #4. I've renamed this issue.

@burdges burdges changed the title Avoid full length AuthPath Attach auth_length to AuthPath and SRS Apr 5, 2020
@swasilyev
Copy link
Collaborator

That really depends on how we promote the SRS. If we still avoid many-participant MPC for the circuit-specific part of the setup, I would start with an SRS that supports the ring we need. For general use I would propose using the circuit with some circuit-agnostic (updatable-universal) setup, like Marlin. I will test it, after Zexe implementation of the circuit is ready.

@burdges
Copy link
Collaborator Author

burdges commented Apr 5, 2020

We're only talking about groth16 here :) Anything like marlin waits for another day. At this point
all mathematical questions appeared answered so this issue only concerns the interface.

@burdges burdges closed this as completed in a3e15ae Apr 5, 2020
@swasilyev
Copy link
Collaborator

I think I am wrong that circuit size would duplicate. It depends on the implementation. Anyway I don't see how it could be useful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants