Reading the Phoenix circuit constraints stopped me. On Dusk $DUSK #dusk @Duskfoundation the Transfer Contract never looks at the actual note values or which Merkle leaf is spent. It only checks a PLONK proof that the private inputs satisfy five conditions: the note hash opens against a recent Merkle root of notes, the prover knows the note secret key, the nullifier equals Poseidon(npk′ ‖ position), the output commitments open correctly, and the sum of input values equals outputs plus fee plus any deposit. Nullifiers themselves are published so the network can reject reuse. Because each is derived from the hidden note key and position, no observer can map a nullifier back to a specific leaf. Validity lives entirely inside circuit satisfaction; the contents never appear on the ledger. What changed for me was realizing double-spend protection and balance integrity both sit inside the proof rather than any visible state change. Next check: whether every accepted Phoenix transaction’s published nullifiers stay unique in the on-chain nullifier set after finality. @Dusk