mirror of
https://github.com/arnaucube/babyjubjub-ark.git
synced 2026-01-13 09:11:28 +01:00
2ab48ff3ad64e0dbcd4bae7eae82099e582c3376
babyjubjub-rs

BabyJubJub elliptic curve implementation in Rust. Is a twisted edwards curve embedded in the curve of BN128.
BabyJubJub curve explanation: https://medium.com/zokrates/efficient-ecc-in-zksnarks-using-zokrates-bd9ae37b8186
Uses:
- MiMC7 hash function: https://github.com/arnaucube/mimc-rs
- Poseidon hash function https://github.com/arnaucube/poseidon-rs
Compatible with the BabyJubJub Go implementation from https://github.com/iden3/go-iden3-crypto
Warning
Doing this in my free time to get familiar with Rust, do not use in production.
- point addition
- point scalar multiplication
- eddsa keys generation
- eddsa signature
- eddsa signature verification
- {point, pk, signature} compress&decompress parsers
References
- BabyJubJub curve explanation: https://medium.com/zokrates/efficient-ecc-in-zksnarks-using-zokrates-bd9ae37b8186
- JubJub curve explanation: https://z.cash/technology/jubjub/
Languages
Rust
100%