13 releases (3 stable)
2.1.0 | Feb 22, 2025 |
---|---|
2.0.0 | Feb 21, 2025 |
1.0.0 | Oct 1, 2023 |
0.1.10 | Oct 25, 2020 |
0.1.5 | May 31, 2020 |
#1 in #monero
71 downloads per month
Used in passring
49KB
969 lines
Nazgul
A library that implements Ring Signatures. The following schemes have been implemented based on Chapter 3 of Zero to Monero 2.0 (Z2M2):
- Spontaneous Anonymous Group (SAG) signatures
- Back's Linkable Spontaneous Anonymous Group (bLSAG) signatures
- Multilayer Linkable Spontaneous Anonymous Group (MLSAG) signatures
- Concise Linkable Spontaneous Anonymous Group (CLSAG) signatures
The following scheme has also been implemented from outside Z2M2:
Note: The MDLSAG (Multilayer Dual Linkable Spontaneous Anonymous Group) and DLSAG signature scheme was removed as its implementation did not correctly match the specifications in the cited paper.
All blockquotes (except this one) in this documentation are from Z2M2
This library is designed to work with any 512-bit (64 byte output) hashing function. It uses the Ristretto elliptic curve for ease of use and better security.
This library is #![no_std]
by default so it is possible to compile this library for embedded devices and WebAssembly but we haven't tried.
Testing
The library includes comprehensive test suites for all features:
- Standard tests:
cargo test
- No-std tests:
cargo test --no-default-features --features no_std
- Serialization tests:
cargo test --features serde-derive
All tests are run automatically on pull requests and commits via GitHub Actions. The pre-commit hook also ensures all test suites pass before allowing commits.
Documentation
It is here
Dependencies
~1.8–2.8MB
~62K SLoC