spacemeshos / go-spacemesh

Go Implementation of the Spacemesh protocol full node. 💾⏰💪
https://spacemesh.io
MIT License
747 stars 211 forks source link

Replace BLS implementation #1648

Closed barakshani closed 3 years ago

barakshani commented 4 years ago

Our BLS implementation is highly non-optimsed. Moreover, the repo is not maintained anymore.

We should try and replace it with a different implementation: herumi / filecoin / chia-eth

Algorand should have an implantation as well (maybe they use one of the above); they also have a different VRF construction, which is the unique signature ed25519. We will probably need it in the future, and if no other BLS implementation works for us, this VRF is the usual suspect

barakshani commented 4 years ago

@gavraz @y0sher @almogdepaz please advise

avive commented 4 years ago

This is btw the go-bls lib used by prysmatic labs for the eth 2.0 client: https://github.com/prysmaticlabs/prysm/tree/master/shared/bls The moved from hermuni to relic based libs to this. At some point, we'll also need to review the library we choose for implementation correctness and security. If we chose a good go-library as a starting point we can contribute to these via bounties so we get a good library. We can do contests for improving the performance as well.

moshababo commented 4 years ago

@avive looks prysmatic labs are still using herumi implementation (see here). Am I missing something?