Evervault Papers
Crypto means cryptography
The most important cryptography papers spanning the past, present, and future of cryptosystems & cryptology.
On the (Im)possibility of Obfuscating Programs
Computer Systems Established, Maintained and Trusted by Mutually Suspicious Groups
A Digital Signature Based on a Conventional Encryption Function
A Digital Signature Based on a Conventional Encryption Function
Ralph C. Merkle — Published August 1987
In this Paper, Ralph C. Merkle devised the concept of Merkle trees. Merkle trees provide an efficient way to store data, saving memory and processing power.
At the heart of Merkle trees is hashing. Hash functions are algorithms for computing a unique, fixed-length value (a hash) from data. A small change in the input of a hash function changes the hash value entirely; hashes are unique. Hash functions are one-way; hash values cannot be reversed to reveal the input. Merkle trees depend on hash uniqueness to organize and verify data.
A Merkle tree is a tree of hashes. Each parent node in the tree has two or more child nodes. The original child nodes in the tree store hashes of plaintext data. The hash of a set of child nodes (sibling nodes) creates the hash of the parent node — a hash of a hash. This process of hashing continues all the way up until the root hash — the final hash in the tree.
If at any point in the tree, the input of a hash is changed, this change will show in consequent hashes — including the root hash. Merkle proofs are used to verify that the hashes across all branches of the Merkle tree have not been tampered with.
Merkle trees are a core component of cryptocurrencies like Bitcoin and Ethereum.
Download PDF