mirror of
https://github.com/arnaucube/babyjubjub-ark.git
synced 2026-01-13 17:21:29 +01:00
df8a21200f64fa597f77523a7b7a762e948030d0
babyjubjub-rs

BabyJubJub elliptic curve implementation in Rust. 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
- C++ & Explanation https://github.com/barryWhiteHat/baby_jubjub
- Javascript & Circom: https://github.com/iden3/circomlib
- Go https://github.com/iden3/go-iden3-crypto
- JubJub curve explanation: https://z.cash/technology/jubjub/
Languages
Rust
100%