Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HIP30: BLS12-381 for Threshold Cryptography #158

Closed
jamiew opened this issue Apr 22, 2021 · 7 comments
Closed

HIP30: BLS12-381 for Threshold Cryptography #158

jamiew opened this issue Apr 22, 2021 · 7 comments
Labels

Comments

@jamiew
Copy link
Contributor

jamiew commented Apr 22, 2021

Author(s): @vihu, @Vagabond, Helium Systems, Inc. team
Start Date: 2021-04-19
Category: Technical
Initial PR: #155
Tracking Issue: this
Status: In Discussion

Rendered view:

https://github.com/helium/HIP/blob/master/0030-update-threshold-cryptography.md

Summary:

Helium Distributed Key Generation and Honeybadger Consensus Protocol both rely on curve SS512 for pairing-based cryptography. Curve SS512 is considered a very old curve and is not commonly used. In addition, the library we use for pairing-based cryptography, Ben Lynn's pbc library, has not seen major maintenance since 2013.

This HIP proposes switching to an industry standard curve BLS12-381 for doing threshold cryptography. The underlying implementation for BLS12-381 is security-audited, faster, and more secure than curve SS512.

We have been testing a new threshold cryptography library that has been in use on the Validator Testnet for several weeks and believe it is ready for Mainnet.

@jamiew jamiew changed the title HIP30: BLS12-381 for threshold cryptography HIP30: BLS12-381 for Threshold Cryptography Apr 22, 2021
@PaulVMo
Copy link
Contributor

PaulVMo commented Apr 28, 2021

Good stuff. I support this. I was participating in the testnet when this was tested and saw the difference it made in the ability to increase the consensus group size to over 50.

I also like this that reuses an existing implementation that has been audited and field tested as well as the fact that this same curve is used by other large crypto projects.

@jamiew
Copy link
Contributor Author

jamiew commented May 1, 2021

There has been universally positive support for this HIP in GitHub commnents, Discord chats, the most recent community call and there were 100% "yes" votes from 50 people in a straw poll. In recognition of this I am pleased to recognize this HIP as approved by the Helium community and will update statuses accordingly.

Screen Shot 2021-05-01 at 11-07-12 hip-30-threshold-crypto-upgrade - Discord

@jamiew jamiew added approved and removed discussion labels May 1, 2021
jamiew added a commit that referenced this issue May 1, 2021
@jamiew
Copy link
Contributor Author

jamiew commented May 1, 2021

@vihu could you link to any existing work/PRs in other repositories for the record? Thanks!

@vihu
Copy link
Member

vihu commented May 1, 2021

@vihu could you link to any existing work/PRs in other repositories for the record? Thanks!

So here's the work we have so far:

erlang-tc: This is base NIF for using threshold cryptographic functions
miner#733: Miner layer to switch to threshold crypto
dkg#36: DKG work to understand new curve keys
hbbft#66: Consensus group related compatibility work

@abhay
Copy link
Contributor

abhay commented Jun 11, 2021

Close as implemented? @jamiew

@jamiew
Copy link
Contributor Author

jamiew commented Jun 30, 2021

Same for this one – just need a Deployed and/or Audit link and I'm happy to update

@abhay
Copy link
Contributor

abhay commented Sep 6, 2021

helium/miner@b038f24 deployed as of https://github.com/helium/miner/releases/tag/2021.05.04.3_GA

@jamiew jamiew added deployed and removed approved labels Sep 14, 2021
jamiew added a commit that referenced this issue Sep 14, 2021
jamiew added a commit that referenced this issue Sep 14, 2021
@jamiew jamiew closed this as completed Sep 14, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants