Merkle tree
A binary hash tree where each parent is the SHA-256 hash of its two children, reducing a whole set of leaves to one root; Truestamp builds these trees over item and entropy observation hashes per block and over block hashes per epoch.
Overview
In Truestamp, a Merkle tree is a binary hash tree in which every parent node is the SHA-256 hash of its two children, so the single value at the top, the Merkle root, commits to every leaf below it. Truestamp hashes leaves under a 0x00 byte prefix and internal nodes under 0x01, sorts the leaves by key and pads out to a power of two, all described in depth in Truestamp’s Merkle tree. The trees appear in two layers: each internal block carries one tree whose leaves are the hashes of the items and entropy observations committed in that block, and each epoch carries a second tree whose leaves are block hashes. Membership of one leaf in a tree is proven with an inclusion proof, covered in Merkle inclusion proofs.
- An Introduction to Merkle Patricia Trie
- Angela: A Sparse, Distributed, and Highly Concurrent Merkle Tree
- Comprehensive Guide to Merkle Trees, Merkle Proofs, and Merkle Roots
- How Does OpenTimestamps Work (r/Bitcoin discussion)
- Merkle leaf
- Merkle root
- Merkle tree - Wikipedia
- Merkle Trees in Git and Bitcoin
- Ralph Merkle - Wikipedia
- Some Aspects of Merkle Tree - DEV Community
- Taproot: SegWit version 1 spending rules (BIP 341)
- Using Merkle Trees to Efficiently Detect Data Changes
- Why and how Bitcoin uses Merkle trees - Applied Mathematics Consulting
- Why do cryptocurrencies use Merkle trees instead of hashing all the data in the block in one go?