BLS 12-381 utils, POP signature scheme, pure Go (use at own risk).
MIT License
BLS 12-381 util (BLSU, "bless you") is a collection of utils to work with BLS 12-381 in Go.
Warning: these wrapper utils have not been audited.
This package wraps github.com/kilic/bls12-381
,
a pure Go implementation of BLS, no CGO involved, no special dependencies.
Instead, this BLS implementation uses Go-assembly to optimize the lower level computations.
audit info.
This package implements the BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_POP_
ciphersuite.
TODO: not safe for 32 bit usage: kilic BLS Fr.FromBytes->Fr.fromBytes->Fr.fromBig assumes word size is 64 bits.
PointG1
wrapperPointG2
wrapperFr
wrapperkilic/bls12-381
: BLS12381G2_XMD:SHA-256_SSWU_RO_
KeyGen
(TODO)SkToPk
KeyValidate
CoreSign
CoreVerify
Aggregate
CoreAggregateVerify
POP
, Proof of Possession scheme (used in Eth2):
FastAggregateVerify
eth2_aggregate_pubkeys
: AggregatePubkeys
eth2_fast_aggregate_verify
: Eth2FastAggregateVerify
SecretKey
deserialization/serializationPubkey
deserialization/serialization (with KeyValidate routine, except identity-pubkey check)Signature
deserialization/serializationSkToPk
(TODO: expand)SignatureSetVerify
Sign
Aggregate
Verify
AggregateVerify
FastAggregateVerify
AggregatePubkeys
Eth2FastAggregateVerify
kilic/bls12-381
internalsMIT, see LICENSE
file.