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

Decouple BLS signing key to use with external signer #3572

Open
richardpringle opened this issue Nov 25, 2024 · 0 comments
Open

Decouple BLS signing key to use with external signer #3572

richardpringle opened this issue Nov 25, 2024 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@richardpringle
Copy link
Contributor

Context and scope
This started from a discussion centred around hardening the security of ICM signatures here (the discussion digresses a bit).

What we want is to enable the use of an external signer. The first step is to completely abstract BLS signing such that a signing service can be injected.

Discussion and alternatives
I think this should probably happen inside the bls util package in a way that encapsulates the private/secret-key with a "signing service". All current instances of use of secret keys should be replaced with a LocalBLSSigningService.

After combing through the code, it looks like the following files use a bls.SecretKey

  • chains/manager.go
  • vms/platformvm/warp/signer.go
  • node/config.go
  • vms/platformvm/signer/proof_of_possession.go
  • network/peer/ip.go
  • network/peer/ip_signer.go
  • network/config.go
  • config/config.go
  • node/node.go
    (it looks like this last file just copies from one config to the other)

Each config should be replaced with a SignerService interface.

Open questions

Am I missing any usage of BLS keys?

@richardpringle richardpringle added the enhancement New feature or request label Nov 25, 2024
@richardpringle richardpringle self-assigned this Nov 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant