-
Notifications
You must be signed in to change notification settings - Fork 75
BLS12-381 curve and aggregation libraries #13
Comments
https://github.com/dis2/bls12 -- Go impl that wraps the C RELIC lib. https://github.com/dis2/blsig/blob/master/blsig.go -- example applications for signatures. There is no license here and there is an open issue waiting for one... |
Can you elaborate more on what the potential licensing issues for using milagro-crypto are? Most of the other projects are licensed under the Apache 2.0 license as well. |
I think someone from nimbus was concerned that a portion of another library had been copied in without porting the license. Maybe @mratsim or @arnetheduck can speak to that |
You can add the Nim wrapper for Milagro which is maintained by us, Relic (only for the curve, not for the aggregation) and Dfinity. Relic BLS12-381 test vectors were used by Zcash and Relic the backend of Chia Network's and Dfinity's libraries. Regarding licensing, any library that rely on GMP will be considered derivative work of LGPLv3 or GPLv2 library. Combining GPLv2 + Apache v2 makes a library unredistributable in binary form. Chia has optional linking on GMP, Herumi's MCL has required linking on GMP, Relic seems to have optional GMP dependency. I've also noted the curve creators implementations in the Athenaeum
|
I brought up the licensing issue in the milagro-crypto-js repository and the person who replied said that it doesn't make use of any GMP-licensed code. Here's the issue: https://github.com/milagro-crypto/milagro-crypto-js/issues/46 |
Libraries using MCL will have this licensing issue. I didn't find any potential issue with Milagro, it's a project sponsored by the Apache Foundation. |
Feel free to add https://github.com/ethereum/py_ecc, now with BLS-12-381 support. |
MCL can build without GMP btw @mratsim - see more here: herumi/bls#19 |
I have very simple and auditable JS / typescript implementation here: https://github.com/paulmillr/noble-bls12-381 |
I'm gathering info about the state of BLS12-381 implementations and associated signature/aggregation libraries. Please let me know any corrections or missing data.
BLS12-381 Curve implementations
BLS signature libraries
NOTE: About to take off on a flight. I think the "BLS12-381 Curve implementations" is done to the best of my knowledge, but I haven't had a chance to add all of the "BLS signature libraries". Coming soon.
The text was updated successfully, but these errors were encountered: