Inter-Blockchain Communication (IBC)

The Inter-Blockchain Communication (IBC) protocol is an end-to-end, connection-oriented, stateful protocol for reliable, ordered, and authenticated communication between heterogeneous blockchains arranged in an unknown and dynamic topology.

IBC is a protocol that allows blockchains to talk to each other.

The protocol realizes this interoperability by specifying a set of data structures, abstractions, and semantics that can be implemented by any distributed ledger that satisfies a small set of requirements.

Our blockchain leverages on IBC to build a wide range of cross-chain applications that include token transfers, atomic swaps, multi-chain smart contracts (with or without mutually comprehensible VMs), and data and code sharding of various kinds.

How it works

Take an example where an account on our blockchain wants to send 10 CST to another chain X

Tracking

Continuously, chain X receives the headers of our chain, and vice versa. This allows each chain to track the validator set of the other. In essence, each chain runs a light-client of the other.

Bonding

When the IBC transfer is initiated, the CST are locked up (bonded) on our chain.

Proof Relay

Then, a proof that the 10 CST are bonded is relayed from our chain to chain X

Validation

The proof is verified on chain X against our chain's header and, if it is valid, then 10 CST-vouchers are created on chain X.

Note that the CST that have been created on chain X are note real CST, as CST only exist on our chain. They are a representation on X of CST from our chain, along with a proof that these CST are frozen on our chain.

A similar mechanism is used to unlock CST when they come back to their origin chain.

Last updated