{
  "type": "option",
  "name": "Spartan",
  "slug": "spartan",
  "section": {
    "id": "proof-systems",
    "number": "01",
    "title": "Choosing a proof system",
    "url": "https://zkpick.com/proof-systems/"
  },
  "url": "https://zkpick.com/proof-systems/spartan/",
  "markdown": "https://zkpick.com/md/proof-systems/spartan.md",
  "category": "Transparent SNARK for R1CS",
  "summary": "Spartan: Transparent SNARK for R1CS. Setup: None (commitment-dependent). Proof size: Depends on commitment. On-chain verification: Not a settlement candidate alone. PQ: Commitment-dependent. Recursion: Used inside larger systems. Maturity: Established construction, widely built upon. Prover cost profile: Sumcheck over sparse R1CS; no FFT; linear in non-zero constraint entries. Peak prover memory: Low and streaming-friendly. Off-chain verifier: Sublinear after preprocessing; commitment-dependent. Implementations and maintainers: Spartan (Microsoft Research), inside Jolt (a16z crypto) and Nexus. Where it is measured: Only inside zkVM benchmarks. Choose it when: An intermediate proof layer, or the theoretical core of a zkVM — particularly when you want to change commitment schemes without changing arithmetisation.",
  "description": "A transparent SNARK for R1CS built on sumcheck and a multilinear commitment, with sublinear verification after preprocessing and no FFTs. Its distinguishing property is that the commitment scheme is swappable.",
  "notes": [],
  "sections": [],
  "strengths": [
    "No trusted setup, and the commitment is swappable — so post-quantum posture becomes a separate, independent choice",
    "No FFT in the prover; costs are linear in the number of constraint entries",
    "The sumcheck structure has become the foundation for much newer work"
  ],
  "tradeoffs": [
    "Proof size and verifier cost are worse than pairing-based SNARKs; not an EVM settlement candidate alone",
    "Concrete performance depends almost entirely on the chosen commitment, so 'Spartan is fast' is not a meaningful statement unqualified",
    "The reference implementation is a research artefact rather than a maintained product"
  ],
  "bestFit": "An intermediate proof layer, or the theoretical core of a zkVM — particularly when you want to change commitment schemes without changing arithmetisation.",
  "maintainers": "Srinath Setty (Microsoft Research, 2019). Implementations: Spartan (Microsoft Research), inside Jolt (a16z crypto) and Nexus",
  "maturity": "Established construction, heavily built upon",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "source": "https://eprint.iacr.org/2019/550",
  "facts": [
    {
      "table": "Proof system selection matrix",
      "url": "https://zkpick.com/proof-systems/#proof-systems-matrix-spartan",
      "name": "Spartan",
      "setup": "None (commitment-dependent)",
      "size": "Depends on commitment",
      "verify": "Not a settlement candidate alone",
      "pq": "Commitment-dependent",
      "recursion": "Used inside larger systems",
      "maturity": "Established construction, widely built upon"
    },
    {
      "table": "Prover profile, implementations and benchmarks",
      "url": "https://zkpick.com/proof-systems/#proof-systems-matrix-2-spartan",
      "name": "Spartan",
      "prover": "Sumcheck over sparse R1CS; no FFT; linear in non-zero constraint entries",
      "memory": "Low and streaming-friendly",
      "offchain": "Sublinear after preprocessing; commitment-dependent",
      "impls": "Spartan (Microsoft Research), inside Jolt (a16z crypto) and Nexus",
      "bench": "Only inside zkVM benchmarks"
    }
  ],
  "relatedFailureModes": [],
  "sources": [
    {
      "title": "Spartan — efficient and general-purpose zkSNARKs without trusted setup",
      "url": "https://eprint.iacr.org/2019/550",
      "kind": "paper"
    }
  ],
  "updated": "2026-09-12",
  "version": "1.3",
  "canonical": "https://zkpick.com/proof-systems/spartan/",
  "authors": [
    "MarketComp"
  ]
}