You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Merkle tree hashing is a significant bottleneck in blockchains.
In most (all?) blockchains and in particular Ethereum, efficient storage/retrieval/update as well as integrity guarantees of data is implemented through a Merkle-Tree or other hash trees (Merkle Patricia Trie for Ethereum).
Those require computing hashes from the leaves to the root of the tree. In particular the latest way to accelerate syncing a whole blockchain, 800GB+ of data for Ethereum execution layer (accounts/transactions) involve only downloading the leaves and reconstructing the Merkle tree locally. (https://github.com/ethereum/devp2p/blob/40ab248/caps/snap.md)
* sha256: separate message scheduling and state updates to help implement specific use-cases like #205; also implement SSSE3 acceleration (2006, Intel Core 2 Duo)
* sha256: simplify update flow, store less metadata in context
* sha256: Fix reworked update function
* Implement x86 hardware SHA acceleration
* typo
Merkle tree hashing is a significant bottleneck in blockchains.
In most (all?) blockchains and in particular Ethereum, efficient storage/retrieval/update as well as integrity guarantees of data is implemented through a Merkle-Tree or other hash trees (Merkle Patricia Trie for Ethereum).
Those require computing hashes from the leaves to the root of the tree. In particular the latest way to accelerate syncing a whole blockchain, 800GB+ of data for Ethereum execution layer (accounts/transactions) involve only downloading the leaves and reconstructing the Merkle tree locally. (https://github.com/ethereum/devp2p/blob/40ab248/caps/snap.md)
Besides, the consensus layer is also extremely hashing intensive with everything being serialized in a "merkleizable" wire format, SimpleSerialize (SSZ): https://github.com/ethereum/consensus-specs/blob/9a2fcc0/ssz/simple-serialize.md#merkleization.
Note that the Execution Layer uses hexary Merkle tree (16 leaves per node) while the Consensus Layer is binary (2 leaves per node).
Writeups:
Note: Bitcoin has similar needs
Benchmarks:
Mammon being optimized for tree hashing
Beyond blockchains, while there are many usecases for Merkle trees
The text was updated successfully, but these errors were encountered: