The field of zero-knowledge proofs (ZKPs) has seen some amazing advances in the last several years. All of that progress, though, makes it difficult to keep up with the state of the art and see how all the pieces fit together. This post is my (ongoing) attempt to follow the impactful developments and trace some of the lines of inquiry.

To create some perspective, the following table puts things into chronological order and highlights some significant properties. It is derived from a spreadsheet I keep. The spreadsheet which may be more complete and up to date.

Caveat: The asymptotics for prover time, proof length, and verifier time are not exactly apples to apples. Different authors define their inputs in different ways and this table does not yet attempt to unify their notations.

YearProtocolSetupProverProof SizeVerifierRecurseFold
2013BSCTV 13 SNARKTrusted: Universal$O(n \log n)$$O(1)$$O(1)$
2013PinocchioTrusted: Circuit-specific
2016Groth16Trusted: Circuit-specific$O(n \log n)$$O(1)$$O(1)$No
2016HyraxTransparent$O(n + m * g)$$O(m + \sqrt w)$$O(m + \sqrt w)$No
2017BCG+
2017BulletproofsTransparent$O(n)$$O(\log n)$$O(n)$No?
2017LigeroTransparent$O(n \log n)$$O(\sqrt n)$$O(n)$No?
2018AuroraTransparent$O(n \log n)$$O(\log^2 n)$$O(n)$No?
2018STARKsTransparentO(n \log^2 n)$O(\log^2 n)$$O(\log^2 n)$Maybe?
2019FractalTransparent$O(n \log n)$$O(\log^2 n)$$O(\log^2 n)$Yes
2019HaloTransparent$O(n \log n)$$O(\log n)$$O(n)$Yes
2019LibraTrusted: Universal$O(n)$$O(d \log n)$$O(d \log n)$
2019PLONKTrusted: Updatable, Universal$O(n \log n)$
2019SonicTrusted: Updatable, Universal$O(n \log n)$$O(1)$$O(1)$
2019SuperSonicTransparent$O(n \log n)$$O(\log n)$$O(\log n)$
2019VirgoTransparent$O( C + n \log n )$$O (D \log C + \log^2 n)$$O( D \log C + \log^2 n)$
2020DoryTransparent
2020Halo InfiniteYes
2020MarlinTrusted: Updatable, Universal$O(n \log n)$
2020Quarks: KopisTransparent
2020Quarks: XiphosTransparent
2020Spartan CLTransparent$O(n \log n)$$O(\log^2 n)$$O(\log^2 n)$Yes?
2020Spartan DLTransparent$O(n)$$O(\sqrt n)$$O(\sqrt n)$Yes?
2020Spartan KETrusted$O(n)$$O(\log^2 n)$$O(\log^2 n)$Yes?
2020Spartan ROTransparent$O(n \log n)$$O(\log^2 n)$$O(\log^2 n)$Yes?
2021BrakedownTransparent$O(n)$
2021Brakedown: Shockwave
2021Nova$O(n)$$O(\log n)$$O(n)$ or $O(\log n)$YesYes
2022HyperPlonk$O(n)$
2022Orion$O(n)$$O(\log^2 n)$$O(\log^2 n)$
2022Plonky2Yes
2022SuperNovaYesYes
2023Binius
2023HyperNovaYesYes
2023ProtoGalaxyYesYes
2023ProtostarYesYes
2023SuperSpartan
2024LatticeFoldYesYes

<
Previous Post
Deep Learning: Variational Autoencoders
>
Blog Archive
Archive of all previous blog posts