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

Commit-and-Prove Marlin #43

Open
weikengchen opened this issue Nov 12, 2020 · 5 comments
Open

Commit-and-Prove Marlin #43

weikengchen opened this issue Nov 12, 2020 · 5 comments
Labels
D-easy Difficulty: easy P-low Priority: low T-design Type: discuss API design and/or research

Comments

@weikengchen
Copy link
Member

This issue is just to remark a useful variant of Marlin with the property of commit-and-prove. Basically, the verifier does not know the input but instead obtains a commitment of the input. Later, separately, the prover may open the commitment.

Based on the diagram, it seems the main change is as follows:

  • The prover sends a polynomial commitment of x and the evaluation of x on challenge \beta.
  • The prover changes the corresponding opening information of the outer sumcheck.
  • The verifier changes the outer sumcheck and changes the PC check for this outer sumcheck.

This variant can be a fork or a configuration option. The constraints PR would add an option for recursive, which commits the vanishing polynomials. This could be a separate option.

More discussion on commit-and-prove SNARK can be found in https://eprint.iacr.org/2019/142.

@weikengchen
Copy link
Member Author

weikengchen commented Nov 12, 2020

Note that the option is not a simple bool. It may be more appropriate as a usize, as for the hiding bound needed for the commitments, since the prover may want to open the polynomial many times.

The AHP would "consume" one hiding.

@Pratyush
Copy link
Member

It's actually even a commit-and-prove SNARK wrt the witness

@weikengchen
Copy link
Member Author

It is already a commit-and-prove SNARK wrt the witness.

@weikengchen
Copy link
Member Author

It is now implemented in a separate branch: https://github.com/arkworks-rs/marlin/tree/commit-and-prove
Note that this branch should not be merged, since it only supports commit-and-prove, not the general use.

I guess we will leave it there for a moment.

@Pratyush Pratyush added D-easy Difficulty: easy P-low Priority: low T-design Type: discuss API design and/or research labels Sep 9, 2021
@Pratyush
Copy link
Member

Pratyush commented Sep 9, 2021

We can merge this into masster, maybe by introducing a prove_committed and verify_committed API. Maybe these APIs should go into ark-snark as part of a new trait?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
D-easy Difficulty: easy P-low Priority: low T-design Type: discuss API design and/or research
Projects
None yet
Development

No branches or pull requests

2 participants