pub type BeefyNextAuthoritySet<MerkleRoot> = BeefyAuthoritySet<MerkleRoot>;
Expand description

Details of the next BEEFY authority set.

Aliased Type§

struct BeefyNextAuthoritySet<MerkleRoot> {
    pub id: u64,
    pub len: u32,
    pub keyset_commitment: MerkleRoot,
}

Fields§

§id: u64

Id of the set.

Id is required to correlate BEEFY signed commitments with the validator set. Light Client can easily verify that the commitment witness it is getting is produced by the latest validator set.

§len: u32

Number of validators in the set.

Some BEEFY Light Clients may use an interactive protocol to verify only a subset of signatures. We put set length here, so that these clients can verify the minimal number of required signatures.

§keyset_commitment: MerkleRoot

Commitment(s) to BEEFY AuthorityIds.

This is used by Light Clients to confirm that the commitments are signed by the correct validator set. Light Clients using interactive protocol, might verify only subset of signatures, hence don’t require the full list here (will receive inclusion proofs).

This could be Merkle Root Hash built from BEEFY ECDSA public keys and/or polynomial commitment to the polynomial interpolating BLS public keys which is used by APK proof based light clients to verify the validity of aggregated BLS keys using APK proofs. Multiple commitments can be tupled together.