AztecProtocol / barretenberg

Apache License 2.0
126 stars 77 forks source link

ECCVM: properly handle transcript polynomial univariate evaluations #768

Open ledwards2225 opened 7 months ago

ledwards2225 commented 7 months ago

The ECCVM needs to open the five ECC op transcript polynomials as univariates so consistency can be established in the Translator. This was overlooked in the original implementation. For now, we've introduced a new round to the ECCVM protocol that establishes a batched univariate opening claim for this purpose. This is inefficient in that it requires an entirely separate IPA opening protocol. Ideally we would find a way to batch everything into one IPA opening which may require shplonk.

Note: IPA cannot handle polynomials for which the latter half of the coefficients are 0. This arises in general for our transcript polynomials since the ECCVM has a large fixed size that may not be fully utilized. To get around this we simply batch the constant polynomial 1 in with the other 5. This is likely not a long term solution.

maramihali commented 2 months ago

Benchmark for native IPA image

maramihali commented 2 months ago

Idea to avoid two IPA openings without reviving Shplonk: https://hackmd.io/_dcQgfPjTPutOopViZLv-Q

maramihali commented 2 weeks ago

https://github.com/AztecProtocol/aztec-packages/pull/7164 removes the need for a second opening but we still need the hack_polynomial for IPA to work.