This is the homepage for Mangiafuoco, the implementation of a designated-verifier, LWE-based zk-SNARK from Square Span Programs [GMNO18].

A zk-SNARK is a non-interactive, succinct, zero-knowledge argument of knowledge. It allows to prove knowledge of a witness for any $\mathsf{NP}$ statement, without revealing any information about the witness itself. The proof size is constant in the security parameter. Square Span Programs are an efficient characterization of the complexity class $\mathsf{NP}$ for boolean circuits. They have been introduced by Danezis et al. [DFGK14]. are currently implemented in libraries such as libsnark.

SNARKs are nowadays used for delegating computation, electronic cryptocurrencies, and anonymous credentials. Yet, all current implementations are based on so-called pre-quantum assumptions and, for this reason, are not expected to withstand cryptanalitic efforts over the next few decades. Here we implement an LWE scheme and benchmark the computations of prover and verifier.