What is the difference between IBC and ILP?
https://cosmos.network/docs/spec/ibc/
At a high level, Interblockchain Communication (IBC) is a protocol that locks up state on one chain and spawns it on another. You can watch proofs of this lock up (the lock up is really just holding it in a “smart contract” designed to coordinate IBC) through light clients, so you could have the target chain act as a light client of the original chain (the one we lock up on).
This is a good protocol if you want to leverage NFTs and do cross chain contract calls but it’s quite resource heavy for value transfers. Hence, the alternative is to do atomic ledger swaps through a 2 phase commit through various payment channels that intersect with another user, except in Interledger we argue that true atomicity isn’t required (and has multiple benefits). See Lightning vs. Interledger.
Helpful slideshow for IBC here, by myself and Sunny Aggarwal of Cosmos!
Great question @Suneet, this one gets asked a lot.
The main similarity between Interledger and Cosmos is the branding (“Internet of Value” vs “Internet of Blockchains”). The intended use case and range of ledgers the two can support is very different.
The two technologies are complementary and so Kava has been working with the Tendermint team on integrating Cosmos with Interledger.
Use Case
As @akash mentions, the main purpose of IBC is to allow you to move an asset or token from one ledger (Cosmos “zone”) to another. For example, if there is a Crypto Kittie issued on one zone, this would allow me to move my kittie to another zone to play some other blockchain-based game, and then to move it back (all the while I have ownership over it).
ILP is designed to enable you to pay or exchange assets across different ledgers. When I send some currency or token through ILP, it will be exchanged in real-time for assets on other ledgers, and the equivalent value will show up in your account as some other asset (whatever you want to hold). When using ILP, you are intentionally giving up ownership of your original asset to exchange it and ultimately deliver something different to the recipient.
As mentioned above, these two functions are completely separate and complementary. For example, you could use ILP to do exchanges or payments between two Cosmos zones, or between a Cosmos zone and another ledger (this is what Kava is working to enable).
Supported Ledgers
The other major difference is the type of ledgers that the two protocols can support. ILP requires only that the ledger supports sending a simple payment, and thus can integrate a very wide variety of ledgers, even if they were not designed to work with Interledger. In contrast, IBC is a deeper level of integration and requires blockchains to understand one another’s internal state, so it will mostly be used for connecting new blockchains designed specifically to work with it.
I would argue that Cosmos (and Polkadot as well) is more a framework or toolkit for building blockchains that understand one another, rather than a general interoperability protocol for linking all ledgers together. You could also say that ILP isn’t a “general interoperability protocol”, in that it only focused on value transfer, rather than other types of interoperability. I think the parallel between the internet and the Interledger idea of the “Internet of Value” is stronger, because the design of ILP has direct technical parallels with TCP/IP (intentionally) and the Internet was more about bridging networks that weren’t designed to work together. But this isn’t the most useful debate.
@tarcieri, @scott, or @rhuairahrighairidh might want to weigh in on this because they work more directly with Cosmos.