feat: Pedersen vector commitment scheme multi VK verification #527
+1,057
−679
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 changes the Pedersen commitment verification and verification key to support batch verifying multiple commitment POKs with different keys using a folded POK.
This is a breaking change to allow the folding to work.
Previously, keys are defined as:
and commitment and its POK for vector
aa
asthe verification of individual POK was
and batch verification
In this way however I didn't find a way to fold the POKs which may be useful to reduce the proof size in case of many commitments. However, if we change the definitions to
then the prover can already send
\sum_i r^i pok_i
on its own.Type of change
Please delete options that are not relevant.
How has this been tested?
Checklist:
golangci-lint
does not output errors locally