w3f / bls

Aggregatable BLS sigantures
65 stars 15 forks source link

Implement BLS crypto type for Substrate #39

Closed drskalman closed 1 year ago

drskalman commented 2 years ago

Substrate requires a crypto type similar to: https://github.com/paritytech/substrate/blob/master/primitives/application-crypto/src/ecdsa.rs to be able to instantiate a signer for beefy capable of bls sigining. Implementing such crypto types help implementers to kick off BLS on beefy.

drskalman commented 2 years ago

This is related to: https://github.com/paritytech/substrate/issues/10469

drskalman commented 2 years ago

2912fa1b1b implements BLS Signature core crypto. Remains to make the tests compile and pass

It is also not clear for me what to set the context for the messages before they get signed in:

sig.verify(Message::new(b"ctx", message.as_ref()), &public_key)

It is abscent for ed25519 crypto. @burdges, @AlistairStewart?

drskalman commented 2 years ago

The (draft) pull request is ready: https://github.com/paritytech/substrate/pull/11574 searching for some reviewer now.

All bls crypto test pass.

uint::tests::test_u256 fails for some strange reason:

failures:

---- uint::tests::test_u256 stdout ----
thread 'uint::tests::test_u256' panicked at 'called `Result::unwrap_err()` on an `Ok` value: 16', primitives/core/src/uint.rs:61:5