Generalized Message Cross-Chain Comparisons

Ease of integration, Speed, Reliability, Fees, Features, Implementations, Documentations

Multichain Dev Team
Multichain
4 min readSep 20, 2022

--

With many generalized cross-chain message protocols emerging, users are often curious about the differences between such protocols.

First of all, cross-chain messaging is often done to invoke contract functions. Applications include cross-chain swaps, NFT bridges, and cross-chain governance.

Projects building such infrastructure include Multichain with anyCall, Layerzeor, Celer, Wormhole.

We would explore the differences between these protocols based on common applications.

We would first dissect the most important elements of a cross-chain protocol which include speed , reliability, and fees. Then the article would explore finer details including features, documentation, and implementations.

Method of investigations:

The author would explore different message protocols by deploying the simplest message contract to send a message from chain A to chain B. This would act as a hello world example.

  1. Ease of integration

Before exploring other elements of the protocol, ease of integration is important. As core cross-chain infrastructure should be easy for dapps to use and set up. The implementation should be like an asset bridge that allows dapps to bridge “message” in one tx. Some projects explored were found to have confusing documentation and complicated setups. This section is mainly about the dev time needed to get the features working.

  • Celer: In addition to smart contracts that need to be deployed, Celer requires dapps to deploy their own Postgresql database in order to execute txes. This is similar to dapps having to set up their own cross-chain infrastructure in order to use such infrastructure. These steps were cumbersome.
  • Layerzero: Layerzero is simple to integrate from a forkable hardhat project. As a lot of codes were written by layerzero team already, dapps can integrate with minimal extra dev resources.
  • anyCall: anyCall contract is the easiest to understand as it’s a simple function that takes arguments of destination contracts. Following the docs and code examples, deploying is easy.

2. Speed

This section is about the contract execution speed from Chain A to Chain B, txes were tried on BNB testnet, rinkeby and ftm testnet. Speed is important but understandably, cross-chain txes need to wait for the appropriate time of block confirmations.

  • Celer: Configurable execution time, and longer or shorter block confirmations can be adjusted. This is the advantage of deploying your own executor.
  • Layerzero: Execution was done in a few minutes.
  • anyCall: Execution was done in a few minutes.

3. Reliability

  • Celer: Celer reliability is dependent on the server you run and the relayer.
  • Layerzero: Testnet was well maintained with constant test txes and mainnets are the same.
  • anyCall: Mainnet environments are stable with multiple chains including smaller chains. Testnet environments need improvements as sometimes txes aren’t executing. Testing on mainnets is recommended for anyCall.

4. Fees

All networks tested charged minimal fees with anyCall being a bit cheaper than other solutions. All fees structure are charged per byte data passed to destinations chains and a base fee.

Noted most protocols require fees to be paid on the source chain while anyCall allows fees to be paid on the destination chain. Allowing projects to subsidize users’ txes.

5. Features

This part would discuss the unique advantages/features of each protocol

  • Layerzero

Nonce system — Note-worthy feature from layerzero is a nonce system and blocking execution. Projects can make sure the order of their destination txes are exactly the same as the order of the source txes.

Hardhat integration — This is less of a feature but more of execution merit. Layerzero provides a hardhat template any project can easily build upon and test upon. This thoughtfulness makes dev experience easy.

  • anyCall

Fallback mechanism — With anyCall implementation, contracts can issue a fail-safe fallback back to Chain A when the execution on Chain B failed. For example, in the case of cross-chain swaps, when swaps failed on Chain B, users’ funds can be refunded on Chain A.

Other protocols don’t normally have this mechanism.

Wide supported chains — anyCall currently support BNB Chain, Polygon, Ethereum, Optimism, Gnosis Chain, Fantom, Moonriver, IoTeX, Arbitrum, Avalanche, Harmony. anyCall supports the most chains out of all the solutions.

Access to Multichain asset liquidity — With Multichain asset bridge, there are over 2 billions assets locked in the Multichain bridge at the moment. By integrating anyCall, you can harness this liquidity to create endless cross-chain possibilities which include cross-chain swapping and lending.

6. Implementations

This part talks about specific applications being built on each solution.

  • Layerzero
  1. Omni-chain NFTs
  2. Cross-chain migration. Some projects wish to do one-way migration from one chain to another. Layerzero is observed to be used for this purpose.
  • anyCall
  1. Omni-chain NFTs
  2. Permission-less bridging. AnyCall is used to set up asset bridges permissionlessly.
  3. Cross-chain governance. Curve used anyCall to enable cross-chain emission.

7. Documentations

Most projects seem to have decent documentation with another special note to Layerzero for creating a hardhat-based example/documentation. Making it easy to follow.

--

--

Multichain Dev Team
Multichain

Multichain Dev Team, all about cross-chain bridge techs