# Introduction

### What can this be used for?

This library can be used for building applications that need to use Ethereum's consensus in a trustless manner.&#x20;

One example application would be a light client that uses the sync committee for tracking Ethereum's consensus on devices with limited compute resources such as a smartphone.&#x20;

### What is the light client sync protocol?

The light client sync protocol can be used for verifying Ethereum's consensus without having to run a full consensus node. In the Ethereum's Proof of Stake chain, also known as the Beacon chain, there is a special type of committee of validators known as the sync committee.

A sync committee is made up of 512 validators who are responsible for generating a signature for each new block. By generating a signature, the validators collectively agree on the validity of the block's contents. This signature is included in the block as an aggregated value so it can be cheaply verified. Tracking the participation of this committee is very lightweight compared to tracking the participation of the entire validator set.

To learn more about this protocol, here are some links to useful resources:

* <https://piertwo.com/blog/consensus-light-client/>
* <https://github.com/ethereum/annotated-spec/blob/master/altair/sync-protocol.md#introduction>

### Does the library use any specifications?

This library follows the technical documentation outlined in the [Ethereum consensus specifications](https://github.com/ethereum/consensus-specs/tree/dev) for correctly communicating with consensus layer nodes and running the sync protocol.
