Reckle trees is a new vector commitment based on succinct RECursive arguments and MerKLE trees. Reckle trees' distinguishing feature is their support for succinct batch proofs that are updatable.
This repository contains the circuits from the paper:
"Reckle Trees: Updatable Merkle Batch Proofs with Applications," Charalampos Papamanthou, Shravan Srinivasan, Nicolas Gailly, Ismael Hishon-Rezaizadeh, Andrus Salumets, and Stjepan Golemac.
git clone [email protected]:Lagrange-Labs/reckle-trees.git
cd reckle-trees
rustup override set nightly-2024-01-21
cargo test rec_benches --release -- --nocapture # Optimized Reckle trees (Figure 4)
cargo test bucket_benches --release -- --nocapture # Optimized Reckle trees + bucketing (Section 3.7)
cargo test dt_benches --release -- --nocapture # Digest translation (Figure 7)
cargo test bls_benches --release -- --nocapture # BLS pk aggregation (Figure 8)
# Baseline: Monolithic circuits (Section 5.3)
cargo test dt_mono_benches --release -- --nocapture
cargo test bls_mono_benches --release -- --nocapture
Note:
- Modify
log_tree_sizes
andlog_subset_sizes
to set the tree sizes and the subset sizes, respectively - Increase the sample size of the benchmarks to collect reliable measurements
Please see the license here.
Special thanks to Nicolas Gailly and the Lagrange Engineering team for their support with this work.