#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

#1891 in Cryptography

Download history 33782/week @ 2023-11-26 29836/week @ 2023-12-03 25275/week @ 2023-12-10 22583/week @ 2023-12-17 8586/week @ 2023-12-24 13450/week @ 2023-12-31 20944/week @ 2024-01-07 27610/week @ 2024-01-14 28833/week @ 2024-01-21 27335/week @ 2024-01-28 27222/week @ 2024-02-04 32431/week @ 2024-02-11 36988/week @ 2024-02-18 35009/week @ 2024-02-25 28858/week @ 2024-03-03 9541/week @ 2024-03-10

112,089 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
~113K SLoC