# What is a nullifier?

A nullifier is a unique value published when a private note is spent. It lets the chain reject a second spend of the same note without revealing which note was spent.

## The double-spend problem

On a public ledger, stopping a double spend is easy because every coin is visible. In a shielded pool the chain cannot see which note is being spent. So every note has a nullifier, derived from the note and its owner’s secret key. Spending publishes the nullifier, the contract records it, and any later spend with the same nullifier fails.

## Why it does not give the note away

Without the owner’s key, nobody can compute which commitment a nullifier belongs to. Observers see that some note was spent, never which one.

## In Redacted

In Redacted a nullifier retires each spent note forever, so a note can be spent only once, and the mark it leaves points to no note in particular.

More: [Architecture](https://redacted.gg/docs/protocol/architecture.md)

## Related terms

- [Commitment](https://redacted.gg/glossary/commitment.md): A commitment locks in a piece of data without revealing it. Later it can be opened and anyone can check that it matches, but until then it gives nothing away and cannot be changed.
- [Note](https://redacted.gg/glossary/note.md): A note is a sealed entry on-chain that records coins in Redacted’s Reserve and that only your keys can open. From the outside all notes look alike, whoever owns them and whatever they hold.
- [Zero-knowledge proof](https://redacted.gg/glossary/zero-knowledge-proof.md): A zero-knowledge proof lets someone prove that a statement is true without revealing anything else, for example that they own funds and may spend them, without showing which funds or who they are.
- [Shielded pool](https://redacted.gg/glossary/shielded-pool.md): A shielded pool holds funds as private notes inside a smart contract. Deposits and withdrawals are public, but what happens inside is proved with zero-knowledge proofs and does not reveal who owns what.

Sources: [Zcash protocol specification](https://zips.z.cash/protocol/protocol.pdf)
---

Page: https://redacted.gg/glossary/nullifier/
