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