The Inter-Blockchain Communication (IBC) protocol is a blockchain interoperability solution that allows for arbitrary data transfer across blockchains in a secure and permissionless manner.
IBC was first deployed in March 2021 and has been adopted by 100+ sovereign chains and dApps. IBC development is open-source with hundreds of chains, developers, and teams contributing to its growth.
The design principles of IBC drew inspiration from the TCP/IP specification that enabled the creation of the internet. Mirroring the way TCP/IP sets the standard for seamless communication between computers, IBC defines a universal framework of abstractions that lets blockchains communicate.
The IBC protocol stack can be decoupled into two distinct elements: the IBC Transport Layer and the IBC Application Layer.
The IBC Transport Layer is agnostic to the contents of transferred data packets, much like TCP/IP. The IBC Transport Layer serves as a foundational layer upon which feature-rich applications are developed, similar to the applications that sit on top of TCP/IP and allow for the flourishing of end-user Internet applications.
The transport layer handles the transport, authentication, and ordering of data packets. The key components of the transport layer are light clients, connections, channels, and relayers.
Light clients are the heart of the IBC Transport Layer. A light client is a lightweight representation of a destination chain that lives within the state machine of the source chain.
For example, chains A and B are connected over IBC via their light clients. Chain A will have a light client representing chain B in its own state machine, and Chain B has a light client of Chain A. Light clients keep track of a counterparty blockchain’s consensus algorithm by verifying block headers and Merkle proofs.
Connections are responsible for connecting two different light clients together.
Channels act as a conduit to connect a module/application on the source chain to a module on the destination chain. Data packets between the source and destination chains are sent over this abstraction layer.
Relayers are permissionless off-chain processes that ferry data packets from one chain to another. They scan chain states, build transactions based on these states, and submit the transactions to the chains involved in the network. Relayers play a crucial role in IBC because chains do not directly send messages to each other over networking infrastructure. Instead, they create and store the data to be retrieved and used by a relayer to build IBC packets.
The application layer represents the interface through which end-users interact with the Interchain. It encompasses application modules such as fungible token transfers, interchain accounts, interchain queries, fee middleware, and many more. Application modules on the IBC Application Layer are composable, meaning they can be combined like building blocks.
The development of IBC is open-source. Anyone can contribute to the protocol, and the code repositories are provided for open-source usage on the IBC Github. There are no hidden fees within IBC and no in-protocol rent extraction.
A global community of development teams and contributors build and maintain the protocol, and its development team is funded primarily by the Interchain Foundation. You can read more about IBC's development philosophy on the About Us page, or head to the Technical Resource Catalog for information on which team developed a specific part of the code.
If you're interested in getting support, there are two free programs to learn how to build with IBC. The Interchain Developer Academy is a seven-week self-paced learning academy for developers that covers beginner to advanced learning for building with the Interchain Stack, including IBC, and provides certification upon successful completion of the final examinations. On the other hand, the Interchain Builders Program is an incubator for early-stage Interchain projects that offers technical support & guidance for Interchain founders & their teams.
Finally, the Interchain Foundation offers a free developer portal with educational resources and technical walkthroughs that cover the broader Interchain Stack, plus IBC.
Ready to dive into the code? Head to our GitHub to begin.