blinklabs-io / blinklabs-io/dingo

leios: wire BLS voting key registration and rotation into node state

Open
#2,425 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Go
Stars
48
Forks
13
Avg merge
1d 10h
Merged PRs (30d)
603

Description

## Summary

CIP-0164 PR cardano-foundation/CIPs#1196 makes stake-based committees the current Leios design and explicitly calls out BLS key rotation as a follow-up spec item. The adaptive-security argument for a public, deterministic committee depends on voting keys being rotated regularly.

Dingo needs a node-side tracking issue for loading, storing, activating, and using Leios BLS voting keys once gouroboros exposes the final ledger/wire types.

## What Needs to Happen

1. Track the CIP follow-up for BLS voting key registration and rotation.
2. Persist Leios voting keys or pool registration extensions in metadata once gouroboros exposes the types.
3. Activate rotated voting keys at the correct epoch boundary and preserve historical keys for certificate validation.
4. Load local block-producer Leios voting signing material from config or the eventual key-management path.
5. Use the correct `(pool, epoch)` verification key when validating votes and aggregate certificates.
6. Handle rollback across registrations or epoch-boundary activation points.
7. Add DevNet coverage once the reference node exposes the same mechanism.

## Dependencies

- gouroboros BLS voting key registration/rotation types.
- Final follow-up CIP for the on-chain rotation mechanism.
- Stake-truncated committee implementation for the voting path.

## References

- CIP PR: https://github.com/cardano-foundation/CIPs/pull/1196
- CIP-0164 Appendix A requirements: https://github.com/cardano-foundation/CIPs/blob/master/CIP-0164/README.md#appendix-a-requirements
- Full Leios integration: #1946

Contributor guide

Open the contributing guide

Research direction

Start with the full Leios integration in #1946, then read CIP-0164 Appendix A and the referenced CIP follow-up. Check the gouroboros BLS registration and rotation types when available, along with the stake-truncated committee voting path. Done means registration, epoch activation, historical-key validation, rollback handling, local signing material, and DevNet coverage all work against the reference node mechanism.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
blockchain, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.