1 unstable release

0.1.0 Jul 12, 2024

#11 in #root-hash

Download history 157/week @ 2024-07-10 33/week @ 2024-07-17 19/week @ 2024-07-24 5/week @ 2024-08-07 107/week @ 2024-08-14 92/week @ 2024-08-21 81/week @ 2024-08-28

285 downloads per month
Used in 48 crates (2 directly)

MIT/Apache

180KB
4K SLoC

In-memory Merkle tree

Simple in-memory binary Merkle tree implementation. The tree is of bounded depth (up to 1,024 leaves) and uses the keccak-256 hash function.

Benchmarking

The tree implementation comes with a criterion benchmark that can be run with a command like this:

cargo bench -p zksync_mini_merkle_tree --bench tree

The order of timings should be 2M elements/s for all tree sizes (measured on MacBook Pro with 12-core Apple M2 Max CPU), both for calculating the root and the root + Merkle path. This translates to approximately 130µs for a tree with 512 leaves (the tree size used for L2ToL1Logs).


lib.rs:

Crate allowing to calculate root hashes and Merkle proofs for small in-memory Merkle trees.

Dependencies

~32–47MB
~707K SLoC