#bls-signatures #bls12-381 #bls #signatures #signature #signature-verification

bls12_381-bls

Implementation of BLS signatures using the BLS12-381 curve

7 releases (4 breaking)

new 0.5.0 Feb 10, 2025
0.4.1 Dec 18, 2024
0.4.0 Aug 1, 2024
0.3.1 Jun 27, 2024
0.1.0 Jan 8, 2024

#1259 in Cryptography

Download history 123/week @ 2024-10-25 141/week @ 2024-11-01 133/week @ 2024-11-08 82/week @ 2024-11-15 126/week @ 2024-11-22 105/week @ 2024-11-29 186/week @ 2024-12-06 344/week @ 2024-12-13 202/week @ 2024-12-20 77/week @ 2024-12-27 29/week @ 2025-01-03 21/week @ 2025-01-10 169/week @ 2025-01-17 100/week @ 2025-01-24 106/week @ 2025-01-31 190/week @ 2025-02-07

572 downloads per month
Used in 15 crates (3 directly)

MPL-2.0 license

27KB
454 lines

Implementation of BLS signatures using the BLS12-381 curve.

This implementation currently only supports rogue-key attack resistant batching, and does not support distinct message verification.

Benchmarks

Machine specs

The benchmarks were ran on a 2020 13.3" MacBook Pro.

CPU:

$ lscpu
Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz

RAM:

16 GB 3733 MHz LPDDR4X

Results

test benches::bench_aggregate_pk    ... bench:   1,654,552 ns/iter (+/- 107,025)
test benches::bench_aggregate_sig   ... bench:      36,893 ns/iter (+/- 3,399)
test benches::bench_sign            ... bench:   1,480,169 ns/iter (+/- 106,151)
test benches::bench_sign_vulnerable ... bench:   1,024,052 ns/iter (+/- 111,395)
test benches::bench_verify          ... bench:   4,740,114 ns/iter (+/- 336,036)

lib.rs:

Implementation of BLS signatures on the BLS12-381 curve. Reference paper: https://crypto.stanford.edu/~dabo/pubs/papers/BLSmultisig.html

Dependencies

~2.3–3.5MB
~82K SLoC