Circuits
There are two zk-SNARK circuits in MACI: one which allows the coordinator to prove the correctness of each state root transition, and the other which proves that they have correctly tallied all the votes.
Note that the circuit pseudocode in this specification does not describe zk-SNARK outputs. The difference between inputs and outputs is only semantic. As such, we consider so-called outputs as values computed from inputs, and then verified via a public input designated as an output
in the circom code.
(Minimum Anti-Collusion Infrastructure, 2020, Koh Wei Jie: YouTube MACI Explainer)
(Minimum Anti-Collusion Infrastructure, 2020, Koh Wei Jie: YouTube MACI Explainer)
See: