Ad/IPA uses Fiat-Shamir#244
Closed
arijitdutta67 wants to merge 11 commits intomasterfrom
Closed
Conversation
Closed
codygunton
reviewed
Mar 20, 2023
| * @return true/false depending on if the proof verifies | ||
| */ | ||
| static bool reduce_verify(std::shared_ptr<VK> vk, const Proof& proof, const PubInput& pub_input) | ||
| static bool reduce_verify(std::shared_ptr<VK> vk, |
There was a problem hiding this comment.
To follow the idiom established in KZG, we would use a class ipa::VerificationKey to avoid passing the vk as an argument here.. I see you defined this and tested it but that you don't use it. Apologies if I forgot a discussion on this--did you explain why you chose this approach?
Author
There was a problem hiding this comment.
This problem stems from the fact that ipa::VerificationKey class does not take ownership of SRS and pippenger_runtime_state (we have an issue for this here
ipa::reduce_verify for MSM unlike other PCSs. These parameter are set by calling a constructor in commitment_key.test.cpp here. Under this settings, we access these parameters by passing the vk shared ptr as argument to ipa::reduce_verify in ipa_test.cpp here.This was a due point in PR #205, and we decided to go with this keeping this as an issue (#236). In the current PR, we somehow solved the issue with
reduce_prove by using the transcript. But I could not see a path to resolve it for reduce_verify. Please let me know if this makes sense. I shall record this in the issue #236.
|
done by #367 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description
This PR mainly add transcript to
ipaso that it can use the implicit hash function to generate Fiat-Shamir challenges. Followings are the main changes made:aux_challengewhich is computed asaux_challenge = Hash(Commit, challenge, evaluation). Thisaux_challengeis used to generateaux_generatorasaux_generator = srs_element[poly_degree] * aux_challenge.log(n)number of round challenges are generated asu_j = Hash(L_j, R_j)in thejth round wherenis the degree of the polynomial.reduce_provemethod. These challenges are accessed from the transcript in thereduce_verifymethod.G_vec_localfromreduce_verifymethod as it was unnecessary.mock_manifestinipa.test.cppto test the transcript functionality related only toipa.Checklist:
/markdown/specshave been updated.@briefdescribing the intended functionality.