cosmos / ibc

Interchain Standards (ICS) for the Cosmos network & interchain ecosystem.
Other
908 stars 386 forks source link

ICS003: Remove client and consensus state validation during the connection handshake #1121

Open colin-axner opened 3 weeks ago

colin-axner commented 3 weeks ago

Summary

Remove the client and consensus state validation which occurs during the connection handshake.

Problem

During the connection handshake, IBC was designed to ensure the correctness of a connection/channel handshake such that when a channel is opened, we know that sending a packet can only be received and processed between two chains which are only connected to each other.

While on paper, this design approach makes a lot of sense, the abstraction of this logic has lead to difficulties on the implementation front.

Light clients represent other chains. A chain will have many light clients, one for each chain it would like to connect to. This abstraction is intuitive. A chain is only responsible for making sure its light clients are properly setup and functioning.

The connection handshake went a step further by ensuring not just that a chain's own light client is properly setup, but that the chain it wishes to connect to, has a correctly setup light client for itself. It does this by validating the client state and consensus state. The important information for a tendermint client, being the chain id and validator set hash.

Note that since we are not proving execution, we are not protecting against a malicious chain. We are only checking correctness of the relayers.

A few problems have arisen over time with regards to this construction:

Proposal

Social consensus is already required to avoid accessing a malicious chain. A user must select a channel which it believes to be correctly setup. Thus, we are not adding much defense with client and consensus state proofs. We should take advantage of the social consensus approach and remove the client and consensus state proof verification in the connection handshake.

Pros:

Cons:

damiannolan commented 3 weeks ago

The pros here outweigh the cons by a lot! Thanks for the writeup