Closed tplooker closed 2 years ago
As we discussed, the following are the criteria we have identified(priority high to low),
Nice to have
And of course, availability in Rust, through binding or natively.
We can start from this performance benchmark report from @Consensys team, last updated on 29/01/21, https://hackmd.io/@gnark/eccbench
We can narrow down below libs for our Rust projects,
In these blst outperforms all by a factor of 2-3,
This one I have used in past, but need to benchmark it,
Security: By looking at the information on the GitHub readme project page, only blst (BLS12-381) seems to have a third-party audit.
Thanks @dev0x1 FYI @BasileiosKal and I are meeting with the authors of the blst library this week so we should come to know more about their plans with this library going forward. I think the biggest downside which has already been discussed is that blst is curve specific meaning supporting other curves in future would be more difficult.
After speaking to the BLST authors they let us know of the rust based bindings that more comprehensively exposes the underlying API's required to implement BBS https://github.com/filecoin-project/blstrs
We have decided to use blstrs crate, so closing this issue.
Issue to discuss the options and choices we have around different libraries we can use to serve this function