! 
Series: Zcash site na First Principles . **Article 4 . Audience: newcomers. We build on Article 3 (hashing and commitments)Ọ bụrụ na ị maara ihe mkpịsị aka na nkwa bụ, ị dịla njikere. What you'll leave with: an intuitive, correct picture of Merkle trees, how to prove membership without revealing which item you mean, and exactly how this becomes Zcash's note commitment tree.
Ihe nke 0 described a "public board" that holds every note ever created and only ever grows. By now you can guess what's pinned to it: commitments (Article 3), the sealed envelopes. But a real board would hold hundreds of millions of them. How does the network store that, verify it, and let you prove your envelope is on the board without pointing to it? The answer is one of the most elegant structures in computer science: the Merkle tree.
Nsogbu abụọ na-apụta ozugbo i nwere nnukwu ndepụta nke ihe ndị ị ga-eme.
Problem one: integrity at scale. If the list has 300 million entries, how does anyone confirm that not one has been secretly altered? Re-checking 300 million items on every glance is hopeless.
Problem two: private membership. To spend a note (Article 0), you must prove your commitment is genuinely on the board. But if you point at it ("it's entry number 4,201,337!"), you've just deanonymized yourself. You need to prove "my envelope is somewhere on this board" without revealing which one.
A Merkle tree solves both at once. It compresses the entire list into a single fingerprint, and it lets you prove membership with a tiny, position-hiding proof.
Cheedị echiche banyere asọmpi nkwụsị, ma kama ndị egwuregwu ịga n'ihu, a na-ejikọta akara mkpịsị aka.
! 
Otu ihe kachasị mkpa na-esote ozugbo site na mmetụta avalanche (Nkeji edemede 3):
The root is a fingerprint of everything below it. Change any leaf, even by one bit, and its fingerprint changes, which changes its parent, which changes that parent, all the way up. The root changes. So one small root value certifies the integrity of the entire list. That solves Problem one.
Ka anyị wuo osisi nwere akwụkwọ anọ dị n'elu ya na mkpịsị aka SHA-256 n'ezie na akwụkwọ A, B, C, D (a na-egosipụta ihe ndị a na-egosi maka ịgụ ihe):
hA = 559aead08264... hB = df7e70e50215...
hC = 6b23c0d5f35d... hD = 3f39d5c348e5...
hAB = H(hA , hB) = 63956f0ce48e...
hCD = H(hC , hD) = 98a2fbfddbc7...
ROOT = H(hAB , hCD) = 1b3faa3fcc5e...
Ihe niile bụ "hash ihe, mgbe ahụ hash ụzọ abụọ nke hashes. " Ọ dịghị ihe dị iche karịa Nkeji edemede 3, ahaziri n'osisi.
Ugbu a nsogbu nke abụọ. Kwuo na ị chọrọ igosi na akwukwo C na osisi, nye onye maara naanị mgbọrọgwụ. ị * adịghị * enye ha osisi ahụ dum. ị nye ha naanị mkpịsị aka dị mkpa iji rịgoro site na ya C na mgbọrọgwụ, a na-akpọ ** ụzọ nyocha ** (ma ọ bụ ** ihe akaebe Merkle **):
Iji gosi
Cdị n'osisi ahụ, nye:
- nwanne ya nwoke
hD, na- nwanne nna ya
hAB.
Onye nyocha ahụ, na-ama naanị mgbọrọgwụ, na -agbakọ ịrị elu:
step 1: H(hC , hD) = hCD (combine C with its sibling)
step 2: H(hAB , hCD) = ROOT? (combine with the uncle)
Gbakọọ maka n'ezie: nke a na-enye 1b3faa3fcc5e..., nke ** kwekọrọ na mgbọrọgwụ.** A na-egosi na akwụkwọ ahụ dị n'osisi ahụ.
! 
Ihe abụọ na-eme ka nke a dị ike:
n akwụkwọ na-enye gị naanị ihe dịka ** log_2 ((n) ** hashes. Maka otu ijeri akwụkwọ, nke ahụ bụ ihe dị ka ** 30 hashes **, ọ bụghị otu puku ijeri. Ihe akaebe ahụ na-eto ngwa ngwa ka osisi ahụ gbawara na nha.Ugbu a, anyị nwere ike ikwu kpọmkwem ihe isiokwu 0's "n'ihu ọha osisi" n'ezie bụ:
The note commitment tree is a Merkle tree whose leaves are note commitments. Every time a note is created anywhere in the world, its commitment is appended as the next leaf, and the root is updated.
Ihe ole na ole doro anya:
2^(32) (ihe karịrị ijeri anọ)! 
The tree proves a note exists. It does not, by itself, stop you from spending the same note twice. That job belongs to the nullifier set from Article 0: a separate collection of "void tokens." When you spend, you publish the note's nullifier, and the network rejects any nullifier it has seen before.
So the two public structures play complementary roles, and keeping them separate is exactly what severs the link between a note's birth and its death:
| Ọdịdị | Azịza ya | Emelitere mgbe |
|---|---|---|
| Rịba ama osisi nkwa | "Ndetu a ọ dị?" | E mepụtara ndetu e (etinyere nkwa) |
| Nchịkọta ihe na-emebi ihe | "E mefurula akwụkwọ a?" | E tinyere ndetu n'ọrụ (ebipụtara ihe na-emebi ihe) |
Simplifications, as usual. Real incremental Merkle trees track "frontier" nodes so the root can update without rebuilding everything; the network keeps a window of recent anchors, not just the latest, so wallets aren't broken by every new block; and empty leaves use a defined padding value. We also drew binary trees with neat powers of two. None of this changes the intuition: leaves of commitments, hashed in pairs up to one root, with short membership proofs. The exact bookkeeping returns in the protocol article.
| Oge okwu | Nkọwa Bekee dị mfe |
|---|---|
| Merkle tree | Osisi nke hashes; akwụkwọ bụ akara mkpịsị aka data, ndị nne na nna na-emegbu ụmụ ha |
| Leaf | Ọnụ ala; na Zcash, nkwa otu ihe ndetu |
| Merkle root | Mkpisi aka elu nke otu na-achịkọta osisi ahụ dum |
| Authentication path / Merkle proof | Ihe ndị nwanne kwesịrị iji gosi na akwụkwọ dị n'osisi ahụ |
| Incremental Merkle tree | Osisi Merkle nke naanị ya na-agbakwunye (a na-etinye akwụkwọ naanị mgbe niile) |
| Anchor | Mgbọrọgwụ Merkle nke na-ezo aka dị ka "ọnọdụ osisi m na-egosi megide" |
| Nullifier set | Nchịkọta dị iche iche nke ihe nrịbama emefuru nke na-egbochi mmefu okpukpu abụọ |
** Gịnị mere e ji nwee osisi kama ịbụ ogologo ndepụta nke hashes? ** Ndepụta dị larịị ga-amanye gị ikpughe ma ọ bụ nyochaa ntinye ọ bụla iji gosipụta ịbụ onye otu. Osisi na-enye gị ihe akaebe nke logarithmic na otu mgbọrọgwụ maka iguzosi ike n'ezi ihe.
Onye nyocha ahụ ọ chọrọ osisi ahụ dum? Mba, naanị ihe onye nyocha ahụ chọrọ bụ mgbọrọgwụ tinyere ụzọ nkwenye gị dị mkpirikpi.
Gịnị kpatara omimi 32 kpọmkwem? It bounds the tree at about four billion notes, which is ample headroom, while keeping the membership proof (and its in-circuit cost) a fixed, manageable size.
** Ọ bụrụ na mgbọrọgwụ na-agbanwe na ọkwa ọhụrụ ọ bụla, kedu ka ihe akaebe ochie si dị irè? ** Netwọk ahụ na-echeta windo nke mgbọrọgwụ ndị na-adịbeghị anya (anchor), yabụ nkwenye emere megide arịlịka ochie ka na-enyocha.
N'osisi anyị nwere akwụkwọ anọ, ka e were ya na onye na-awakpo anyị zoro ezo gbanwee akwụkwọ ya C for a different value but leaves the published root unchanged. What goes wrong for them, and why can't they fix it quietly? (Answer below.)
Ịgbanwe C mgbanwe hC (mmetụta avalanche), nke na-agbanwe hCD = H(hC, hD), nke gbanwere ROOT = H(hAB, hCD). So the recomputed root no longer matches the published root, and the tampering is detected. To "fix it quietly" they'd need to find a different C nke na-emepụta otu hC, nke bụ a hash nkwekọrịta, unfeasible site Nkeji edemede 3.
Article 5 . Zero-knowledge proofs: the crescendo. We've now built notes, commitments, and the tree, and we keep saying "proven in zero knowledge." Article 5 finally explains how you can prove a statement is true, that your note is in the tree, that your nullifier is correct, that money balances, while revealing none of it.