

Protocol Study #5: Merkle Trees and How the Chain Remembers
Session 5 of the Zcash Protocol Study Series.
Topic: §3.8 (Note Commitment Trees) and §4.9 (Merkle Path Validity).
Session 4 unpacked the shielded transaction and kept leaning on one word: the anchor, the Merkle root a spend proves its note sits under. Session 5 opens that root up. A single ~32-byte root stands in for every shielded note that has ever existed. We read how a note commitment becomes a leaf, how the tree hashes upward to that root, and how a Merkle path lets you prove your note is in there without revealing which one.
The throughline: the note commitment tree is Zcash's shielded answer to Bitcoin's UTXO set, append-only, with the root as the anchor every spend points at. We also trace why the tree's hash function changed three times across pools (SHA-256 for Sprout, Pedersen for Sapling, Sinsemilla for Orchard) and what each change bought.
Live on the Zcash Global Discord stage. Recorded by Zcash Brazil with Portuguese translation.
PDF: https://zips.z.cash/protocol/protocol.pdf, we're reading §3.8 and §4.9.
Catch up on Session 4 (Transactions Unpacked: JoinSplit to Actions):
Full 13-session arc and canonical thread on the Zcash forum: https://forum.zcashcommunity.com/t/protocol-study-series-12-session-guided-reading-of-the-zcash-protocol-specification-starting-april-21/55350
Hosted by Mark Henderson (@shieldedmark), Shielded