Based on reference implementation from Chia BLS Signatures:
https://github.com/Chia-Network/bls-signatures/tree/master/python-impl
Implements the BLS12 curve and optimal ate pairing, as well as BLS signatures and aggregation. Use for reference / educational purposes only.
For a good introduction to pairings, read Pairings for Beginners by Craig Costello.