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

GKR public challanges are not correctly computed #69

Open
alireza-shirzad opened this issue Apr 4, 2023 · 3 comments
Open

GKR public challanges are not correctly computed #69

alireza-shirzad opened this issue Apr 4, 2023 · 3 comments

Comments

@alireza-shirzad
Copy link

Hi!
I think something is missing in the implementation. Please correct me if I'm wrong!

In each layer of the circuit we have 3 instances of the sumcheck protocol that can be performed in paraller but not entirely seperately! because these instances use the same public randomness provided by the verifier!
In this implementation, The GKRLinearSumchek works fine on its own, but is not applicable in the GKR scenario, since each instance uses its own randomness! In other words, in your implementation, each prover instance creates the randomness from the previous prover messages; However, all the prover messages should be summed and the randomness should be created upon the summed value.

Suggestion: I think it would be better if each instance had a handle to a common prover state.

Thanks

@Pratyush
Copy link
Member

Pratyush commented Apr 5, 2023

Hi Alireza,

This is a good idea; parallel composition/batching of the protocols should lead to big perf improvements for both the prover and the verifier. I'm not the maintainer of this code, and so wouldn't be comfortable implementing the change myself, but would be happy to review a PR for it!

@alireza-shirzad
Copy link
Author

Cool! I forked the repo and will create the PR soon.
BTW I think It would be better if the maintainer also confirmed my opinion. Since the Libra paper is somehow vague about this, I qoute from the paper:
"Due to linearity of the sumcheck protocol, the prover can execute these 3 instances simultaneously in every round, and sum up the individual messages and send them to the veriifer."

@Pratyush
Copy link
Member

Pratyush commented Apr 6, 2023

Awesome! The maintainer is @tsunrise , but I'm not sure of his availability nowadays.

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