What are cross-chain bridges?
These are decentralised applications that let the same asset move between different blockchains.
Cross-chain bridges allow tokens of various standards (ERC-20, BEP-20 and others) to move between blockchains. Some bridges enable transfers between chains built on different technologies (Bitcoin, Ethereum, Litecoin, Dogecoin), as well as between layer-2 scaling solutions (Arbitrum, Optimism).
To move funds across blockchains, bridges may mint wrapped assets, draw on liquidity pools in several ecosystems, or rely on relay nodes that hold liquidity on multiple chains.
To use a cross-chain bridge, connect via a Web3 wallet such as MetaMask. After sending funds through the decentralised application, they will arrive at your address on the destination blockchain. In practice, a cross-chain transfer is much like a swap within one blockchain on a non-custodial exchange.
Why are cross-chain bridges hard to implement?
An exchange between two users—one wanting to buy asset A and the other to sell it for asset B—requires a third party (a guarantor) if there is no mutual trust. The guarantor receives asset A from the seller and asset B from the buyer. Once both are in hand, the guarantor pays out to each party, completing the trade.
This logic can underpin any exchange. An exchange can play the guarantor. Within a single blockchain, a smart contract can act as guarantor.
A smart contract locks each party’s funds asynchronously; once both transfers are submitted, it unlocks and disburses the required assets to each user. Until recently this approach was not widespread, as it required a buyer and a seller willing to trade the same size at the same time.
On non-custodial exchanges, liquidity providers (LPs) lock funds to enable swaps. When a user swaps, their funds go into a liquidity pool in one asset and, in return, they receive another asset. All of this is run by smart contracts and needs no guarantor.
But smart contracts execute only within a single blockchain (for example, Ethereum). If assets must move to a different ecosystem, this logic fails because a contract cannot interact with another chain.
Cross-chain transfers need specialised algorithms that can interact with several blockchains. They also require liquidity providers on different systems. To make this work, layer-2 scaling solutions are widely used.
L2 smart contracts can ingest information from other ecosystems, including details of transactions on Bitcoin, Ethereum, Binance Smart Chain (BSC) and others. They can also consume external data from analytics resources via oracles.
How do wrapped tokens enable cross-chain transfers?
One approach to moving assets across blockchains requires the use of wrapped tokens. Assets are moved using two paired operations: locking coins — minting wrapped coins and burning coins — releasing coins, as well as combinations thereof.
This approach is implemented in Ren. It suits transfers between different blockchains. Consider Ren’s bridge between Bitcoin and Ethereum.
For a cross-chain transfer, a user sends BTC to a Bitcoin address generated by the decentralised app, while specifying their address on Ethereum. The BTC is locked and, in exchange, the user receives wrapped Ethereum tokens, renBTC. These ERC-20 coins are pegged to the price of the underlying asset. They can be freely swapped and transferred.
Any renBTC holder can redeem the underlying asset on the source blockchain (in this case, Bitcoin). To receive BTC, the user sends renBTC to an address generated by the app. The wrapped tokens are then burned and BTC is transferred to the user’s Bitcoin address.
Using wrapped assets to move stablecoins between EVM-compatible blockchains is rarely sensible, because better solutions already exist. For example, issuing renUSDC to move USDC from Ethereum to BSC would be redundant where a native USDC token already exists on that network.
How can an intermediary blockchain power a cross-chain bridge?
A promising way to move assets across networks is to use a specialised blockchain.
This mechanism is used by THORChain, which employs the native token RUNE. The technology relies on liquidity providers who deposit funds into pools and earn yield.
The algorithm involves depositing funds into liquidity pools on two blockchains, one of which is THORChain. Most capital is posted in RUNE as collateral; the rest is used to execute swaps. The project enables swaps between assets from different blockchains with differing values.
A swap proceeds in two stages via a decentralised application. First, the asset on the source chain is swapped for RUNE using the first liquidity pool.
Second, RUNE is swapped for the asset on the destination chain using the second liquidity pool.
Take BTC-to-ETH. Two liquidity providers are needed: one supplies BTC and RUNE; the other supplies ETH and RUNE.
All actions run through the dApp. After the user submits a transfer request and specifies a destination address on Ethereum, they send BTC to the address provided by the application.
The BTC goes to the first liquidity provider, who sends an equivalent value in RUNE to the second LP. The second LP, having received RUNE, transfers ETH on Ethereum to the user’s specified address.
These operations are automated. LP honesty is backed by collateral whose value exceeds the funds used for swaps. Two liquidity pools enable two-way exchange.
THORChain can move stablecoins (USDT, USDC and others) between EVM-compatible blockchains—Ethereum, BSC, Huobi ECO Chain (HECO), and so on. There are no preset restrictions on asset types or blockchains. The only requirement is the presence of appropriate liquidity pools.
How are transfers executed between EVM-compatible blockchains?
For transfers between EVM-compatible blockchains, L2 solutions are often the best choice. By interacting with base chains via smart contracts, they can deliver fast transfers and swaps across both first- and second-layer systems.
L2 solutions enable a universal method for moving funds between blockchains. If a liquidity provider has assets on both the source and the destination, the transfer uses only those two systems and that single provider’s funds.
If no single LP holds assets on both the source and destination, one or more intermediate chains can be used. Either a first- or second-layer chain can act as intermediary. In each, channels for asset transfer are formed.
As a general example, consider the transfer algorithm using an intermediate blockchain via Celer Network’s cBridge.
Node A is a user with funds on chain 1 who wants to transfer them to node D on chain 3 (for a self-transfer, the same user is represented by address A on chain 1 and address D on chain 3).
If there is no liquidity provider with assets on both chains 1 and 3, the decentralised application selects two relay nodes, B and C. Relay B holds assets on chains 1 and 2 and provides liquidity for swaps between those chains.
Relay C similarly connects chains 2 and 3. Smart contracts are deployed across the three chains to create three transfer channels linking nodes A, B, C and D.
Relays B and C serve as liquidity providers and route payments. They are compensated for these services.
Unlike the traditional LP model used by non-custodial exchanges, relay funds are not locked for long periods. They are locked only during the swap, in the amount needed to complete it.
cBridge uses smart contracts with time-locked escrows—Hashed Time Lock. During a cross-chain transfer, funds move from the user to the LP via a smart contract that locks assets for a set period. Within that window, the relay must pay out to the user on the destination chain.
If the relay does not complete the transfer in time, the locked funds are returned to the user.
Celer Network’s architecture is open-source software, allowing anyone to run a relay node. The smart-contract-based algorithm protects users from losses even if a relay turns malicious.
Which cross-chain bridges are available?
The rapid rise of DeFi and non-custodial exchanges has spurred decentralised applications for cross-chain transfers. Most share similar interfaces, but their mechanics can differ markedly. Popular bridges include:
- cBridge. A project focused on an L2 solution that uses smart contracts for cross-chain transfers. It lets users move stablecoins and a limited set of tokens across Ethereum, BSC, HECO and other ecosystems, as well as between various layer-2 networks (Arbitrum, Polygon, etc.).
- Hop Exchange. An L2 solution that uses smart contracts to transfer assets between layer-2 networks (Arbitrum, Polygon, etc.). Transfers are executed in stablecoins.
- xPollinate. A bridge that uses smart contracts to transfer stablecoins between BSC and layer-2 networks (Arbitrum, Polygon, etc.).
- THORChain. An intermediary blockchain that enables swaps of BTC, LTC, BCH and other assets. Swaps occur between the respective native chains, as well as with Ethereum and Binance Chain. A large number of ERC-20 and BEP-20 tokens, including native coins, is also supported.
- AnySwap. The project employs several cross-chain transfer technologies. It supports swaps for many tokens across Ethereum, BSC, HECO, OKExChain and between various L2 solutions.
- Ren. A bridge that moves BTC, BCH, DOGE, ZEC and other assets from their native blockchains by minting wrapped tokens, and supports redemptions in the opposite direction. Destination chains include Ethereum, BSC, Polygon, Arbitrum and others.
How to use the cBridge cross-chain bridge?
Moving an asset between two blockchains is much like a swap within one chain. As an example, consider transferring USDC from Arbitrum to Binance Smart Chain using cBridge.
As with single-chain swaps, first connect to the bridge via a Web3 wallet such as MetaMask. Your selected blockchain and address will appear in the top-right corner.
The interface for a cross-chain transfer is straightforward. Select the source and destination blockchains and the asset.
In our case, choose Arbitrum as the source and Binance Smart Chain as the destination; the asset is USDC.
Before swapping, make sure there is enough liquidity. For some routes it may be absent or insufficient.
After selecting the parameters, enter the transfer amount (for example, 50 USDC). If the route is active (a relay node exists for it) and liquidity is sufficient, you will see the amount to receive (49.6 USDC) and the fee (0.39 USDC). If satisfied, click Transfer.
Next, MetaMask will ask you to approve the use of USDC. This is a one-off step; subsequent USDC transfers from Arbitrum will not need approval. Then submit the cross-chain transfer request.
The application will prompt you to confirm interaction with the smart contract, which incurs a fee. After confirming in MetaMask, wait for the transaction to be confirmed on-chain.
After submitting the request, wait for the relay node to respond. Then initiate the transfer by clicking the relevant button and confirming the operation in MetaMask.
Once sent, the relay will deliver assets to your account on the destination blockchain. On completion, you will see a confirmation of the cross-chain transfer.
Finally, switch the network in MetaMask to the destination chain and check your balance. You can view transaction details in a block explorer.
What is the outlook for cross-chain bridges?
Current trends suggest it is unlikely that a single blockchain will dominate and displace all others. Despite Ethereum’s breadth, L2 solutions are emerging that offer high transaction speeds, lower fees, and greater flexibility and functionality.
Several EVM-based ecosystems (Binance Smart Chain, Huobi ECO Chain and others) are booming. The multiplicity of competing blockchains creates a clear need for cross-chain transfers.
Stablecoins are widely used in such operations. They exist on different blockchains and are not prone to large price swings. They are convenient for storing value over time.
With DeFi advancing rapidly, cross-chain bridges are gaining popularity relative to conventional exchanges. The technology is in demand, new projects are proliferating, and the direction looks promising.
