Multi-Party Proof Generation in QAP-based zk-SNARKs

Multi-Party Proof Generation in QAP-based zk-SNARKs


Multi-Party Proof Generation in QAP-based zk-SNARKs


Ali Rahimi, Mohammad Ali Maddah-Ali Department of Electrical Engineering, Sharif University of Technology


Zero-knowledge succinct non-interactive argument of knowledge (zkSNARK) allows a party, known as the prover, to convince another party, known as the verifier, that he knows a private value v, without revealing it, such that F (u, v) = y for some function F and public values u and y. There are various versions of zk-SNARK, among them, Quadratic Arithmetic Program (QAP)-based zk-SNARK has been widely used in practice, specially in Blockchain technology. This is attributed to two desirable features; its fixed-size proof and the very light computation load of the verifier. However, the computation load of the prover in QAP-based zkSNARKs, is very heavy, even-though it is designed to be very efficient. This load can be beyond the prover’s computation power to handle, and has to be offloaded to some external servers. In the existing offloading solutions, either (i) the load of computation, offloaded to each sever, is a fraction of the prover’s primary computation (e.g., DZIK), however the servers need to be trusted, (ii) the servers are not required to be trusted, but the computation complexity imposed to each one is the same as the prover’s primary computation (e.g., Trinocchio). In this paper, we present a scheme, which has the benefits of both solutions. In particular, we propose a secure multi-party proof generation algorithm where the prover can delegate its task to N servers, where (i) even if a group of T ∈ N servers, T ≤ N, collude, they cannot gain any information about the secret value v, (ii) the computation complexity of each server is less than 1 / ( N − T ) of the prover’s primary computation. The design is such that we don’t lose the efficiency of the prover’s algorithm in the process of delegating the tasks to external servers


Zero-knowledge, Quadratic Arithmetic Program