I have been trying to integrate this library into my project. I have been getting some unexpectedly slow performance results when compared to Plonky3's WHIR implementation.
For example, with a target security level of 100 bits, a field size of 128 bits (using Field128 in this library), a pow_bits level of 20 bits, and all other settings set to this library's default, it takes ~144 seconds on my M4 Macbook to commit to a polynomial in 2^16 variables because the PoW takes so long.
Switching to a ~192 bit field does fix this, but I want to use a 128 bit field for reasons related to my project.
Looking into the code, Plonky3's WHIR uses the proximity gaps result of BCSS25 (https://eprint.iacr.org/2025/2055), see the code reference here.
This library's WHIR implementation uses the BCI+20 bound (code reference here).
Could you all please switch the proximity gaps bound? It is meaningful in making this library work for the parameter settings I am interested in.
I have been trying to integrate this library into my project. I have been getting some unexpectedly slow performance results when compared to Plonky3's WHIR implementation.
For example, with a target security level of 100 bits, a field size of 128 bits (using Field128 in this library), a pow_bits level of 20 bits, and all other settings set to this library's default, it takes ~144 seconds on my M4 Macbook to commit to a polynomial in 2^16 variables because the PoW takes so long.
Switching to a ~192 bit field does fix this, but I want to use a 128 bit field for reasons related to my project.
Looking into the code, Plonky3's WHIR uses the proximity gaps result of BCSS25 (https://eprint.iacr.org/2025/2055), see the code reference here.
This library's WHIR implementation uses the BCI+20 bound (code reference here).
Could you all please switch the proximity gaps bound? It is meaningful in making this library work for the parameter settings I am interested in.