Skip to main content

PublicKeyLookup

Trait PublicKeyLookup 

Source
pub trait PublicKeyLookup {
    // Required method
    fn pubkey_of(&self, index: u32) -> Option<&PublicKey>;
}
Expand description

Validator-index → BLS public-key lookup.

Traces to SPEC §15.2, catalogue row DSL-138.

§Consumers

  • IndexedAttestation::verify_signature (DSL-006) materializes the pubkey set for the aggregate BLS verify by looking up every attesting_indices[i].
  • verify_proposer_slashing / verify_invalid_block (DSL-013 / DSL-018) fetch the single proposer pubkey per offense.

§Return semantics

pubkey_of(idx) returns None when idx does not correspond to a registered validator — the caller is responsible for translating that to a domain-appropriate error. For BLS verify, a missing pubkey collapses to aggregate-verify failure (DSL-006), which matches the security model: we do not want to distinguish “unknown validator” from “bad signature” at this layer because both are equally invalid evidence.

Required Methods§

Source

fn pubkey_of(&self, index: u32) -> Option<&PublicKey>

Look up the BLS G1 public key for index. Returns None if no validator is registered at that slot.

Implementors§

Source§

impl<T: ValidatorView + ?Sized> PublicKeyLookup for T

Blanket: any ValidatorView is a PublicKeyLookup. DSL-138.

Delegates pubkey_of(idx) to self.get(idx).map(|e| e.public_key()). Keeps the BLS-aggregate verify path in DSL-006 + DSL-013 from having to pass two trait-object pointers when one suffices.