All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Multiple hash functions: Support for SHA3-256 (default), BLAKE3, and Poseidon
blake3feature flag for high-performance hashingposeidonfeature flag for ZK-friendly algebraic hashing
- Batch proofs: Efficient multi-leaf proof generation and verification with shared sibling hashes
PartialEqandEqimplementations forMerkleTreeAccumulator- Proof validation on deserialization to catch malformed data
- Examples:
hello_world.rsandhasher_comparison.rs - CI workflows, contribution guidelines, and issue templates
- Complete rewrite using
rs-merklefor core Merkle tree operations - Simplified API:
Hash::from_data()for leaf creation, generic hasher viaMerkleTreeAccumulator<H> - Consolidated hash module: All hashers now in single
hash.rsfile - Rust 2024 edition with MSRV 1.85
- Improved Poseidon performance: Constants cached with
LazyLock - Fixed Poseidon entropy:
bytes_to_scalarnow preserves all 256 bits instead of truncating to 248
- Blockchain-specific dependencies (Parity RLP, NEAR Borsh)
- Witness caching (simplified accumulator semantics)
- Redundant
heightfield (now derived from leaf count) HashDatatrait (replaced with directHash::new(H::hash(data))pattern)
Initial public release with basic Merkle tree accumulator functionality.