Skip to main content

Relaying

IBC

info

IBC handles the authentication and transport of data between blockchains, enabling cross-chain communication and interoperability.

The IBC protocol provides a reliable, secure and permissionless way for relaying data packets between blockchains, and the security of IBC reduces to the security of the participating chains.

IBC works by acknowledging packets through channels that are uniquely identified by the (channelID, portID) tuple

As an example, if a module on blockchain A wants to send an IBC packet to blockchain B, this happens by: -Chain A stores a commitment proof and logs an event with the packet information.

  • Packet's information and proof are submitted as an IBC message to the IBC client on chain B.
  • Chain B verifies the proof, and stores a receipt on-chain (if successful)
  • The relevant module of Chain B executes logic according to the IBC packet's details.

The power of IBC relies on its low-security assumption and its standardization of messages. Even if all relayers were acting maliciously, IBC's security would not be affected, as the packets sent would only get rejected because of invalid proofs.

As in this scenario only liveness would be affected, just spinning up a non-malicious relayer to relay packets would be effective. Relaying is permissionless, and relayers are not responsible for the cryptographic proofs contained in the IBC packets.

Because of IBC's neutrality for cross-chain communication, two sets of standards are being implemented:

IBC/TAO: Standards defining the Transport, Authentication, and Ordering of packets, i.e. the infrastructure layer (Core, Client, Relayer).

IBC/APP: Standards defining the application handlers for the data packets being passed over the transport layer (ICS-20, ICS-721,ICS-27..).

Relayers

Relayers ensure the relaying of IBC packets between chains, as they have access to full nodes of both chains and they can query and submit messages. Relayers are constantly monitoring channels for events to relay, and they are able rebuild IBC packets along with the proof.

Relayer forwards IBC data packets by running full nodes on both the chains they are relaying between, as they:

  • Query and submit messages
  • Monitor the events relative to the IBC packets
  • Construct IBC packets
  • Deliver proofs and receipts.

Next Steps

Now that you have acquatained with the concept of IBC, you can look into running a relayer