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

Remove the need to multiply by powers of x^n in verifier #245

Open
ebfull opened this issue Apr 16, 2021 · 2 comments
Open

Remove the need to multiply by powers of x^n in verifier #245

ebfull opened this issue Apr 16, 2021 · 2 comments
Labels
A-recursion Area: Recursive proofs

Comments

@ebfull
Copy link
Contributor

ebfull commented Apr 16, 2021

We will start doing this soon so that the protocol is trivially zero-knowledge, but it's expensive inside the recursive circuit. One alternative is to switch back to what we were doing before (sending openings at x for each H commitment) at the cost of increasing the proof size, but this might be difficult or impossible to prove zero-knowledge.

@daira
Copy link
Contributor

daira commented May 25, 2021

Can you explain this in more detail, @ebfull?

@r3ld3v r3ld3v added this to the Core Sprint 2021-20 milestone May 26, 2021
@daira
Copy link
Contributor

daira commented May 28, 2021

@ebfull wrote:

We have this large degree polynomial h(X) that the prover needs to commit to. So we split it into several polynomials h1(X), h2(X), … each of degree at most n - 1. Then we open them all at x and take those openings and scale them by different powers of xn to get h(x). Problem is that the openings reveal info about h(X) that is difficult to blind. To get around this we instead scale the commitments themselves by powers of xn and combine them together and open them at x. This reveals no additional info about h(X) and makes the zero-knowledge argument simpler.

But it’s inefficient inside the recursive circuit to scale the commitments versus scaling the openings because powers of xn are arbitrary field elements. So we have to figure this out eventually, either take the performance hit or somehow blind h(X) further.

@str4d str4d removed the S-committed label Jul 19, 2021
@str4d str4d removed this from the Core Sprint 2021-28 milestone Jul 19, 2021
@str4d str4d added the A-recursion Area: Recursive proofs label Jul 22, 2021
han0110 pushed a commit to han0110/halo2 that referenced this issue Jan 25, 2024
* Expose mockprover data

* Fix issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-recursion Area: Recursive proofs
Projects
None yet
Development

No branches or pull requests

4 participants