kilic / bls12-381

High-speed BLS12-381 implementation in Go
Apache License 2.0
124 stars 47 forks source link

Interface for Pub, Secret and Sign usage #20

Closed eabz closed 4 years ago

eabz commented 4 years ago

Hello @kilic I have been following this library long time ago and want to use it directly to create and sign using keypairs. On older versions you had a package named blssig but seems it is removed now.

Do you have plans to implement it soon, or how should I implement it?

kilic commented 4 years ago

Hi @eabz, thanks!. I want to keep this repository as an elliptic curve library and export comprehensive API for many kinds of applications.

It'd be great to have BLS signature scheme library in a separate repository. I don't have plan to implement it in near term. However I'd be happy to help if you start implementing it.

eabz commented 4 years ago

Ok, i'll be implementing it. Since I am not really familiar with the cryptographic implementation, I will really need help. Is there another way to contact you besides here?

eabz commented 4 years ago

@kilic here is the library: https://github.com/eabz/blssig

There is still a couple of things that need to be fixed and I'll probably need some guide upon doing proper testing.

Also, I noted that verifications are really slow (Compared with prysm benchmarks):

goos: darwin
goarch: amd64
pkg: github.com/eabz/blssig
BenchmarkSignature_Verify
BenchmarkSignature_Verify-8                  418       2826745 ns/op
BenchmarkSignature_AggregateVerify
BenchmarkSignature_AggregateVerify-8           5     204786832 ns/op     7102940 B/op      34006 allocs/op
BenchmarkSecretKey_Marshal
BenchmarkSecretKey_Marshal-8            10327432           116 ns/op
PASS