The proving key size is reduced because the extended Lagrange coefficients of fixed polynomials is not stored in the proving key. However this means this FFT computation is done by the prover. We need to benchmark further to determine whether we want this prover speed tradeoff for the decrease in proving key size and decreased memory usage.
I have also removed the shuffle API because it is not supported by snark-verifier.
We have decided that the reduction in memory bandwidth and proving key size is worth the performance overhead, so this will be merged as halo2-axiom release v0.4.0.
Cherry-picked from https://github.com/taikoxyz/halo2/pull/6 however the original PR for this is https://github.com/scroll-tech/halo2/pull/28
In the process of debugging I also cherry-picked https://github.com/taikoxyz/halo2/pull/4 as cleanup.
The proving key size is reduced because the extended Lagrange coefficients of fixed polynomials is not stored in the proving key. However this means this FFT computation is done by the prover. We need to benchmark further to determine whether we want this prover speed tradeoff for the decrease in proving key size and decreased memory usage.
I have also removed the shuffle API because it is not supported by
snark-verifier
.Preliminary benchmark on my laptop: Using https://github.com/axiom-crypto/halo2-lib/tree/0df530e6e29a591a6c7030953a140163e8991bd3 for keccak shard + aggregation.
On
main
branch without this PR:Using this PR:
Aggregation circuit stats:
We have decided that the reduction in memory bandwidth and proving key size is worth the performance overhead, so this will be merged as
halo2-axiom
releasev0.4.0
.