Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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 IPA / Part1 #377
Remove IPA / Part1 #377
Changes from all commits
e69386e
ba23a98
ec3ab13
012e5c7
b6f4082
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why are the blinders removed? 🤔
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ditto (
Please, take note that I removed everything that the compiler said as "unused", that are just few things.
)There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did some research.
Found that
blinder
s are really used in IPA commitment scheme.But, when @kilic and @han0110 introduce the KZG commitment scheme, they didn't use this
blinder/r
in commitment scheme.51d523d#diff-928bb816879ab4beb4d0ad6d02b06d158f760aa2e95f410b2694e0f803e57486R167-R171
I believe the reason is that it(
ParamsKZG::commit_lagrange
) should be compatible with existing IPA scheme, at that time.In other words, the
blinder/r
is not needed for KZG scheme.If so, we can safely remove all of these
blinder/r
features from codebase.Plus, update
ParamsKZG::commit_lagrange
function definition.Overall, I think it is better to get to know exact reason, before removing this feature from codebase.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure, more knowledge is always good.
@guorong009, are you talking about changing the function definition from
to ?
if yes, this needs refactoring in other parts of the code that I think that is better to do it in another PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also,
Params::commit
function. @adria0There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm looking a bit more into this. I hadn't realized that KZG was completely ignoring blinders.
I don't think there is any bugs in the proving system though, because it was always being called with
Blind::default()
.It seems wrong that there is no possibility to blind the witnesses... where is the zk then?
This has been a point of discussion in the past (#73 #76) but I ignore what came out of these.
@han0110 Could you comment on this? Are we blinding witnesses at some other level, or did we just remove zk?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we still have zk, by blinding witnesses at other level.
The
ProverMulti::commit_phase
has the logic of adding random scalars intoblinding_factors
rows of witness/advice columns.The columns to be blinded or not, are determined by
unblinded_advice_columns
.I think nobody uses this feature in circuit development.
In above 2 PRs, they discuss whether/how to remove the
blinding_factors
row logic from the codebase.As long as we "blind" some rows of witness columns, there would be no way for exposing the witness polys as is.
Hence, I think we can remove extra
blinder/r
feature from codebase.I believe they come from the
IPA
scheme which needs explicit hiding value -r
, for poly commitment.Anyway, hope to get confirmation from @han0110 or @kilic .
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see. If that is the case I'm fine with removing the blinders 👍