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

How to do first iteration of ProtoGalaxy #740

Closed
maramihali opened this issue Oct 4, 2023 · 0 comments · Fixed by AztecProtocol/aztec-packages#4630
Closed

How to do first iteration of ProtoGalaxy #740

maramihali opened this issue Oct 4, 2023 · 0 comments · Fixed by AztecProtocol/aztec-packages#4630
Assignees
Milestone

Comments

@maramihali
Copy link
Contributor

At the first iteration of PG protocol there is no accumulator (i.e. Instance with FoldingParams set) and there are two ways to go through the protocol. Writing down notes from a conversation with Zac.

Option 1 (more expensive)

Transform an Instance into an Accumulator: this can be done by having the verifier send a challenge beta to the prover and prover computes vec{beta} as powers of beta and then run the protocol as usual. ('beta is referred to as the gate separation challenge in the codebase).

Option 2

Run the protocol with an empty accumulator. This saves us the work ok computing F (the perturbator polynomial) at the first iteration and so F(alpha) = 0. Then vec{beta*) will be entirely dependent of challenges alpha and delta. The rest of the iteration runs as normal.

@maramihali maramihali added this to the Protogalaxy milestone Oct 4, 2023
@maramihali maramihali self-assigned this Dec 18, 2023
@maramihali maramihali removed their assignment Jan 18, 2024
lucasxia01 added a commit to AztecProtocol/aztec-packages that referenced this issue Feb 20, 2024
This work makes the first iteration of protogalaxy more efficient by removing the perturbator computation in just the first iteration. We can do this because in the first iteration, there is no accumulator, so we're just folding instances together. Because of this, we can assume that f_i(\omega) is 0 for all i. This seems suspicious, but this assumption is fine because if the instances were not valid (some f_i(\omega) is not 0), folding invalid instances would yield an invalid accumlator so it wouldn't matter in the end. Normally, we can't do this because f_i(\omega) for a correct accumulator is not all 0s, as \omega is some folded thing.

Fixes AztecProtocol/barretenberg#740.
AztecBot pushed a commit that referenced this issue Feb 21, 2024
This work makes the first iteration of protogalaxy more efficient by removing the perturbator computation in just the first iteration. We can do this because in the first iteration, there is no accumulator, so we're just folding instances together. Because of this, we can assume that f_i(\omega) is 0 for all i. This seems suspicious, but this assumption is fine because if the instances were not valid (some f_i(\omega) is not 0), folding invalid instances would yield an invalid accumlator so it wouldn't matter in the end. Normally, we can't do this because f_i(\omega) for a correct accumulator is not all 0s, as \omega is some folded thing.

Fixes #740.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants