mina
mina copied to clipboard
fix all-zero public input
@mrmr1993 can we close this one?
https://github.com/o1-labs/proof-systems/pull/724
This is still in progress. The current approach is to hard-code the blinding in kimchi and pickles, which has reduced the number of changes needed.
- The kimchi side -- 'blinding' the public input commitment using
h
, the vanishing polynomial -- is tested and working as intended. - The pickles side is nearly done. The main blocker is that the representation of constants in the code generated by proof-systems
master
is broken; I am digging into this so that I can resume testing.
I was working on a more general approach, which allowed all commitments to be blinded, by propagating the blinding constants via the expression framework. For example, the polynomial term
blinded_column(x) * (witness[0](x) * witness[1](x) - witness[2](x))
equivalent to
(unblinded_column(x) + h(x)) * (witness[0](x) * witness[1](x) - witness[2](x))
gives an additional blinding factor of
h(x) * (witness[0](x) * witness[1](x) - witness[2](x))
that is currently not accounted for, and which we need to integrate into the opening proof.
I believe that we should still do this -- or switch all rows to be evaluated, as we've discussed recently -- but the reduced version should be ready very soon.