IBC provides a protocol for interoperability between different blockchains and is standardized as ICS. The IBC provides standardization for the following mechanisms:
- Two distinct layers: the transport layer (TAO), which is for relaying packets between the two blockchains in a reliable, ordered, and authenticated manner, and the application layer to build a cross-chain application
- Separation of messaging (connection + channel) and verification (client): An on-chain light client that verifies each chain can be implemented as an IBC client to obtain a messaging scheme that is independent of the verification method
- Commitment specification for efficient verification of a particular state transition on a chain on a different chain
- Relayer, an off-chain process for physically relaying datagrams between chains: Exact-once delivery and delivery-or-timeout properties are guaranteed even in the presence of malicious relayers.