
Zcash’s founding principle is ledger indistinguishability: all shielded transactions look like random data paired with a proof of validity. This ensures nobody can tell who’s paying whom or how much. But scaling that privacy is a brutal systems problem.
The biggest bottleneck for Zcash today isn’t raw proving speed. As the world finally wakes up to the need for privacy in blockchains and finance, the real challenge lies elsewhere: keeping wallets and validators in sync.
Shielded transactions must remain perfectly indistinguishable, which means every wallet is forced to scan and trial-decrypt every single transaction, just to find its own. Meanwhile, validators must maintain an ever-growing global set of nullifiers to stop double-spends.
That design works at a small scale. But under real load, it begins to collapse, wallets crawl, state balloons, and the very privacy guarantees that make Zcash valuable start to weigh the system down.
Tachyon is a redesign that attacks these bottlenecks directly. A way to make shielded payments scale without compromising privacy, by shifting the heavy lifting from consensus to wallet synchronization, and then compressing it all back down with recursive proofs. It reuses existing primitives (SNARKs, accumulators, nullifiers) but rearranges the architecture so that syncing, storage, and verification become efficient.
Right now, Zcash wallets grind through every ciphertext onchain just to check if a note is theirs. This brute-force model works in theory, but in practice, it drags; the more shielded transactions there are, the slower every wallet becomes. Validators also waste blockspace storing ciphertext that 99.9% of users will never need.
Tachyon rewrites this flow. Instead of forcing ciphertexts into every transaction, note secrets are shared offchain, via URIs, secure channels, or merchant APIs. Onchain, all that remains are the cryptographic commitments and their proofs.
The result is a protocol that’s leaner by design:
Wallets don’t have to “download and try everything.”
Sync becomes lightweight and near-instant.
Validators stop hauling around irrelevant ciphertext.
Think of it like moving from a full-table scan in a database (check every row, every time) to indexed queries (jump straight to what you need). The global data footprint shrinks, responsibility shifts to wallets + external channels, and privacy scales without suffocating the system.
The breakthrough in Tachyon is Proof-Carrying Data (PCD), powered by recursive proving (Halo 2). Instead of treating history as something validators must replay forever, PCD allows a wallet to compress its entire account state into a succinct recursive proof. Every new update extends this chain, so validators no longer re-execute history; they just check the latest proof.
PCD has its roots in academic cryptography (Bitansky–Chiesa–Ishai–Ostrovsky–Paneth), where each message is coupled with a proof of validity for both itself and the prior message. What’s new is that Halo 2 makes recursion practical without a trusted setup, and Zcash is the only deployed system using it at scale.
The result: wallets become self-proving machines, validators can prune aggressively, and throughput scales without weakening privacy.
PCD basics: Each statement (e.g., “wallet state at time is valid”) is paired with a proof by definition:
This essentially changes the scaling story. Instead of validators replaying the whole history, they only need to check one succinct proof. Wallets act like personal zk-rollups, rolling their full transaction history into a single recursive proof. And in my opinion, this isn’t just an optimization, it’s a fundamental re-architecture of how private state is verified and maintained.
Nullifiers are the “spent markers” that prevent double-spending. Currently, every Zcash validator must store the entire nullifier set forever, a global keystore that grows linearly with usage, which is sustainable at low volume, but at scale, it becomes a state bloat problem. Tachyon is a redesign of how nullifiers are derived so that wallets can sync through untrusted servers without revealing ownership or Merkle tree position.
In Orchard, nullifiers are derived using a circuit-efficient pseudorandom function (PRF) keyed by a special nullifier key. Each note has unique per-output randomness, ensuring that once it’s spent, the resulting nullifier is unique and can never be reused. This guarantees no double-spends, but also means the set of nullifiers must be tracked indefinitely.
Today: Validators must track all nullifiers forever. This makes the nullifier set an append-only structure that only grows as usage grows.
Tachyon: Redesigns nullifier handling so that wallets can synchronize through untrusted servers without revealing which nullifier belongs to them or where it sits in the Merkle tree. Validators still enforce integrity, but they wouldn’t need to hold the entire global set explicitly.
Think of it like an encrypted search index: a server can update your wallet’s inclusion proofs, but it has no idea what it’s updating for.
You can think of it like an encrypted search index: a server can update your wallet’s inclusion proofs, but it has no idea what it’s updating for.
Why it matters:
Wallets no longer need to crawl the entire nullifier set.
Sync becomes oblivious, your device stays current without leaking ownership.
Mobile wallets (like Zashi) become lightweight, fast, and private by default.
Conceptually, this shifts validators away from ever-growing tracking toward verifying succinct accumulator or state proofs, while wallets outsource updates without exposing their secret keys.
Recursive proofs don’t just compress history; they also compress blocks. Multiple shielded transactions aggregate into one succinct proof, which validators can check in a single step. With state pruning, almost everything from each transaction is stripped before it ever hits the chain, and what remains is pruned aggressively.
The effect is that the Zcash ledger starts to look like a distributed key–value store with an append-only log of “test-and-set” operations, verified by recursive SNARKs. It’s lean, elegant, and inherently private because there’s simply less metadata to analyze.
How it works:
Recursive SNARKs allow multiple transaction proofs to be aggregated into a single succinct proof.
Validators verify just that proof, not each transaction independently.
With proof-carrying data, pruning is possible: keep only the latest commitments and nullifiers, discard everything else.
In effect, the ledger evolves into:
Append-only log of test-and-set operations:
[tx1] key1 → spent
[tx2] key2 → spent
...
All validated by one recursive proofWhere the chain becomes a distributed key–value store: commitments in, nullifiers out. And, almost everything that clutters a transaction today is stripped before it ever hits the ledger, and what remains is pruned.
For users: Wallet lag disappears. Mobile ZEC finally feels instant. Mobile UX improves.
For cypherpunks: Ledger indistinguishability is preserved, but scaled through recursion + oblivious sync.
For ZEC holders: Shielded pool grows deeper, anonymity strengthens, and adoption becomes realistic at scale.
Validator costs also shrink and nodes prune aggressively, thereby further improving decentralization.
Today: Tachyon:
─────────── ───────────
- Heavy sync - Fast sync
- Wallet lag - Snappy UX
- Bloating chain - Pruned state
- Weak pools - Deeper pools
Tachyon is the first time Zcash looks like it can break the adoption bottleneck without compromising privacy. By reorganizing the protocol around out-of-band secrets, proof-carrying wallets, oblivious sync, and recursive aggregation, it consolidates Zerocash into something closer to a succinct append-only key-value store.
Tachyon makes Zcash less like a heavy encrypted blockchain and more like a succinct, self-verifying ledger. This is how private money scales.
For token-maxis: this strengthens ZEC’s bullish narrative.
For cypherpunks: this is privacy tech that doesn’t cut corners.
For the Zcash community: this is how shielded pools scale to billions of transactions.
Zcash Orchard Book: Nullifiers. (providing the detailed construction).
Tachyon: Explains the design proposals for shifting wallet sync, recursive proofs, and oblivious synchronization. Sean Bowe
Nullifiers are derived from a PRF keyed by a nullifier key (nk) with per-note randomness (ρ, ψ), ensuring uniqueness and preventing double-spends. Orchard Nullifiers
Proof-Carrying Data (PCD) formalization: by Bitansky–Chiesa–Ishai–Ostrovsky–Paneth; Proof-Carrying Data (2011)
Halo 2 recursion enables SNARK proofs to verify other SNARK proofs efficiently without a trusted setup. Zcash Halo 2
Share Dialog
This means the new proof not only certifies , but also verifies .
Recursion with Halo 2: Halo 2 implements polynomial IOPs with an inner-product commitment scheme that allows a SNARK proof to verify another SNARK proof efficiently. No trusted setup is required, unlike Groth16.
In Tachyon: Every wallet update comes with a recursive proof that subsumes its history. The validator checks , which implies all prior states
where valid.
Lucid Samuel
All comments (0)