Skip to content

IPA PoC#31

Merged
arijitdutta67 merged 3 commits into
masterfrom
ad/ipa
Jan 12, 2023
Merged

IPA PoC#31
arijitdutta67 merged 3 commits into
masterfrom
ad/ipa

Conversation

@arijitdutta67

Copy link
Copy Markdown

This PR implements a proof of concept version of the inner product argument (IPA) polynomial commitment scheme as in https://eprint.iacr.org/2019/1021.pdf. The spec for the implementation is in https://hackmd.io/q-A8y6aITWyWJrvsGGMWNA?view.

@zac-williamson zac-williamson left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've left some comments describing future improvements.

The only action items before we merge are to remove the waffle namespace and to tidy up how L_elements and R_elements are populated (directly construct from partial_L and partial_R)

Once this is done I'm happy for the branch to be merged.

However I wouldn't consider this project truly complete until the following points are achieved:

  1. commit, ipa_prove and ipa_verify take in an SRS object instead of a vector of generators (and have this SRS class load the required points from disk like our KZG SRS)
  2. the SRS object contains a single pippenger_runtime_state object that is used to perform all pippenger computations (constructing pippenger_runtime_state is expensive)
  3. the Fiat-Shamir heuristic is used to generate the round challenges as part of the ipa_prove and ipa_verify algorithms. The InnerProductArgument class should have a Hash template parameter that defines which hash algorithm is used.
  4. methods are added that batch prove and batch verify multiple polynomial commitments

The above 4 points are required for the IPA commitment scheme to be used in a protocol like Honk or Plonk.

Comment thread cpp/src/aztec/honk/commitment_scheme/ipa/ipa.hpp Outdated
Comment thread cpp/src/aztec/honk/commitment_scheme/ipa/ipa.hpp
Comment thread cpp/src/aztec/honk/commitment_scheme/ipa/ipa.hpp
Comment thread cpp/src/aztec/honk/commitment_scheme/ipa/ipa.hpp
Comment thread cpp/src/aztec/honk/commitment_scheme/ipa/ipa.hpp
Comment thread cpp/src/aztec/honk/commitment_scheme/ipa/ipa.hpp Outdated
Comment thread cpp/src/aztec/honk/commitment_scheme/ipa/ipa.hpp
@arijitdutta67 arijitdutta67 merged commit 7ceb0c3 into master Jan 12, 2023
@arijitdutta67 arijitdutta67 deleted the ad/ipa branch January 12, 2023 11:53
arijitdutta67 added a commit that referenced this pull request Jan 12, 2023
This reverts commit 7ceb0c3.
dbanks12 pushed a commit that referenced this pull request Jan 26, 2023
PoC version without SRS, Fiat-Shamir, and batching.
dbanks12 pushed a commit that referenced this pull request Jan 27, 2023
PoC version without SRS, Fiat-Shamir, and batching.
ludamad pushed a commit to AztecProtocol/aztec-packages that referenced this pull request Jul 22, 2023
PoC version without SRS, Fiat-Shamir, and batching.
ludamad pushed a commit to AztecProtocol/aztec-packages that referenced this pull request Jul 22, 2023
ludamad pushed a commit to AztecProtocol/aztec-packages that referenced this pull request Jul 24, 2023
PoC version without SRS, Fiat-Shamir, and batching.
ludamad pushed a commit to AztecProtocol/aztec-packages that referenced this pull request Jul 24, 2023
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

Successfully merging this pull request may close these issues.

3 participants