You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As you can see the witness assignment function takes as input lhs and rhs of typeF. Because of that this trick had to be performed in order to extract F from an assigned cell as pass it to the chip.
The problem of such implementation is that a circuit assignment function is conditional on a witness value being Some. This is dangerous because "the keygen synthesises the circuit without having access to the witness; whereas the prover runs synthesis with the witness. Since this closure is conditioned on witness values being Some, it will only execute in the prover, meaning we would end up with an inconsistent circuit structure cf. keygen."
Create PR to Zkevm
Modify our circuit accordingly
The text was updated successfully, but these errors were encountered:
The bug has been discussed here
The root cause of the problem is the design of the
assign
function from the LTChip gadget from the zkevm.As you can see the witness assignment function takes as input
lhs
andrhs
of typeF
. Because of that this trick had to be performed in order to extractF
from an assigned cell as pass it to the chip.summa-solvency/src/chips/merkle_sum_tree.rs
Lines 338 to 350 in a7d0c1f
The problem of such implementation is that a circuit assignment function is conditional on a witness value being Some. This is dangerous because "the keygen synthesises the circuit without having access to the witness; whereas the prover runs synthesis with the witness. Since this closure is conditioned on witness values being Some, it will only execute in the prover, meaning we would end up with an inconsistent circuit structure cf. keygen."
The text was updated successfully, but these errors were encountered: