# Inter-Blockchain Communication Message Relay Time Measurement and Analysis in Cosmos +
## 2 Related Work
### Cosmos Interoperability
#### 2.1.2 Inter-Blockchain Communication  
The end-to-end IBC protocol allows independent blockchains to communicate and transfer value by relaying messages between them. The IBC protocol employs several consensus techniques and state machines. The primary goal of IBC is to enable diverse networks to connect and exchange value, particularly tokens, without intermediaries. IBC ensures that communication between heterogeneous chains is trustworthy, coordinated, and validated. The IBC protocol's transport and application layers are distinct. The transport layer must deliver, authenticate, and sort data packets via IBC between blockchains. There are no rules or specifications about the data type that should be delivered or how the receiving chain should perceive this layer. Its constituents include light clients, Relayers, connectors, and channels. To verify block headers, blockchain light clients communicate data with full nodes. Full nodes are high-performance computer and storage devices that allow blockchains to communicate without intermediaries. Channels transfer data across modules, and connections connect light clients on different chains. Relayers are permissionless; users can obtain data packet hashes from the destination chain's state machines using them. Tokens, NFTs, and Oracle are examples of user-facing application layers that employ the transport layer. The IBC protocol's ICS-20 token standard describes the format of data packets and how receiver chains should understand them. For example, data packets for token transfers include information about the sender, receiver, token quantity, and denomination. Like a postal delivery system, the IBC protocol's transport layer connects numerous blockchains without divulging their contents or intended use. The application layer processes the IBC protocol's data packets, including information on the chains' transmission and receiving, including the channels' I.D. Figure 2 depicts an inter-blockchain communication mechanism for transferring a fungible coin from heterogeneous blockchain A to blockchain B. Transferring an IBC token from the Application Layer of a transmitting node on Blockchain-A to the receiving wallet address on Blockchain-B is requested. The information provided when the IBC layer gets the request is used to determine the receiving wallet address, the receiving wallet address, and the sending wallet address. After receiving the request to construct an IBC Transfer transaction, the IBC layer inputs the sending wallet address, receiving wallet address, tokens, token unit, sending port, sending channel, timeout block height, timestamp, and sequence. Figure 1: Cosmos hubs and zones. A sequence is a single transaction representing the total transactions produced through a particular channel since the genesis block. The sequence value for all inter-blockchain communication transactions for a specific transaction is the same [9]. The IBC Transfer layer delivers IBC Transfer transactions to peers linked to the transmitting node. The token linked with the IBC Transfer transaction in Blockchain-A becomes locked once the transaction has been validated and incorporated into a block. Messages are not transmitted between blockchains directly in a blockchain-to-blockchain communication architecture. Instead, they generate messages that must be transferred and physically relay them from the sending blockchain to the receiving blockchain via a relay [14]. Relayers are in charge of transmitting inter-blockchain communication transactions and regularly checking the state of blockchains that use IBC protocols. Relayers consolidate and package inter-blockchain communication transactions before transmitting them to the recipient Blockchain-B through IBC RecvPackets. Before being committed, the inter-blockchain communication transaction is confirmed on the receiving blockchain using the IBC layer's Light Client. After the IBC RecvPacket transaction on Blockchain-B is completed, a voucher is generated and given to the recipient's wallet.