maidsafe / bls_dkg

Implementation of a BLS DKG mechanism, requires signing key, encryption key and SocketAddr of participants
BSD 3-Clause "New" or "Revised" License
21 stars 17 forks source link

Is it possible to do some changes in the BLS_DKG library to work with BN254 curve ?? #120

Open wdcs-amitkumar opened 2 years ago

wdcs-amitkumar commented 2 years ago

Hello Maidsafe Team ! Thanks you for providing this complex implementation for BLS_DKG in rust.

I need some guidance... Currently this library works with BLS12 381 curve.... But I want to understand, is it feasible to do changes by replacing BLSTTC or BLST crate with BN254 (aka alt_bn128) one..

So that we can perform BLS signature on BN curve...???

Reference : BLS Signature on BN Curve

davidrusu commented 2 years ago

Hi Amit,

You would first need an API compatible threshold-crypto implementation for the BN curve, once you've got that, adapting bls-dkg to support BN should be fairly straightforward.

We've made this sort of move ourselves in that we forked threshold_crypto to blsttc to make use of the faster blst BLS-12-281 implementation. It's doable, but requires a fair amount of effort.

@iancoleman was the one behind our blsttc fork, he'll have more in-depth knowledge on how feasible this is.

wdcs-amitkumar commented 2 years ago

Thanks @davidrusu ! Looking forward to hear from @iancoleman on this :)

iancoleman commented 2 years ago

I'm not familiar with BN254 curve but it seems like a doable amount of work to modify threshold_crypto (or blsttc) to work with the bn crate and see if the functionality is compatible with that curve. This would only test functionality, not whether it's secure to do it. The dkg test in particular is a good one for testing the functionality of the threshold_crypto crate.

Sorry I can't be more specific than this! If you get it working I'd be keen to see the code and read more about how it went.