Authored by Timothy Hao Chi Ho
How ChainSafe is building tomorrow's interoperable multi-chain world
Where ChainBridge fits into the interoperability puzzle
ChainSafe CEO and co-founder Aidan Hyman summarizes the criticality of blockchain interoperability with this great quote:
"If we are not able to get competitors to see value beyond zero sum thinking, not only will we lose, but the entire blockchain ecosystem will lose as well. It is crucial and paramount for the success of this ecosystem to not only work together, but to collaborate on the specific infrastructural pieces that bring us closer... and allow us to unite beyond the necessarily competitive nature of ‘success'."
ChainSafe's response to this imperative has been ChainBridge.
ChainBridge is a ConsenSys-audited modular & multi-directional blockchain bridge that allows data and value transfer between blockchains. The ChainSafe team began building this message passing protocol in 2018 in earnest. Both Colin Schwarz's article ChainSafe Building ChainBridge and Polina Aladina's talk from CSCON ChainBridge 101 provide excellent overviews for how the bridge works, and what partners have taken an interest in utilizing this technology.
Blockchain bridges, like the real world structures that connect two naturally disconnected points, are shared infrastructural components that transfer value and information between technologically distinctive and unique blockchains together. They work towards an economically sovereign but interoperable multi-chain world - a vision ChainSafe is committed to helping realize.
Our 2.0 vision for ease of integration with future blockchains
From the get-go, ChainSafe has developed ChainBridge with two top priorities:
Composability - anyone should be able to take the components of ChainBridge and construct an adaptable bridge solution to fit their needs
Compatibility - every chain integrated into ChainBridge should be able to interoperate with other chain implementations (i.e. if Chain A can bridge to Chain B, then Chain A can also bridge to Chain C)
With these priorities in mind, we have taken a look at our current iteration of ChainBridge and see two key areas that need improvement. Firstly, the code is too rigid for teams looking to add their own custom logic. Now that multiple teams have deployed multiple instances of our bridge - including seeing first hand what teams want to change, what works, and what doesn't - we can better hone in on what we need to do better to facilitate composability and compatibility. Secondly, the burden on relayers to configure their instances correctly leaves room for a lot of issues that are really unnecessary. By baking-in some of these configurations to the software, instead of utilizing large configuration files, we can relieve this pain point.
Given what we have learned from building and deploying ChainBridge 1.0, our v2.0 release will aim to allow for a more generalized, easier to deploy solution where other teams can add customized components to fit the adaptations they require.
This will see the codebase undergo refactoring so that our future partners will have complete control over the on-chain (Listener and Writer) components of the protocol. Currently, the bridge can pass any information between chains via the fungible (e.g. ERC-20), non-fungible (e.g. ERC-721), and generic handlers. However, custom implementation of bespoke on-chain handlers need to be created to handle other types of messages. Thus, the next iteration of ChainBridge will be built such that listeners will be able to listen to any event, and writers will be able to create any transaction.
When v2.0 is released, instead of using the ChainSafe/ChainBridge repo and forking code that requires further development, we will provide a template that makes use of a ChainBridge library that allows teams to easily configure or modify it as they see fit.
Also, we plan to make deployments much smoother. Currently, ChainBridge is deployed via a command line interface (CLI). To facilitate easier deployments, we are improving our tooling with v2.0. Thanks to all the great feedback we've gotten from deployment teams, we plan to simplify the deployment process by automating some of the steps required. We also plan to introduce more debugging utilities to help teams identify issues.
Finally, for EVM bridges, we have implemented and tested gas optimizations which reduce gas costs by up to 58%! In a similar vein, gas costs associated with deploying bridges are reduced by up to 36%. We are super excited to share these optimizations with the community once we introduce them to the main repo soon!
We will be sure to share more updates in the future once we have solidified our plans for ChainBridge moving forward.
Beyond version 2.0, the focus of development will turn to reducing/eliminating the strong trust requirements of ChainBridge. Currently, requisite trust is required in relayers and contract admins for the functioning of the bridge. The focus for version 1.0 had always been to build the scaffolding necessary for message passing functionality. For version 2.0 and beyond, we will be researching ways to minimize this trust and improve overall bridge security and functionality.
In the 8 months since our first update, we have also seen an exciting number of new and old partners successfully test and integrate our bridge contracts!
Awarded via the Avalanche-X grants program, ChainSafe collaborated with the Ava Labs team and relayers by deploying a working Avalanche-Ethereum Bridge (AEB) that enables seamless ERC-20 and ERC-721 token transfers between the two ecosystems. Almost 400 tokens are whitelisted. With such a wide reach into the Ethereum ecosystem, lots of exciting opportunities and use cases open up on Avalanche.
Protofire, Hashquark, POA Network, Avascan and Meter secure the bridge contracts as trusted relayers, minimizing the need for trust within Avalanche's relayer set. We are excited to see more work done in this area by other teams implementing our bridge and following Avalanche's lead with relayer security.
The Ava Labs team detailed the bridging process with their article The Avalanche-Ethereum Bridge: What You Need to Know. The bridge was also officially launched on Feb 8, 2021, and within 4 hours, $1mm had already been transferred from Ethereum to Avalanche. As of this writing (24 hours after the launch), over $31mm USD (!) in tokens have been locked in the Ethereum bridge contract. You can read more about the launch of the bridge with this article from The Block. You can also try the bridge for yourself here. To see the bridge in action, check out this great talk by Leart Ulaj from Ava Labs demoing the Avalanche-Ethereum bridge on the Gorli and Fuji testnets!
Moonbeam is an EVM-implementation parachain that aims to have full Ethereum compatibility (including Web3 tooling) in the Polkadot ecosystem. Moonbeam and ChainSafe have been working on integrating ChainBridge since November 2020, and they were able to successfully bridge their Moonbase Alpha testnet with Ethereum's Kovan testnet in January 2021. You can read their announcement here.
The Moonbeam x Ethereum bridge will be the first working ERC-20 bidirectional bridge between a Polkadot parachain and an Ethereum chain. The opportunities to synergize interop between Polkadot and Ethereum here is boundless, with special note to what it can do for expanding breadth of DeFi coverage across both ecosystems.
The Moonbeam team have written detailed documentation, including a very helpful tutorial, on their implementation of ChainBridge here.
Ampleforth is an Ethereum-based rebase token with an algorithmically adjusted circulating supply. They are currently working on a ChainBridge implementation by taking a fork of our code and modifying the contracts for their specific use case in allowing AMPL transfers between Polkadot and Ethereum.
Brandon Iles, co-founder of Ampleforth, dropped by CSCON to give a talk introducing Ampleforth, its multi-chain vision, and how ChainBridge can play a role within this scope.
The Plasm Network is a Substrate-based blockchain looking to become a future parachain within the Polkadot ecosystem. It aims to provide a smart-contract platform with layer 2 solutions like Zero-Knowledge Rollups. A Plasm-Ethereum bridge between the Dusty and Kovan testnets is currently in development, with potential for a bridge to also be implemented for the Avalanche C-Chain as well.
Edgeware is a community-owned upgradable smart contract blockchain built with Substrate also looking to become a parachain in the future. They are currently working on an implementation of the ChainBridge module to bridge Edgeware to Ethereum.
An interesting focus for Edgeware is minimizing trust and reliance on the trusted relayer set by identifying appropriate incentives for relaying. The Edgeware team have explored options with organizing and funding relayers into DAO/Working groups via community governance, adding fee incentives to relayers upholding and securing the bridge infrastructure, and streaming payments directly from the community treasury funds.
You can check out Drew Stone (CTO at Commonwealth Labs and Tech at Edgeware) discussing ChainBridge and Edgeware in this CSCON talk here!
Centrifuge is a Substrate-based blockchain within the Polkadot ecosystem tokenizing real world assets for decentralized finance. We successfully helped them implement one of the first functioning bridges between a Substrate-based chain and Ethereum.
We owe a huge thanks to their team for supporting the early developments of ChainBridge and for helping us realize our vision of an open-source, collaborative bridging solution.
We have also helped Ethereum Classic implement a functioning bridge to Ethereum. It works by wrapping Ethereum Classic tokens as wETC onto the Ethereum mainnet. This expands DeFi reach into the Ethereum Classic ecosystem.
Thank you to Polina Aladina, David Ansermino, Amer Ameen, Willem Olding, Stu Peters, Greg Markou, Aidan Hyman, Jay Kurahashi-Sofue (Ava Labs), and Cindy Chau. Your contributions were invaluable to the making of this article.
Wanna work on this project? ChainSafe's HIRING! Come work with us!!!!!!!!
You can check out the ChainBridge github repo here.
If you have any questions, please pop into our Discord, we will be more than happy to answer any queries!
You can also reach out to us if you would like to explore bespoke implementations of ChainBridge to suit your use case. Also, feel free to contact us if you would like to get involved in the project in some other capacity.