# BLS12-381 and Signatures in python

Implements the BLS12 curve and optimal ate pairing, as well
as BLS signatures and aggregation. Use for reference / educational purposes only.

For an optimized implementation, use the [Python bindings](https://github.com/Chia-Network/bls-signatures/tree/main/python-bindings).

For a good introduction to pairings, read [Pairings for Beginners](https://static1.squarespace.com/static/5fdbb09f31d71c1227082339/t/5ff394720493bd28278889c6/1609798774687/PairingsForBeginners.pdf) by Craig Costello.

Map to curve implementation from [Algorand](https://github.com/algorand/bls_sigs_ref/).

Run the tests with `python impl-test.py`.
