MCPcopy Index your code
hub / github.com/Lagrange-Labs/reckle-trees

github.com/Lagrange-Labs/reckle-trees @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
180 symbols 283 edges 42 files 7 documented · 4%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Reckle Trees

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.

Instructions

git clone git@github.com: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 and log_subset_sizes to set the tree sizes and the subset sizes, respectively - Increase the sample size of the benchmarks to collect reliable measurements

License

Please see the license here.

Acknowledgements

Special thanks to Nicolas Gailly and the Lagrange Engineering team for their support with this work.

Extension points exported contracts — how you extend this code

CircuitBuilderInnerProof (Interface)
(no doc) [1 implementers]
src/reckle_std/binary_circuits.rs

Core symbols most depended-on inside this repo

len
called by 53
src/utils/mt_binary.rs
connect_targets
called by 15
src/utils/helpers.rs
verify
called by 9
src/utils/mt_binary.rs
prove
called by 9
src/bls/provers.rs
prove
called by 8
src/reckle_std/provers.rs
compute_pw
called by 6
src/reckle_std/provers.rs
compute_pw
called by 6
src/digest_translation/provers.rs
prove
called by 6
src/digest_translation/provers.rs

Shape

Method 80
Function 57
Class 42
Interface 1

Languages

Rust100%

Modules by API surface

src/utils/helpers.rs23 symbols
src/utils/mt_binary.rs19 symbols
src/reckle_std/binary_tree.rs10 symbols
src/reckle_std/provers.rs8 symbols
src/reckle_bucket/provers.rs8 symbols
src/digest_translation/provers.rs8 symbols
src/bls/provers.rs8 symbols
src/utils/canonical.rs7 symbols
src/reckle_bucket/binary_tree.rs7 symbols
src/digest_translation/binary_tree.rs7 symbols
src/bls/binary_tree.rs7 symbols
src/reckle_std/wire_information.rs5 symbols

For agents

$ claude mcp add reckle-trees \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact