Skip to main content
Version: v0.x

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.

zk-SNARKs used in MACI (Minimum Anti-Collusion Infrastructure, 2020, Koh Wei Jie: YouTube MACI Explainer)

zk-SNARKs and what they do for MACI (Minimum Anti-Collusion Infrastructure, 2020, Koh Wei Jie: YouTube MACI Explainer)

See: