#elliptic-curve #finite-fields #scalar-field

no-std ark-ed-on-bls12-381-bandersnatch

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

3 releases

0.4.0 Jan 17, 2023
0.4.0-alpha.2 Dec 28, 2022
0.4.0-alpha.1 Nov 29, 2022

#1941 in Cryptography

Download history 20309/week @ 2024-01-08 28768/week @ 2024-01-15 28238/week @ 2024-01-22 26969/week @ 2024-01-29 28032/week @ 2024-02-05 32527/week @ 2024-02-12 36745/week @ 2024-02-19 34604/week @ 2024-02-26 28698/week @ 2024-03-04 29950/week @ 2024-03-11 33330/week @ 2024-03-18 31748/week @ 2024-03-25 46618/week @ 2024-04-01 45919/week @ 2024-04-08 36001/week @ 2024-04-15 33566/week @ 2024-04-22

164,523 downloads per month
Used in 8 crates (3 directly)

MIT/Apache

25KB
418 lines

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 is also a Python reference implementation here, and a python wrapper of this library banderpy.

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

~6MB
~114K SLoC