You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
1.5 KiB

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