Skip to main content

Light Client

Light Client is a client that verifies the headers of a target blockchain. Unlike a full node, it does not execute all transactions of the blocks but only verifies the headers, thus requiring fewer resources.

Light Client in general has the following functions:

  • initializeClient: Creates an initial state for the light client with a trusted Header and security parameters for the target chain. This "Initial" header cannot be verified and must be trusted. A trusting period is often used as a security parameter to prevent PoS long-range attacks.
  • updateClient: Given the state of the light client and the Header of the target chain as input, this function performs verification and, if successful, obtains a new state. The state is associated with the height of the target chain.
  • verifyState: Verifies the state of the target chain based on the current state of the light client. Most chain states, with some exceptions, can be represented as key-value type storage, and the verification target is the inclusion proof of a particular (key, value) pair in the target chain. Conversely, some verification may use proof of the exclusion of a pair. (e.g., IBC's Packet Timeout)

The specification of each light client differs for each blockchain and its consensus protocol. The ICS-02 of IBC defines a standard interface for the above functions. In LCP, the Enclave Light Client (ELC), which runs the light client within Enclave, supports the ICS-02-based light client specification.