Ragu & Tachyon
Home
  • Scaling Zcash
  • An Introduction to Proof-Carrying Data
  • Statements and Challenges
  • Arithmetization
  • QAP and Polynomial Encoding
  • Polynomial Commitments
  • The Inner Product Argument
  • Batched Openings
  • The Complete Proof
  • Recursive Proofs
  • Accumulation
  • Split Accumulation
  • Curve Cycles
  • Revdot Folding
  • Wiring and the Registry
  • Endoscalars
  • Staging
  • Recursion in Ragu
  • Notes, Nullifiers, and Tachygrams
  • Pool State and Anchors
  • Oblivious Sync
  • The Proof Tree
  • Aggregation and Bundles
Final Recap
  • Notation
  • Glossary
  • Curves
Home
  • Scaling Zcash
  • An Introduction to Proof-Carrying Data
  • Statements and Challenges
  • Arithmetization
  • QAP and Polynomial Encoding
  • Polynomial Commitments
  • The Inner Product Argument
  • Batched Openings
  • The Complete Proof
  • Recursive Proofs
  • Accumulation
  • Split Accumulation
  • Curve Cycles
  • Revdot Folding
  • Wiring and the Registry
  • Endoscalars
  • Staging
  • Recursion in Ragu
  • Notes, Nullifiers, and Tachygrams
  • Pool State and Anchors
  • Oblivious Sync
  • The Proof Tree
  • Aggregation and Bundles
Final Recap
  • Notation
  • Glossary
  • Curves

Ragu & Tachyon

Unofficial notes on a proving system, from first principles

Unofficial notes

Ragu & Tachyon

Learn how the Ragu proving system works and how Project Tachyon uses it, starting from linear algebra, hashes, and discrete log. These notes are unofficial and assume no knowledge of proving systems.

Start reading 24 chapters
πproof
C = ⟨a, G⟩
p(x) = v
step
depth

Contents

Chapters

Read in order, or jump directly to the idea you need.

01

2 chapters

The Problem

Trace the costs Tachyon addresses and the kind of proof it uses to address them.

Chapter 01Δ

Scaling Zcash

Trace state growth and wallet sync costs to the design of nullifiers and in-band notes.

Read chapter
Chapter 02π → π′

An Introduction to Proof-Carrying Data

See what proofs that carry forward across a tree of steps make possible.

Read chapter
02

7 chapters

The Structure of a Proof

Follow one statement through arithmetization, polynomial encoding, commitments, and openings.

Chapter 03r

Statements and Challenges

Define statements and witnesses, then use random challenges to catch false claims.

Read chapter
Chapter 04⟨r, r̂⟩

Arithmetization

Express a computation as constraints, ending in one revdot equation, with a short comparison to R1CS and PLONK.

Read chapter
Chapter 05h(X)

QAP and Polynomial Encoding

Learn the standard QAP reduction, then see how Ragu reaches a polynomial check without it.

Read chapter
Chapter 06C

Polynomial Commitments

Build Pedersen commitments and turn a polynomial evaluation into an inner product claim.

Read chapter
Chapter 07L, R

The Inner Product Argument

Halve an inner product claim round by round and locate the linear verifier cost.

Read chapter
Chapter 08α, β

Batched Openings

Reduce many evaluation claims to one using quotient polynomials.

Read chapter
Chapter 09r(X)

The Complete Proof

Assemble every earlier step into one proof, without recursion yet.

Read chapter
03

4 chapters

Recursion

Replace full recursive verification with deferred checks.

Chapter 10π

Recursive Proofs

Realize proof-carrying data by proving the verification of earlier proofs.

Read chapter
Chapter 11acc

Accumulation

Defer the expensive IPA check and merge deferred claims, following Halo.

Read chapter
Chapter 12acc.V

Split Accumulation

Fold public instances separately from witnesses, so a NARK is enough.

Read chapter
Chapter 13𝔽p, 𝔽q

Curve Cycles

Use the Pasta cycle to keep group and field arithmetic native on each side.

Read chapter
04

5 chapters

Ragu

Study the parts of the recursive construction specific to Ragu.

Chapter 14k(Y)

Revdot Folding

Reduce many revdot claims to one with a two-layer protocol.

Read chapter
Chapter 15s(X,Y)

Wiring and the Registry

Check wiring consistency across many circuits without verification keys.

Read chapter
Chapter 16ζ

Endoscalars

Share challenges across the cycle and reduce scalar multiplication costs.

Read chapter
Chapter 17stage

Staging

Commit to a circuit trace in stages and keep inputs consistent between circuits.

Read chapter
Chapter 18fuse

Recursion in Ragu

Assemble internal circuits, public inputs, and compression into a full PCD step.

Read chapter
05

5 chapters

Tachyon

Apply Ragu to a shielded protocol without perpetual nullifier state.

Chapter 19nf

Notes, Nullifiers, and Tachygrams

Follow a note from its key hierarchy to the values it publishes.

Read chapter
Chapter 20anchor

Pool State and Anchors

Commit to the pool with a Poseidon hash chain over stamps and epochs.

Read chapter
Chapter 21Δ(X)

Oblivious Sync

Delegate proofs of nullifier absence without revealing the note.

Read chapter
Chapter 22step

The Proof Tree

Walk through each proof step from note creation to a spend.

Read chapter
Chapter 23stamp

Aggregation and Bundles

Merge stamps across transactions and study the resulting on-chain format.

Read chapter
06

1 chapter

Final Recap

Connect the protocol layers in a single example.

Chapter 24Σ

Final Recap

Trace one Tachyon spend through every layer of the system.

Read chapter
A

3 chapters

Appendix

Look up notation, terms, and curve parameters used across the chapters.

A1⟨a, b⟩

Notation

The symbols used for groups, vectors, and polynomials.

Read chapter
A2A–Z

Glossary

One-line reminders, each linked to the chapter that teaches the term.

Read chapter
A3E

Curves

The toy curve cycle used in worked examples, and the Pasta curves.

Read chapter
Ragu & Tachyon. Unofficial notes, not affiliated with the Ragu or Tachyon projects.