-
Notifications
You must be signed in to change notification settings - Fork 3
Description
Right now (in the single-output implementation), we are checking two separate things on the output gate:
- That it was computed honestly
- That the result of applying its operation to its inputs is equal to 1.
In practical terms, 1) doesn't add anything* as far as the verifier is concerned, since the statement that they are verifying is "the output of the circuit is 1" and 2 is enough to guarantee that. Therefore, we can consider removing check 1). However, aside from this needing a more careful security analysis, it would in any case open the door to proofs of correctness of assignments where the prover put a rogue non-one value in the output gate (as long as the Honest value of evaluating that gate on its inputs were indeed one). Let's give this some thought/make a decision.
*In the multi-output setting, this claim obviously doesn't hold if that output gate is also involved in the computation of other outputs.