github.com/ari-anchor/sei-tendermint@v0.0.0-20230519144642-dc826b7b56bb/docs/tendermint-core/light-client.md (about)

     1  ---
     2  order: 13
     3  ---
     4  
     5  # Light Client
     6  
     7  Light clients are an important part of the complete blockchain system for most
     8  applications. Tendermint provides unique speed and security properties for
     9  light client applications.
    10  
    11  See our [light
    12  package](https://pkg.go.dev/github.com/tendermint/tendermint/light?tab=doc).
    13  
    14  ## Overview
    15  
    16  The light client protocol verifies headers by retrieving a chain of headers,
    17  commits and validator sets from a trusted height to the target height, verifying
    18  the signatures of each of these intermediary signed headers till it reaches the
    19  target height. From there, all the application state is verifiable with
    20  [merkle proofs](https://github.com/tendermint/tendermint/blob/953523c3cb99fdb8c8f7a2d21e3a99094279e9de/spec/blockchain/encoding.md#iavl-tree).
    21  
    22  ## Properties
    23  
    24  - You get the full collateralized security benefits of Tendermint; no
    25    need to wait for confirmations.
    26  - You get the full speed benefits of Tendermint; transactions
    27    commit instantly.
    28  - You can get the most recent version of the application state
    29    non-interactively (without committing anything to the blockchain). For
    30    example, this means that you can get the most recent value of a name from the
    31    name-registry without worrying about fork censorship attacks, without posting
    32    a commit and waiting for confirmations. It's fast, secure, and free!
    33  
    34  ## Security
    35  
    36  A light client is initialized from a point of trust using [Trust Options](https://pkg.go.dev/github.com/tendermint/tendermint/light?tab=doc#TrustOptions),
    37  a provider and a set of witnesses. This sets the trust period: the period that
    38  full nodes should be accountable for faulty behavior and a trust level: the
    39  fraction of validators in a validator set with which we trust that at least one
    40  is correct. As Tendermint consensus can withstand 1/3 byzantine faults, this is
    41  the default trust level, however, for greater security you can increase it (max:
    42  1).
    43  
    44  Similar to a full node, light clients can also be subject to byzantine attacks.
    45  A light client also runs a detector process which cross verifies headers from a
    46  primary with witnesses. Therefore light clients should be set with enough witnesses.
    47  
    48  If the light client observes a faulty provider it will report it to another provider
    49  and return an error.
    50  
    51  In summary, the light client is not safe when a) more than the trust level of
    52  validators are malicious and b) all witnesses are malicious.
    53  
    54  Information on how to run a light client is located in the [nodes section](../nodes/light-client.md).