How LCP works
LCP enables cross-chain communication with high security, equivalent to on-chain light client verification at a lower cost.
The initial implementation of LCP uses Intel SGX as the TEE. LCP uses SGX to perform light client verification in the Enclave and generates commitments and proof of the results. This proof is a single signature with a key generated in the Enclave. Downstream verifies the generated commitment and proof instead of verifying Upstream directly. The (public) key used for verification must be registered through Remote Attestation on the Downstream before verification.
In addition to the two chains, a system using LCP requires an LCP node with SGX that implements the LCP protocol. However, the availability of the node is not necessary for a trust assumption of the system as the state can be recovered from both chains in case of failure of the LCP node.
A communication protocol is required between chains to construct cross-chain applications such as token swap and transfer using LCP. For this purpose, LCP first supports IBC, which is a communication protocol stack for cross-chain. IBC consists of a layer called Client, which verifies each chain, and communication layers called Connection and Channel. LCP provides an IBC client that verifies the LCP-generated commitments. Thus, LCP can be easily integrated with the existing IBC Infrastructure.