Overview of BLS signature algorithm:
BLS signature algorithm has the following three characteristics:
1. Simple signature: the signature algorithm is relatively simple compared with algorithms such as ECDSA
2. Signature aggregation: multiple signatures can be aggregated into one signature for unified verification
3. The signature is unique: for the same message, the result of each signature is the same
The Golang code implementation of the BLS signature algorithm:
1. Refer to the bls12-381 curve implemented by gnark-crypto, and first define the public and private keys of the BLS signature.
2. The signature and verification algorithm is as follows