babyjubjub-ark/README.md
README.mdRaw
1# babyjubjub-rs [](https://crates.io/crates/babyjubjub-rs) [](https://travis-ci.org/arnaucube/babyjubjub-rs)
2BabyJubJub elliptic curve implementation in Rust. A twisted edwards curve embedded in the curve of BN128/BN256.
3
4BabyJubJub curve explanation: https://medium.com/zokrates/efficient-ecc-in-zksnarks-using-zokrates-bd9ae37b8186
5
6Uses:
7- Poseidon hash function https://github.com/arnaucube/poseidon-rs
8
9Compatible with the BabyJubJub implementations in:
10- Go, from https://github.com/iden3/go-iden3-crypto
11- circom & javascript, from https://github.com/iden3/circomlib
12
13## Warning
14Doing this in my free time to get familiar with Rust, **do not use in production**.
15
16- [x] point addition
17- [x] point scalar multiplication
18- [x] eddsa keys generation
19- [x] eddsa signature
20- [x] eddsa signature verification
21- [x] {point, pk, signature} compress&decompress parsers
22
23
24
25
26### References
27- BabyJubJub curve explanation: https://medium.com/zokrates/efficient-ecc-in-zksnarks-using-zokrates-bd9ae37b8186
28 - C++ & Explanation https://github.com/barryWhiteHat/baby_jubjub
29 - C++ https://github.com/barryWhiteHat/baby_jubjub_ecc
30 - Javascript & Circom: https://github.com/iden3/circomlib
31 - Go https://github.com/iden3/go-iden3-crypto
32- JubJub curve explanation: https://z.cash/technology/jubjub/
33 - Rust: https://github.com/zkcrypto/jubjub
34 - Python: https://github.com/daira/jubjub