We noticed that in KeccakSpongeStark, we are storing the len in an extra column and check that the final number of absorbed bytes is equal to the length, and that the length corresponds to the value in CpuStark.
This should actually be doable without storing the length in KeccakSpongeStark: we can directly reconstruct it using already_absorbed_bytes and is_final_input_len, and then compare that linear combination to the value in CpuStark.
This results in one less column in KeccakSpongeStark and fewer constraints in this PR.
We noticed that in
KeccakSpongeStark
, we are storing thelen
in an extra column and check that the final number of absorbed bytes is equal to the length, and that the length corresponds to the value inCpuStark
. This should actually be doable without storing the length inKeccakSpongeStark
: we can directly reconstruct it usingalready_absorbed_bytes
andis_final_input_len
, and then compare that linear combination to the value inCpuStark
. This results in one less column inKeccakSpongeStark
and fewer constraints in this PR.