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

Separate BLS key from priv_validator_key.json #336

Open
gitferry opened this issue Dec 10, 2024 · 2 comments
Open

Separate BLS key from priv_validator_key.json #336

gitferry opened this issue Dec 10, 2024 · 2 comments

Comments

@gitferry
Copy link
Member

Should consider utilizing some keyring for bls keys storage like ethereum bls key store - https://github.com/ethereum/ercs/blob/master/ERCS/erc-2335.md, or most recent versions of comet bft have support for bls keys - https://github.com/cometbft/cometbft/tree/main/crypto/bls12381

@gitferry
Copy link
Member Author

gitferry commented Dec 16, 2024

This should be done in two steps:

  1. Naively separate BLS key from priv_validator_key.json as currently it is embeded with comet's ed25519 key for consensus.
  2. Store the BLS key securely following https://github.com/ethereum/ercs/blob/master/ERCS/erc-2335.md
  3. ensure the BLS key file is created atomically with priv_validator_key.json and remove create-bls-key cmd

@gitferry
Copy link
Member Author

Some context of why and how BLS key is used can be found here.

The BLS key should be treated as important as the ed25519 key used in Comet consens. Currently it is embeded in the priv_validator_key.json and validators should use babylond create-bls-key to generate the BLS key and bond with the ed25519 key generated in pior. However, cosmos tooling (e.g., tmkms and horcrux) cannot recognize the bls key in the priv_validator_key.json, so now we decided to separate it from priv_validator_key.json

In order for secure management of the BLS key, after separation, the BLS key should be kept following standard proposed by Ethereum https://github.com/ethereum/ercs/blob/master/ERCS/erc-2335.md so that it can work with related toolings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant