- Sorting makes the root a pure function of the set of blocks, so two parties that assembled the same knowledge in different orders agree.
- The Merkle Tree Hash of RFC 9162 §2.1.1
avoids the duplicate-leaf ambiguity a naive tree admits
(CVE-2012-2459), by splitting at the largest power of
two below
nand hashing leaves and internal nodes under different prefixes.
Why the identifier still says
rfc6962. RFC 9162 obsoletes RFC 6962 and defines the same tree —
same empty hash, same 0x00/0x01 prefixes, same split — so no root changes when the citation moves.
The identifier names the construction, not the document that describes it, and renaming it would
announce a change of tree where none happened. It would also be a hard break: a client refuses a
composition whose layout it does not implement, so every published brain would stop opening. The /1
suffix is what moves if the construction ever does.SHA-256(""), which is MTH({}) in §2.1.1.
Computing a root
Inclusion proofs
Membership is provable inO(log n), without holding the rest of the module. Verification follows
RFC 9162 §2.1.3.2, which is where the algorithm
is actually written down — RFC 6962 defined the proof and left verification to the reader.
Swapping the layout
MerkleLayout is a protocol, so a deployment can commit to a different tree — but both sides must agree,
which is why the layout name travels in every ModuleRef.