Comment on page
The Inter-Blockchain Communication (IBC) protocol is an end-to-end, connection-oriented, stateful protocol that enables reliable, ordered, and authenticated communication between heterogeneous blockchains with an unknown and dynamic topology. IBC allows blockchains to interact with each other and supports a wide range of cross-chain applications, including token transfers, atomic swaps, multi-chain smart contracts, and data and code sharding.
IBC applications are written as self-contained modules that don't need to be concerned with the low-level details of clients, connections, and proof verification. Key components of IBC include:
- 1.Clients: On-chain light clients that track the consensus states of other blockchains, along with the proof spec necessary to properly verify proofs against the client's consensus state.
- 2.Connections: Encapsulate two ConnectionEnd objects on separate blockchains, responsible for facilitating cross-chain verifications of IBC state and can be associated with any number of channels.
- 3.Proofs and Paths: IBC uses proofs and paths to communicate between blockchains, with relayers monitoring updates to paths and relaying messages by submitting data and proofs to the counterparty chain.
- 4.Capabilities: IBC uses a dynamic capability store for module authentication on ports and channels, ensuring that only modules with appropriate permissions can use them.
- 5.Ports and Channels: IBC applications communicate with other modules on different blockchains by sending, receiving, and acknowledging packets through channels identified by the (channelID, portID) tuple.
IBC protocol allows for secure and efficient communication between different blockchain networks, paving the way for interoperability and collaboration in the decentralized ecosystem.