#cryptography #finite-fields #elliptic-curves

bandersnatch

Bandersnatch: a curve defined over the scalar field of the BLS12-381 curve

2 releases

0.1.1 Jul 29, 2021
0.1.0 Jul 28, 2021

#813 in Cryptography

Download history 7/week @ 2022-06-08 16/week @ 2022-06-15 2/week @ 2022-06-22 5/week @ 2022-06-29 10/week @ 2022-07-06 4/week @ 2022-07-13 5/week @ 2022-07-20 20/week @ 2022-07-27 128/week @ 2022-08-03 53/week @ 2022-08-10 21/week @ 2022-08-17 44/week @ 2022-08-24 22/week @ 2022-08-31 10/week @ 2022-09-07 40/week @ 2022-09-14 71/week @ 2022-09-21

152 downloads per month

MIT/Apache

59KB
1.5K SLoC

bandersnatch-rust

GitHub branch checks state docs.rs Crates.io (version) GitHub

This is a reference implementation of Bandersnatch curve using Arkwork's framework in Rust. The spec of the curve is available here. There was also a Python reference implementation here.

Logistics

  • This code is released under MIT license.
  • This code is not audited and may contain severe security flaws. Use at your own risk.
  • Version 0.1.1.
  • This repo is upstreamed to Arkworks curve crate.

Change log

0.1.1: use a zcash style generator 0.1.0: release

Howto

API docs

cargo doc --open

Benchmarks

cargo bench

Examples

Counting the number of constraints in group operations

cargo run --example constraint_count_bandersnatch
cargo run --example constraint_count_jubjub
cargo run --example constraint_count_bandersnatch_glv

Dependencies

~3.5MB
~77K SLoC