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

Increase blinding level for KZG #130

Open
lopeetall opened this issue Apr 12, 2022 · 2 comments
Open

Increase blinding level for KZG #130

lopeetall opened this issue Apr 12, 2022 · 2 comments
Assignees
Labels
D-easy Difficulty: easy good first issue Good for newcomers P-high Priority: high T-bug Type: bug

Comments

@lopeetall
Copy link
Collaborator

lopeetall commented Apr 12, 2022

In this PR we used the method from this post from Daniel Lubarov https://mirprotocol.org/blog/Adding-zero-knowledge-to-Plonk-Halo to update our blinding method to one that does not increase the degree of polynomials.

This method is sound, but the post was written for Halo2-style polynomial commitments which are hiding by nature, meaning they need one less blinding factor than commitments which are not hiding, like KZG. I checked with Daniel Lubarov who confirmed this.

Blinders for KZG commitments need to be incremented by 1. This amounts to adding 1 more row of blinding factors to the wire polynomials, and 1 more pair of rows of blinding factors to the permutation polynomial.

@lopeetall lopeetall added good first issue Good for newcomers D-easy Difficulty: easy P-high Priority: high T-bug Type: bug labels Apr 12, 2022
@bhgomes
Copy link
Collaborator

bhgomes commented Apr 12, 2022

It would be nice to have a function that applies n-levels of blinding so that we can just figure out the correct n for the PolynomialCommitment scheme we're using and call this function.

@lopeetall
Copy link
Collaborator Author

Also would be good to have a test for each kind of PolynomialCommitment that attempts to break ZK. A comprehensive test that catches any ZK bug may not be possible (?) but it should be possible to write a naive test that can catch insufficient blinding levels at least.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
D-easy Difficulty: easy good first issue Good for newcomers P-high Priority: high T-bug Type: bug
Projects
None yet
Development

No branches or pull requests

4 participants