Skip to content

[Feature]: dynamic signing scheme config with BLS support #209

@rnbguy

Description

@rnbguy

Is there an existing issue for this?

  • I have searched the existing issues

Describe the feature

Summary

We want pluggable signing schemes, starting with BLS12-381 alongside secp256k1. Add a config flag to pick the scheme at runtime. Update the validator manager contract so it accepts unbounded bytes pubkeys (no fixed-length secp checks).

Scope

  • Add config option for signing scheme and wire it into node startup.
  • Implement a BLS signing provider using the existing provider trait.
  • Generalize public key handling across types and utils.
  • Update ValidatorManager.sol to take unbounded bytes keys and derive validator IDs from keccak256(publicKey).
  • Update CLI/tools to parse, generate, and show BLS keys.

Changes Needed

Acceptance Criteria

  • 48‑byte BLS pubkeys register + read fine in ValidatorManager.sol.
  • Node runs with signing_scheme = "bls12381" and signs/verifies votes/proposals.
  • secp256k1 remains default and still works.
  • CLI/tools accept and output BLS keys without format errors.

Remark

  • No BLS signature aggregation in this change. Just swap in BLS as a scheme. We can revisit aggregation later.
  • BLS support unlocks succinct signatures, which could be useful in remote contexts (e.g. bridge flows).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions