Lune

EUROCRYPT2020Top-tier venue

Stacked Garbling for Disjunctive Zero-Knowledge Proofs

David Heath, Vladimir Kolesnikov

2020Year
55Citations
20Top-tier citations

Abstract

Zero-knowledge (ZK) proofs receive wide attention, especially with respect to non-interactivity, small proof size, and fast verification. We instead focus on fast total proof time, in particular for large Boolean circuits. Under this metric, Garbled Circuit (GC)-based ZK, originally proposed by Jawurek et al. ([JKO], CCS 2013), remains state-of-the-art due to the low-constant linear scaling of garbling.

We improve GC-ZK for proof statements with conditional clauses. Our communication is proportional to the longest clause rather than to the entire proof statement. This is most useful when the number of branches mm is large, resulting in up to m×m\times communication improvement over JKO.

In our proof-of-concept illustrative application, the prover demonstrates knowledge of a bug in a codebase consisting of any number of snippets of C code. Our computation cost is linear in the size of the codebase and communication is constant in the number of snippets. That is, we require only enough communication for the single largest snippet!

Our conceptual contribution is stacked garbling for ZK, a privacy-free circuit garbling scheme that, when used with the JKO GC-ZK protocol, constructs efficient ZK proofs. Given a Boolean circuit CC and computational security parameter κ\kappa, our garbling is LκL\kappa bits long, where LL is the length of the longest execution path in CC. All prior concretely efficient garbling schemes produce garblings of size ∣C∣κ|C|\kappa. The computational cost of our scheme is not increased over prior state-of-the-art.

We implemented our technique and demonstrate significantly improved performance. For functions with branching factor mm, we improve communication by m×m\times compared to JKO. Compared with recent systems (STARK, Libra, KKW, Ligero, Aurora, Bulletproofs), our scheme offers better proof times for large circuits: 35−1000×35-1000\times or more, depending on circuit size and on the compared scheme.

For our illustrative application, we consider four C code snippets. Each snippet has 30-50 LOC; one snippet allows an invalid memory dereference. The entire proof takes 0.15 seconds and communicates 1.5 MB.

Ask about this paper

Your agent reads all of it.

Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.

Questions to start from

Your agent calls

Luneget_paper_fulltext

Ask in Lune

Free to start. No credit card required.

lune papers fulltext 98e9b724-cc0d-45cf-a778-0896c8940d53

Cited by top-tier papers20

Ask how each one uses it

Builds on6

Related papers

Dusk over the sea between two cliffs drawn in fine vertical lines