status-im / nim-blscurve

Nim implementation of BLS signature scheme (Boneh-Lynn-Shacham) over Barreto-Lynn-Scott (BLS) curve BLS12-381
Apache License 2.0
26 stars 11 forks source link

Introduce multiple BLS backend support: BLST and Milagro #68

Closed mratsim closed 4 years ago

mratsim commented 4 years ago

This adds BLST as an alternative backend, complete with EIP2333 support (which requires importing BLST internals).

The code is using an older version of BLST, the same that was using in the proof-of-concept https://github.com/status-im/nim-blst repo. The changes are an API change for aggregation.

The code does not use multithreaded miller loops for aggregate verification like the Rust/Go code see:

Miracl/BLST can be switched with -d:BLS_BACKEND=miracl/-d:BLS_BACKEND=blst/-d:BLS_BACKEND=auto, auto is default