Blastkids
A BLS12-381 child key derivation library written in Rust. Implements EIP-2333 and EIP-2334. Fork of rust-bls-derivation using bls12_381_plus instead of curv-kzen
Rationale
If you want to use Delegatable Anonymous Credentials the verification key (VK) becomes as long as the credential entries. Since a VK is simply several BLS12-381 public keys (PKs) we can use a derivation algorithm such as EIP-2333 in order to derive the long VK from a single root PK given any length.
Installation
API
See tests in lib.rs for examples.
Tests
Dependencies
Uses:
- BLS12-381: bls12_381_plus
- Elliptic Curve: RustCrypto/elliptic-curves
- Big Integers: RustCrypto/ctypro-bigint
See also
- Generate seeds using password + salt: seed-keeper-core
- Generate Credentials using a seed: delanocreds
Prior Work
- EIP-2333
- EIP-2334
- rust-bls-derivation (circa 2023, uses
curv-kzenlibrary which breaks with rust-nightly and appears somewhat unmaintained)
Contributing
Contributions are welcome! Please open an issue if you have any feature ideas or find any bugs. I also accept pull requests with open arms. Please:
- Fork this repo
- Create a new branch for your changes
- Open a draft pull request so we can follow and collaborate on your changes
- Add tests for your changes
- Keep the diff minimal for each pull request
- Write meaningful commit messages
- Change Draft to Open when you're ready for final review