Skip to content

Double checking of output #14

@Antonio95

Description

@Antonio95

Right now (in the single-output implementation), we are checking two separate things on the output gate:

  1. That it was computed honestly
  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions