mirror of
https://github.com/arnaucube/babyjubjub-ark.git
synced 2026-01-13 09:11:28 +01:00
005019d684e01add866c748714ccc6ab02a13d7d
- Update EdDSA to last circomlib version
- Compatible with circomlib version 0.3.0 at
5935ac69df
- Use blake hash precandidate (non-blake2b) for circomlib
compatibility
- Add circomlib testvector
- Change PrivateKey from BigInt to [u8;32], which lead to faster
signature computation:
(Benchmarks on a Intel(R) Core(TM) i7-8705G CPU @ 3.10GHz, with
32 GB of RAM)
- Old:
```
sign time: [559.84 us 568.41 us 576.26 us]
verify time: [376.59 us 376.68 us 376.78 us]
```
- New:
```
sign time: [383.85 us 390.31 us 396.44 us]
verify time: [371.33 us 376.06 us 381.19 us]
```
- crate version v0.0.5
babyjubjub-rs

BabyJubJub elliptic curve implementation in Rust. A twisted edwards curve embedded in the curve of BN128/BN256.
BabyJubJub curve explanation: https://medium.com/zokrates/efficient-ecc-in-zksnarks-using-zokrates-bd9ae37b8186
Uses:
- Poseidon hash function https://github.com/arnaucube/poseidon-rs
Compatible with the BabyJubJub implementations in:
- Go, from https://github.com/iden3/go-iden3-crypto
- circom & javascript, from https://github.com/iden3/circomlib
Warning
Doing this in my free time, do not use in production.
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%