@MidnightNetwork

This morning I was stepping through Midnight's nullifier set and something stopped me.

There are no UTXO identifiers in it.

Just hashes.

For a moment I thought I was looking at the wrong table. Row after row of hashes with nothing that tells you which coin each entry came from.

The set confirms that coins have been spent.

But it never records the coins themselves.

A UTXO can disappear from the spendable set and the ledger confirms it happened, yet the object that was spent never appears anywhere in the record.

The network enforces a rule about a coin it never actually sees.

That's the strange part.

The spend is confirmed.

The coin remains invisible.

I started thinking of that moment as a blind spend.

A state where a coin disappears from the system without the ledger ever holding the coin itself.

When a shielded UTXO is spent, Midnight computes a nullifier from the UTXO identifier and the owner's secret. That hash enters the global nullifier set. Validators check the set before accepting any transaction. If the nullifier already exists, the spend is rejected.

$NIGHT only really matters here if the nullifier set stays collision resistant as shielded transaction volume grows. Because the entire double spend model depends on those hashes never colliding.

What kind of ledger confirms a coin was spent without ever recording the coin that existed?

#night #Night