In Appendix D of the yellow paper for Ethereum, it describes the Modified Merkle Patricia Tree, and states:

Any series of bytes may also trivially be viewed as a series of nibbles, given an endian-specific notation; here we assume big-endian. Thus:

Latex of formula

What is the purpose of this translation?


It allows you traverse the tree one "hex value" at a time. (Or: Each character in a hash or address is one nibble in size.)

  • 1 byte => 0xFF
  • 1 nibble => 0xF (we're really concerned with just the F)

The path from the root node to a leaf node describes a hex string - e.g. an account address or transaction hash. Each layer you descend in the tree equates to a hex character. A nibble is basically just a single hex character, whereas a byte is two. You could use a byte, and just use half of it, but then the tree would take up twice as much space.

  • Thanks! A really concise way to describe it. Sounds like its the same as why we wouldn't use two letters for each edge in a radix tree. – kbambridge Mar 24 '19 at 0:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.