SyncCommittee Proof

The Verifier always needs the pubkeys of the sync committee for a given period in order to verify the BLS signature of a Beacon BlockHeader.

If a verifier requests a proof from a remote prover, the verifier may use the c4-property of the RPC-Request to describe it's state of the knpown periods or checkpoint. If the verifier only reports a checkpoint, a bootstrap is added proving the current_sync_committee for the given checkpoint. If the header requested has a higher period that the bootstrap or the latest period, all required lightClientUpdates will be proved.

if

chains/eth/ssz/verify_types.c

Finds the index of a target definition within an array of SSZ definitions. Searches for a container type whose elements pointer matches the target.

static inline size_t array_idx(const ssz_def_t* array, size_t len, const ssz_def_t* target) {
  for (size_t i = 0; i < len; i++) {
    if (array[i].type >= SSZ_TYPE_CONTAINER && array[i].def.container.elements == target) return i;

Parameters

  • array : Array of SSZ definitions to search

  • len : Length of the array

  • target : Target definition to find (compares elements pointer)

Returns

Index of the matching definition, or 0 if not found

C4_ETH_SYNCDATA_UPDATE_UNION

chains/eth/ssz/verify_types.c

Returns the SSZ definition for a LightClient Update based on the fork ID. Maps fork identifiers to the corresponding update type in the union array.

Parameters

  • fork : Fork identifier (C4_FORK_DENEB, C4_FORK_ELECTRA, C4_FORK_FULU)

Returns

Pointer to the SSZ definition for the update type, or NULL for unsupported forks

&C4_REQUEST_CONTAINER

chains/eth/ssz/verify_types.c

Returns the SSZ type definition for a given verification type enum. Maps eth_ssz_type_t enum values to their corresponding SSZ definition pointers. Used to retrieve the correct type definition for parsing and validating SSZ-encoded proof data.

Parameters

  • type : The verification type enum value

Returns

Pointer to the corresponding SSZ definition, or NULL for invalid types

C4EthLcSyncdata

The main container type definition for C4Request, wrapping all request fields Union type for a single LightClient Update, which can be either Deneb or Electra format LC SyncData contains all the proofs needed to bootstrap and update to the current period.

The Type is defined in src/chains/eth/ssz/verify_types.c.

Referenced Types

Last updated