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
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 searchlen: Length of the arraytarget: Target definition to find (compares elements pointer)
Returns
Index of the matching definition, or 0 if not found
C4_ETH_SYNCDATA_UPDATE_UNION
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
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
C4EthSyncdataUpdate
Last updated