jspωiki
Merkle Tree

Overview[1]#

Merkle Tree is a tree in which every non-leaf node is labelled with the hash of the labels or values (in case of leaves) of its child nodes.

Hash trees allow efficient and secure verification of the contents of large data structures. Hash trees are a generalization of hash lists and hash chains.

Demonstrating that a leaf node is a part of the given hash tree requires processing an amount of data proportional to the logarithm of the number of nodes of the tree;[1] this contrasts with hash lists, where the amount is proportional to the number of nodes.

The concept of hash trees is named after Ralph Merkle who patented it in 1979

Merkle Tree is a Distributed Ledger Technology (DLT) and the underpinnings of most Blockchain type implementations.

Common Uses#

Hash trees can be used to verify any kind of data stored, handled and transferred in and between computers.

Currently the main use of hash trees is to make sure that data blocks received from other peers in a peer-to-peer network are received undamaged and unaltered, and even to check that the other peers do not lie and send fake blocks.

Suggestions have been made to use hash trees in trusted computing systems.[4]

Hash trees are used in the

The original purpose of hash trees was to make it possible to efficiently handle many Lamport one-time signatures. Each Lamport key can only be used to sign a single message, but combined with hash trees they can be used for many messages, becoming a fairly efficient digital signature scheme known as a Merkle signature scheme.

More Information#

There might be more information for this subject on one of the following: