An arithmetic circuit turns a computation into linked addition and multiplication gates. Inputs may be public or private, and values flow toward one or more outputs. section 15.1.2
General-purpose MPC evaluates the circuit in three broad steps:
- Share private inputs while leaving public inputs visible. section 15.1.2
- Evaluate each gate: additions can be local, while multiplications require interaction. section 15.1.2
- Reconstruct the output, or keep intermediate shares separate for continued computation. section 15.1.2
A conditional computation as constraints
A function selecting between a × (b + 3) and a + b can be represented by w × (a × (b + 3)) + (1 − w) × (a + b) = v, where w is 0 or 1. Such equations let a verifier check whether inputs and outputs match a valid execution. section 15.3.6 section 15.3.7
Figure 15.3 An arithmetic circuit is a number of addition or multiplication gates linking inputs to outputs. In the figure, values travel from left to right. For example, d = a + b. Here, the circuit only outputs one value f = a + b + bc, but it can in theory have multiple output values. Notice that different inputs to the circuit are provided by different participants, but they could also be public inputs (known to everyone).
Diagram the circuit as addition and multiplication gates linking participant or public inputs to outputs. section 15.1.2
