Skip to content

Sign ledger boundary messages and verify them on followers #132

Description

@bmuddha

Goal

Sign every locally produced block, superblock seal, and reset message with the validator keypair before writing it to the ledger. Followers must verify these signatures upon ingestion.

Why

These ledger messages currently have no producer signature. Replication verifies the handshake and transactions, but does not authenticate individual boundary and reset messages.

Scope

  • Add a solana_signature::Signature field to blocks and superblock seals; replace the slot-only reset payload with a record containing the slot and signature.
  • Sign the message kind and complete payload, excluding the signature itself, using a shared deterministic encoding for signing and verification.
  • Sign only newly produced messages. Local recovery and follower replay must preserve existing signatures without signing again.
  • Verify incoming messages against the configured upstream authority before forwarding them for replay. Reject invalid signatures, including tampered payloads and signatures from another key.
  • Preserve upstream superblock signatures when persisting follower seals; do not replace them with locally generated signatures. Retain existing block-hash and superblock-state checks.
  • Leave transaction signing and verification unchanged. Do not bump the wire version.

Completion requires demonstrating valid ingestion for all three message types, rejection of tampered or wrong-signer messages, and signature preservation through follower persistence and local replay.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions