- [BREAKING] Updated Winterfell dependency to v0.10 (#338).
- [BREAKING]: renamed
Mmr::open()
intoMmr::open_at()
andMmr::peaks()
intoMmr::peaks_at()
(#234). - Added
Mmr::open()
andMmr::peaks()
which rely onMmr::open_at()
andMmr::peaks()
respectively (#234). - Standardized CI and Makefile across Miden repos (#323).
- Added
Smt::compute_mutations()
andSmt::apply_mutations()
for validation-checked insertions (#327). - Changed padding rule for RPO/RPX hash functions (#318).
- [BREAKING] Changed return value of the
Mmr::verify()
andMerklePath::verify()
frombool
toResult<>
(#335). - Added
is_empty()
functions to theSimpleSmt
andSmt
structures. AddedEMPTY_ROOT
constant to theSparseMerkleTree
trait (#337).
- Implement
get_size_hint
forSmt
(#331).
- Implement
get_size_hint
forRpoDigest
andRpxDigest
and expose constants for their serialized size (#330).
- Added
Serializable
andDeserializable
implementations forPartialMmr
andInOrderIndex
(#329).
- Added more
RpoDigest
andRpxDigest
conversions (#311). - [BREAKING] Migrated to Winterfell v0.9 (#315).
- Fixed encoding of Falcon secret key (#319).
- Added
RpxRandomCoin
struct (#307).
- Implemented serialization for the
Smt
struct (#304). - Fixed a bug in Falcon signature generation (#305).
- Added
num_leaves()
method toSimpleSmt
(#302).
- [BREAKING] Removed deprecated re-exports from liballoc/libstd (#290).
- [BREAKING] Refactored RpoFalcon512 signature to work with pure Rust (#285).
- [BREAKING] Added
RngCore
as supertrait forFeltRng
(#299).
- Re-added unintentionally removed re-exported liballoc macros (
vec
andformat
macros).
- Re-added unintentionally removed re-exported liballoc macros (#292).
- Updated
no-std
approach to be in sync with winterfell v0.8.3 release (#290).
- Fixed clippy warnings (#280)
- Implemented the
PartialMmr
data structure (#195). - Implemented RPX hash function (#201).
- Added
FeltRng
andRpoRandomCoin
(#237). - Accelerated RPO/RPX hash functions using AVX512 instructions (#234).
- Added
inner_nodes()
method toPartialMmr
(#238). - Improved
PartialMmr::apply_delta()
(#242). - Refactored
SimpleSmt
struct (#245). - Replaced
TieredSmt
struct withSmt
struct (#254, #277). - Updated Winterfell dependency to v0.8 (#275).
- Fixed RPO Falcon signature build on Windows.
- Replaced
MerklePathSet
withPartialMerkleTree
(#165). - Implemented clearing of nodes in
TieredSmt
(#173). - Added ability to generate inclusion proofs for
TieredSmt
(#174). - Implemented Falcon DSA (#179).
- Added conditional `serde`` support for various structs (#180).
- Implemented benchmarking for
TieredSmt
(#182). - Added more leaf traversal methods for
MerkleStore
(#185). - Added SVE acceleration for RPO hash function (#189).
- [BREAKING] Added support for recording capabilities for
MerkleStore
(#162). - [BREAKING] Refactored Merkle struct APIs to use
RpoDigest
instead ofWord
(#157). - Added initial implementation of
PartialMerkleTree
(#156).
- Implemented
TieredSmt
(#152, #153). - Implemented ability to extract a subset of a
MerkleStore
(#151). - Cleaned up
SimpleSmt
interface (#149). - Decoupled hashing and padding of peaks in
Mmr
(#148). - Added
inner_nodes()
toMerkleStore
(#146).
- Exported
MmrProof
from the crate (#137). - Allowed merging of leaves in
MerkleStore
(#138). - [BREAKING] Refactored how existing data structures are added to
MerkleStore
(#139).
- Added
depth
parameter to SMT constructors inMerkleStore
(#115). - Optimized MMR peak hashing for Miden VM (#120).
- Added
get_leaf_depth
method toMerkleStore
(#119). - Added inner node iterators to
MerkleTree
,SimpleSmt
, andMmr
(#117, #118, #121).
- Implemented
Mmr
and related structs (#67). - Implemented
MerkleStore
(#93, #94, #95, #107 #112). - Added benchmarks for
MerkleStore
vs. other structs (#97). - Added Merkle path containers (#99).
- Fixed depth handling in
MerklePathSet
(#110). - Updated Winterfell dependency to v0.6.
- Re-export winter-crypto Hasher, Digest & ElementHasher (#72)
- Updated Winterfell dependency to v0.5.1 (#68)
- Fixed
Rpo256::hash
pad that was panicking on input (#44) - Added
MerklePath
wrapper to encapsulate Merkle opening verification and root computation (#53) - Added
NodeIndex
Merkle wrapper to encapsulate Merkle tree traversal and mappings (#54)
- Introduced
merge_in_domain
for the RPO hash function, to allow using a specified domain value in the second capacity register when hashing two digests together. - Added a simple sparse Merkle tree implementation.
- Added re-exports of Winterfell RandomCoin and RandomCoinError.
- Initial release on crates.io containing the cryptographic primitives used in Miden VM and the Miden Rollup.
- Hash module with the BLAKE3 and Rescue Prime Optimized hash functions.
- BLAKE3 is implemented with 256-bit, 192-bit, or 160-bit output.
- RPO is implemented with 256-bit output.
- Merkle module, with a set of data structures related to Merkle trees, implemented using the RPO hash function.