Skip to content

Commit

Permalink
SQUASH s/negation/subtraction/g
Browse files Browse the repository at this point in the history
  • Loading branch information
cjpatton committed Aug 21, 2024
1 parent 032e14c commit c8a0089
Showing 1 changed file with 6 additions and 7 deletions.
13 changes: 6 additions & 7 deletions draft-irtf-cfrg-vdaf.md
Original file line number Diff line number Diff line change
Expand Up @@ -3179,7 +3179,7 @@ encryption of it.
Validity is defined in terms of an arithmetic circuit evaluated over the
measurement. The inputs to this circuit are elements of a finite field that
comprise the encoded measurement; the gates of the circuit are multiplication,
addition, and negation operations; and the output of the circuit is a single
addition, and subtraction operations; and the output of the circuit is a single
field element. If the value is zero, then the measurement is deemed valid;
otherwise, if the output is non-zero, then the measurement is deemed invalid.

Expand All @@ -3190,18 +3190,17 @@ For example, the simplest circuit specified in this document is the following
C(x) = x * (x-1)
~~~

This circuit contains one negation gate (`-1`), one addition gate (`x + (-1)`),
and one multiplication gate (`x * (x + (-1))`). Observe that `C(x) = 0` if and
only if `x in range(2)`.
This circuit contains one subtraction gate (`x -1`) and one multiplication
gate (`x * (x -1)`). Observe that `C(x) = 0` if and only if `x in range(2)`.

Our goal is to allow each Aggregator, who holds a secret share of `x`, to
correctly compute a secret share of `C(x)`. This allows the Aggregators to
determine validity by combining their shares of the output.

Suppose for a moment that the validity circuit `C` is affine, meaning its only
operations are negation, addition, and multiplication-by-constant. (The circuit
above is non-affine because it contains a multiplication gate with non-constant
inputs.) Then each Aggregator can compute its share locally, since
operations are addition, subtraction, and multiplication-by-constant. (The
circuit above is non-affine because it contains a multiplication gate with
non-constant inputs.) Then each Aggregator can compute its share locally, since

~~~
C(x_shares[0] + ... + x_shares[SHARES-1]) =
Expand Down

0 comments on commit c8a0089

Please sign in to comment.