Kaspa One Stop

In brief

This page is source-sensitive. Treat application, covenant, proof, and readiness wording as bounded by the listed public sources and Open Questions.

What this page explains#

Groth16 background explains circuits, witnesses, proving keys, verifying keys, proof bytes, public inputs, and trusted setup context. This page sits in ZK, Groth16, And RISC Zero Succinct. It gives the topic a plain-language handle first, then shows the working idea, the mechanism, the source trail, and any limits that still matter. This category separates proof verification from application validity. Groth16 and RISC Zero Succinct can verify selected statements, while covenant scripts, successor checks, source limits, and accepted evidence still carry separate responsibility.

The writing follows a simple Kaspa documentation pattern: answer the practical question first, then link outward for details. The closest public sources for this page are PAPER-GROTH16, ARK-GROTH16, DOC-TOCCATA-INLINE-ZK. Local notes can help choose what to explain, but public-facing references resolve to upstream websites, repositories, papers, release pages, or docs.

How to think about it#

The practical model starts by naming the layer that owns the topic: wallet use, node operation, consensus, transaction validation, Toccata script behavior, tooling, or research. From there, the page shows which public source can support the explanation and where the explanation becomes incomplete.

For Groth16 Overview, the model is built around these anchors: the paper is research background; Arkworks helps explain implementation vocabulary; Kaspa source defines the on-chain verifier boundary; public inputs must bind to app state; trusted setup and circuit choice are app responsibilities. This model is useful, but it does not encode every constant, branch, error type, or edge case. Those details belong in the source path and the source notes.

How it works#

1. the paper is research background. Groth16 material should identify the statement, circuit, verifying key, proof bytes, and public inputs before discussing Kaspa script integration. A valid Groth16 proof means the verifier accepted that statement under that key and input set. It does not by itself prove that the successor output, covenant ID, network, fee, or accepted-state evidence is correct.

2. Arkworks helps explain implementation vocabulary. Groth16 material should identify the statement, circuit, verifying key, proof bytes, and public inputs before discussing Kaspa script integration. A valid Groth16 proof means the verifier accepted that statement under that key and input set. It does not by itself prove that the successor output, covenant ID, network, fee, or accepted-state evidence is correct.

3. Kaspa source defines the on-chain verifier boundary. Groth16 material should identify the statement, circuit, verifying key, proof bytes, and public inputs before discussing Kaspa script integration. A valid Groth16 proof means the verifier accepted that statement under that key and input set. It does not by itself prove that the successor output, covenant ID, network, fee, or accepted-state evidence is correct.

4. public inputs must bind to app state. A proof output is useful only when the application binds it to the old state, new state, covenant ID or script context, and public input or journal. Without that binding, a valid proof may still be irrelevant to the UTXO transition being spent.

5. trusted setup and circuit choice are app responsibilities. Groth16 material should identify the statement, circuit, verifying key, proof bytes, and public inputs before discussing Kaspa script integration. A valid Groth16 proof means the verifier accepted that statement under that key and input set. It does not by itself prove that the successor output, covenant ID, network, fee, or accepted-state evidence is correct.

This mechanism section separates proof verification from application validity. A verifier result still needs script binding, covenant checks, transaction validity, and accepted-state evidence before an app claim is closed.

How to check it#

StepCheckEvidence gate
1Check the paper is research background.Read PAPER-GROTH16, ARK-GROTH16, DOC-TOCCATA-INLINE-ZK; verify proof format, tag, cost, public input or journal binding, and script failure cases.
2Check Arkworks helps explain implementation vocabulary.Read PAPER-GROTH16, ARK-GROTH16, DOC-TOCCATA-INLINE-ZK; verify proof format, tag, cost, public input or journal binding, and script failure cases.
3Check Kaspa source defines the on-chain verifier boundary.Read PAPER-GROTH16, ARK-GROTH16, DOC-TOCCATA-INLINE-ZK; verify proof format, tag, cost, public input or journal binding, and script failure cases.
4Check public inputs must bind to app state.Read PAPER-GROTH16, ARK-GROTH16, DOC-TOCCATA-INLINE-ZK; verify proof format, tag, cost, public input or journal binding, and script failure cases.
5Check trusted setup and circuit choice are app responsibilities.Read PAPER-GROTH16, ARK-GROTH16, DOC-TOCCATA-INLINE-ZK; verify proof format, tag, cost, public input or journal binding, and script failure cases.

When using this page for ZK material, separate proof verification from application validity. Check the verifier path, proof format, public inputs or journal, compute cost, covenant binding, failure cases, and accepted evidence before claiming a transition is valid.

  • 03-opzkprecompile-tags-and-costs
  • zk-groth16-risczero
  • 05-groth16-kaspa-verifier-source-path
Source-linkedReviewed 2026-07-09 · 3 public sources · 1 open questionEvidence and sources
Evidence and sources3 public sources · reviewed 2026-07-09
Inline ZKPublic source
docs.kaspa.org/toccata/inline-zk
Technical details

Reference key: DOC-TOCCATA-INLINE-ZK

Recheck this public source before relying on exact current details.

Groth16 PaperResearch paper
eprint.iacr.org/2016/260
Technical details

Reference key: PAPER-GROTH16

Recheck this public source before relying on exact current details.