A one-byte change starts at one leaf.

highlighted = computed this step

Only chunk C changes

The original C chunk is 0xcc. The changed chunk is 0xcd.

C:0xcc0xcdC: 0xcc\to0xcd
Change one chunkA toy Merkle tree recomputes only the affected path.Change one chunk - changed root 0froot 0fchanged rootAB 65unchangedA aaunchangedB bbunchangedCD aarecomputedC cdchanged leafD ddunchanged

The C leaf changes

With this toy one-byte hash, changed C hashes to 0xcd.

H(cd)=0xcdH(cd)=0xcd
Change one chunkA toy Merkle tree recomputes only the affected path.Change one chunk - changed root 0froot 0fchanged rootAB 65unchangedA aaunchangedB bbunchangedCD aarecomputedC cdchanged leafD ddunchanged

The other leaves stay put

A, B, and D are unchanged, so their leaf hashes still read 0xaa, 0xbb, and 0xdd.

A,B,D unchangedA,B,D\text{ unchanged}
Change one chunkA toy Merkle tree recomputes only the affected path.Change one chunk - changed root 0froot 0fchanged rootAB 65unchangedA aaunchangedB bbunchangedCD aarecomputedC cdchanged leafD ddunchanged

Summary

The changed leaf is C=0xcd.

C=0xcdC=0xcd
Change one chunkA toy Merkle tree recomputes only the affected path.Change one chunk - changed root 0froot 0fchanged rootAB 65unchangedA aaunchangedB bbunchangedCD aarecomputedC cdchanged leafD ddunchanged