When Satoshi Nakomoto released Bitcoin to the world in 2009, he not only created the world’s first decentralized digital currency, but also delivered the first application of blockchain technology. This technology gave us the ability to store data on the internet in a decentralized, trustless, verifiable, and immutable way. The code for this technology was also open source, which meant that any developer could expand upon this idea by creating their own blockchain and customizing it any way they wished.
Today, countless new blockchains have been spawned, each created with their own unique ideas, features, and focus on various combinations of factors such as transaction speed, privacy, legal compliance, supply chain management, smart contracts, or dApp development. These blockchains each address the needs of different groups of people, such as corporations, merchants, advertisers, developers, gamers, or individuals who value privacy.
However, one glaring limitation blockchain developers and users are currently facing is that these different blockchains are not interoperable. Because each blockchain is coded differently, they are in effect created in their own little bubbles, unable to communicate or interact with each other. This means users holding tokens on Blockchain A are by default unable to freely transfer the value of their tokens or make use of the features of Blockchain B.
Many different solutions have been proposed to tackle this problem of interoperability between blockchains. In this article, we will discuss some interoperability solutions currently being used and developed by some major players in the blockchain space.
One of the first basic steps towards blockchain interoperability is to enable the free and trustless transfer of tokens/value between different blockchains.
Atomex (https://atomex.me) is a wallet and exchange that allows holders of XTZ (Tezos tokens) and other supported assets to exchange cryptocurrencies in the manner described above using on-chain atomic swaps, made possible by using hashed timelock smart contracts.
Suppose Trader A has some Bitcoin that he wants to trade with Trader B’s Tezos. Here’s a simplified explanation of what would happen in a cross-chain atomic swap.
- Trader A creates a key and a matching lock (hash).
- Trader A takes some Bitcoin, secures it using the lock, and sends the locked Bitcoin over to Trader B.
- Trader B verifies that the amount of Bitcoin they received is correct, then sends the equivalent amount of Tezos to Trader A, secured with an identical lock.
- Trader A verifies that the amount of Tezos he received is correct, then takes out the key created in Step 1 to unlock and receive the Tezos tokens.
- Trader B can now see the key and simultaneously uses it to unlock the Bitcoin he received.
If the process is not completed within a specific time limit, the transaction fails and both parties get their money back.
The advantage of an atomic swap is that both users never relinquish control of their funds to a third party, so the funds are always secure. There are also no exchange fees to pay to any centralized party.
However, since these atomic swaps are on-chain, users will still have to pay on-chain transaction fees each time they want to make a trade. Atomic swaps can also be slow if one or both of the blockchains involved in the process are experiencing congestion issues. Atomex states on their site that swaps may take from several minutes to half an hour, with a maximum allowed time of 6 hours before the funds are returned to their owners.
Atomic swaps can also suffer from liquidity issues, since a counterparty is needed for the swap to happen. Atomex addresses this issue by offering liquidity providers.
Another way to transfer assets from one blockchain to another is by locking up the incompatible asset and creating a new compatible token to represent it. tzBTC (https://tzbtc.io/) is a tokenized representation of Bitcoin on the Tezos blockchain. Each tzBTC is backed by a single Bitcoin. After passing KYC checks, users can transfer their Bitcoin to a Gatekeeper and receive the equivalent amount of tzBTC. This tzBTC can then be freely transferred, traded, and used with decentralized applications on the Tezos blockchain.
While this approach does not suffer from the slower speeds of atomic swaps, it does require some trust in the mechanism or third parties responsible for holding the locked tokens. In the case of tzBTC, we must trust that the distributed group of Keyholders do not run away with the Bitcoin or allow new tzBTC tokens to be created without the corresponding Bitcoin to back them up.
Interoperability (https://cardano.org/why/interoperability/#cryptocurrency-interoperability) is one of the main goals of the Cardano blockchain. One way they hope to accomplish this is by using a system of sidechains.
A sidechain will in essence be its own Cardano-compatible blockchain, which can communicate with the Cardano blockchain through a two-way peg. This peg allows tokens/assets on Cardano and sidechains to be moved back and forth through a process of burning and creating.
As an example, suppose a user wants to move 10,000 ADA from the CSL (main Cardano blockchain) to a sidechain to make use of the sidechain’s privacy features. A transaction to burn 10,000 ADA from the CSL would be created. Then a proof is generated with details about the main CSL chain and the burn transaction, and sent over to the sidechain to confirm ownership of the funds. A representation of 10,000 ADA can then be created on the sidechain into the user’s account. At any time, this 10,000 sidechain-ADA can be transferred back onto the main CSL through a similar process.
Note that the 10,000 ADA is not converted into the sidechain currency, but stays as 10,000 ADA. This allows users to enjoy the benefits of the sidechain’s features without worrying about finding someone who will sell them new sidechain tokens or the price fluctuations that may occur afterward.
This system will allow projects built on Cardano as well as existing projects that choose to integrate the sidechain protocol to communicate and interoperate with one another.
One potential drawback of this approach is that sidechains are responsible for their own security. Depending on the resources or capabilities of the sidechain developer, this could lead to an additional vector of attack or vulnerability for a project.
Cross-Chain Message Passing
Polkadot allows developers in their ecosystem to create parachains that plug into their main Relay Chain for shared security. DOT tokens are required to be locked up in order for a new parachain to join the network.
To enable interoperability, validators on this Relay Chain will also help pass messages from one parachain to another through the Cross-chain Message Passing (XCMP) (https://wiki.polkadot.network/docs/en/learn-crosschain) feature. With this feature, Parachain A can release outgoing messages that trigger specific smart contracts on Parachain B. This not only allows for the transfer of assets between chains, but for cross-chain smart contract functionality.
Polkadot uses blockchain bridges (https://wiki.polkadot.network/docs/en/learn-bridges) to allow for communication between blockchains inside and outside of the Polkadot ecosystem.
More popular blockchains such as Bitcoin and Ethereum will have bridge modules written specifically to support compatibility/interoperability with Polkadot. Smaller, less popular blockchains can connect to Polkadot through bridge contracts, which are a combination of two smart contracts (one for each blockchain) that allows for the transfer of value between them.
Decentralized Interoperability Nodes
The recently launched Gravity Protocol (https://medium.com/gravity-protocol/introducing-gravity-protocol-53e2b7d02c89) This solution is the result of cooperation of the Waves core development team and Waves community who suggested this unique execution; Gravity is built upon a decentralized system of Gravity Hub Nodes. Each of these nodes will have public keys in one or more blockchains supported by the protocol as well as the Internal Distributed Ledger, and are able to communicate with each other through a communicator module. Through the connections these nodes have to different blockchains, Gravity Protocol is able to facilitate cross-chain transfer of data and value.
This flexible system allows Gravity Protocol to support a very wide range of blockchains. It could be used to perform functions such as the transfer of value from one blockchain to another through asset lockup/creation, as well as the triggering of smart contract functions across blockchains.
One unique feature of Gravity Protocol is that there is no native token. Instead, users pay node operators with the native tokens of the blockchains involved in each interoperability process. These tokens are then distributed to the node operators as rewards. Optionally, users can also lock up tokens instead of paying fees, thereby decreasing the supply of tokens in a particular blockchain and raising the value of those tokens held by node operators.
A potential drawback of Gravity Protocol is that node operators may not be incentivized to create addresses for less popular blockchains that do not see frequent use, making it more difficult for unknown projects to gain a foothold in Gravity Protocol. However, since Gravity Protocol is open for new node operators to join, supporters of newer blockchains have the ability to help bring interoperability features to their project simply by becoming node operators themselves.
In this article, we discussed different approaches being used by developers today to solve the problem of interoperability.
Atomic swaps can help facilitate cross-blockchain exchanges of tokens, but can be slow and cumbersome. They also do not help with the relay of data across blockchains to improve decentralized application interoperability.
Tokenized representations of cryptocurrencies like Tezos’s tzBTC make it convenient to work with assets from another blockchain, but rely on trusted third parties or potentially vulnerable code to be the custodian of the original asset.
Cardano’s sidechains are a promising feature that will allow users to use the value stored in one blockchain on another, but will either require developers to build on Cardano or customize their existing blockchain to support it. Since sidechains are responsible for their own security, they may be more vulnerable and easily attacked.
Polkadot allows anybody to join the network as a parachain, but requires DOT tokens to be locked up. Bridges consisting of two smart contracts will allow for connection to the Polkadot network without becoming a parachain. Their system focuses not just on the transfer of value across blockchains, but on the relaying of messages for cross-blockchain triggering of smart contracts.
The Gravity Protocol solution from Waves lets blockchains achieve interoperability without having to purchase or hold a new token. It is also flexible enough to be able to support both the transfer of data and value across blockchains. However, their decentralized node approach may lead to lower support for less popular blockchains.
Blockchain is the hot new technology that could potentially revolutionize the world. But in order for that to happen, developers must first tackle the problem of interoperability. Once blockchains are able to freely communicate and interact with each other, we will likely witness the rise of an entirely new wave of innovative new blockchain applications.