Original author: Tim Robinson
Original compilation: Luffy, Foresight News
Why is seamless mobility needed?
Last weekend, all my Farcaster friends were talking about a hot new coin on Base: $DEGEN. In a fit of FOMO, I checked my Rabby wallet to see how much I could invest:
Well, I can put $500 into this token and just need to sell some other assets. What does my investment portfolio look like?
Its terrible, almost every token is on a different L2. In order to obtain $DEGEN, I have to perform multiple cross-chain and transaction operations. Even with low fees, the time it takes to cross chains and exchanges can still be frustrating.
We have to solve this problem and our goal is to make the entire Ethereum ecosystem feel like one network. Let’s see how unified liquidity combined with wallet upgrades abstracts cross-chain and makes the cross-chain L2 experience just like using a single chain.
No need to cross-chain
Why are cross-chain bridges currently bad? It has many flaws:
You have to visit a separate website, connect the wallet, approve, transfer, pray it gets to the other end…
Cross-chain usually takes 5 - 30 minutes to complete, which is too slow, ideally less than 10 seconds.
Most cross-chain bridges require locking liquidity on both networks. The more L2 we have, the more dispersed the liquidity is. Low liquidity makes it difficult to move large amounts of money between chains, and you get worse prices as a result.
Only certain liquid tokens can cross-chain, and for most networks these are ETH and stablecoins.
There are some wrapped tokens that do not require locked liquidity and can support any token. However, after cross-chain, you will get a non-native version of the token you need and have to exchange it for a real token to be used in any DApp on the new network, which requires liquidity, so we end up in the same situation trap.
The bottom line is, if cross-chaining doesn’t need to happen, why are we wasting millions of hours doing it?
Wallets and applications should automatically handle cross-chain
When you use a DEX or lending protocol, it should track your tokens across all chains. When you deposit tokens from another chain, it should automatically cross-chain them to the correct chain in the background, so the user experience of this process should be exactly the same as on the Ethereum mainnet alone.
Applications and wallets want to make this happen, but the underlying infrastructure isnt good enough yet. If it takes 10 minutes to complete a cross-link and you lose 1% of your tokens in the process, most users will be dissatisfied.
Lets delve deeper into the infrastructure layer and see how to solve this problem.
How to achieve seamless flow of liquidity
There are 3 main approaches to unifying mobility in L2 networks, which have different trade-offs but complement each other.
Shared Ecosystem Cross-Chain Bridge: Achieve seamless aggregation of liquidity across the entire chain ecosystem.
Mint/Burn Tokens: Can be transferred between any supported chains without limit.
A native cross-chain bridge of mutual trust: Achieving aggregated liquidity across ecosystems.
Shared interoperability layer
When you cross-chain from the Ethereum mainnet to any L2, the process looks like this:
How cross-chain bridges currently work
Each cross-chain bridge is a smart contract on Ethereum, which we call a native bridge. When you cross-chain to L2, your assets will be locked on L1 and a copy will be minted on L2. These networks have the ability to mint unlimited amounts of any asset supported by their native bridge.
Despite having the same name and not being called wrapper assets, assets that cross-chain from Ethereum to any L2 via the chains native bridge are actually wrapper assets because their contract addresses are different. The contract address of USDC on Ethereum starts with 0x a 0 b 8, on Arbitrum it starts with 0x af 88, on Optimism it starts with 0x 0 b2c, and on Polygon zkEVM it starts with 0x a 8 ce.
The assets all look the same because the wallet and app have an official asset list and display official icons so users will never know the difference.
What if instead of each L2 having its own cross-chain bridge, they all share one? Assets can be minted on a shared chain called the interoperability layer and then minted on destination L2.
How Aggregated Blockchain Bridge Works
Polygon calls this new design a converged blockchain.
What is the use of this design? When an asset is moved from one chain in this ecosystem to another, such as from Polygon zkEVM to OKX X 1, it does not have to go through a traditional cross-chain bridge back to Ethereum first. Instead, you can destroy the asset and have the interop layer mint the exact same amount of the asset on the target chain.
Transfer funds on the converged blockchain
Now, assets that cross chains through the above-mentioned interoperability layer are exactly the same on every chain in the ecosystem. Assuming the interop layer is free to use and fast (Polygon says their final completion time is less than 20 seconds), you will be able to cross-chain assets of any size between any L2 in the ecosystem in seconds for free.
Both Polygon and zkSync are developing this kind of interoperability layer for their ecosystems, and judging from Optimisms design document that includes a shared cross-chain bridge, it seems they are also exploring this area.
The disadvantage of the interoperability layer is that it can only operate within one ecosystem and requires all chains to use a cross-chain bridge, which increases the risk, but the benefit of allowing liquidity to flow seamlessly between all chains in the ecosystem More than enough to make up for it.
Since all tokens are fungible across the ecosystem, your wallet does not need to show the chain the asset is on or sort tokens by chain. Instead, your wallet might look like this:
When executing transactions across multiple chains, your wallet can simply show that you are using the Polygon network and automatically perform all cross-chain operations in the background.
This design is so wonderful, why wasnt it completed sooner? ZK Proofs have only recently become fast and cheap enough to make this possible. The interop layer uses ZK Proofs for all casting/burning, so it can be completed in seconds without any challenge periods.
advantage
A fast, easy, and standard way to transfer tokens between chains
Any number of tokens can be cross-chained without slippage
Possibly completely free to use
shortcoming
Only available in a single ecosystem
A cross-chain bridge is a single point of failure for the entire ecosystem
Must be designed from scratch and cannot be added to the existing ecosystem without significant changes
Cross-chain tokens
Chains can hand cross-chaining over to the tokens themselves, rather than relying on shared ecosystem cross-chain bridges. Tokens need to implement mint/destroy functionality and allow users to destroy tokens at any time to mint them onto another chain.
Migrating DAI from zkSync to Polygon without using Ethereum mainnet
These mint/destroy messages can be delivered via middleware such as Layer Zero or Chainlink CCIP. Layer Zero is developing a project called Omnichain that will allow tokens to implement this functionality.
Some coins have already implemented this. Circle recently launched their Cross-Chain Transfer Protocol (CCTP) and implemented it on 8 different networks.
Since USDC is highly liquid across many networks and has no cap on available liquidity, it could be the perfect middleman for transferring assets between chains. The wallet can exchange the token you want to cross-chain to USDC, use CCTP to cross-chain the USDC, and then exchange it back to the token you want on the target chain. This is achieved with very little fees or slippage and is handled automatically by your wallet.
The disadvantage of centralizing liquidity into a token is that it is up to individual tokens to implement it, and wallets and applications must know which tokens they can automatically cross-chain and which tokens they cannot.
It also requires tokens to wait for the chain to complete before sending tokens, which can take anywhere from minutes to hours depending on how often data is written to Ethereum. If the token does not wait for finalization, it is possible to double spend by minting on the destination chain and then resuming sending in a reorganization on the sending chain.
Another risk to consider is that token security relies on the security of each chain and relay system. If an L2 is compromised, it can mint new tokens by sending malicious messages to other chains (e.g. saying it burned coins when it actually didnt). The same situation could happen if the token relayer or oracle was attacked. This will cause the token to collapse on all chains.
Cross-chain tokens have been implemented before in the Cosmos ecosystem through ICS-20. It solves the problem of one chain destroying tokens on all chains by letting tokens track their path to the current chain. If token X is sent via chain A -> B -> C, and some X tokens are sent via A -> C, then chain B is attacked and the first set of X tokens still have value because they dont cross chain B. This creates additional issues of token fungibility that wallets and applications must address.
advantage
Tokens can be freely transferred on any L2 chain
Any amount of tokens can be transferred without slippage
shortcoming
Chains must be secure, a compromised chain can destroy all on-chain tokens.
The wallet must know whether each token can automatically cross-chain to simplify the user experience
Tokens must wait for finalization before being transferred, which may take minutes or hours
Native cross-chain bridge mutual trust
L2 chains with ZK cross-chain bridges can allow fast, free token transfers by trusting the native cross-chain bridges of other L2 chains. This is accomplished by users burning a token on one chain and then minting that token on the other chain’s native cross-chain bridge using proof-of-burn.
For example, if Scroll checks the Linea bridge and thinks it is secure (and cannot upgrade it to become unsafe), they could set up a service to monitor the Linea bridges L1 state root, allowing any user on Linea Publish their proof of burning tokens on Linea, this burning transaction is included in the L1 state root, and mint equivalent tokens on Scroll.
Transfer tokens between two L2s without using Ethereum mainnet
VitaliksThis articleThe process by which chains check each others status is described in more detail.
This is similar to cross-chaining back to Ethereum and then cross-chaining to another L2, but this method saves the high L1 gas fee.
The risk now is that the number of tokens locked in these native cross-chain bridges will not be exactly the same as the number of tokens minted on L2, which is a core attribute of L2 and has not been broken so far. In the above example, if a user transfers $1 million in DAI from Linea to Scroll, the Scroll cross-chain bridge will be missing the $1 million in DAI, and if the user wishes to withdraw a large amount of tokens from the native Scroll cross-chain bridge, There will not be enough tokens available. Cross-chain bridges can reconcile these differences by batching L1 token transfers between each other, or by always maintaining two-way trust between them, so large investors can withdraw funds through the Linea cross-chain bridge even after the Scroll cross-chain bridge is emptied.
advantage
Tokens can be freely transferred between trusted chains
Any amount of tokens can be transferred without slippage
shortcoming
If one cross-chain bridge is compromised, it may affect all cross-chain bridges that trust it
Cross-chain bridges will lock and mint different amounts of tokens on their networks, which may cause withdrawal issues.
Quick finalization layer for financial security
These three methods offer excellent scalability and security, but have one flaw that significantly slows down transfers: waiting for finalization. Completing a block requires the sending network to write its data to Ethereum, which can take up to an hour, before the Ethereum mainnet can complete, which can take another 15 minutes.
Through financial incentives, we can create soft finality where the economic value of a transaction is higher than its actual value. This can be achieved by nodes staking on services such as Eigenlayer, where their stake can be slashed and proof that transactions have been completed. If transactions are somehow restored, nodes will be slashed, and the slashing may be used to fill the hole created by the rollback.
The benefit of this is that transactions can be soft-confirmed in seconds, greatly speeding up all cross-chain token transfers.
This is something Near is looking into. Proofs sent/destroyed do not need to be written to Ethereum L1 and finalized, instead the proofs are written to a fast finalization chain where finality is guaranteed by Eigenlayer stakers who will be slashed if there is a rollback or recovery. This onetweetsHow it works is explained in further detail.
Let’s see how this fast finalization layer improves all 3 token transfer methods:
The interop layer is already a fast final layer, managed by the ecosystem team (Polygon, zkSync, etc.). It allows transfers within the ecosystem to take just seconds.
When tokens are minted/burned across chains, the fast finalization layer can prove that the transaction was completed and cannot be reverted, rather than waiting for the transaction to complete on Ethereum (which can take up to 20 minutes). The target chain can then trust this layer and mint as soon as the transaction is verified.
Similarly, when L2 mutually trusts a cross-chain bridge, they can settle token transfers through this fast final layer instead of waiting for Ethereum.
advantage
Token transfers can be completed within seconds.
shortcoming
It is unclear how the slashing mechanism can be used to fix a possible double-spend vulnerability.
Rely on other non-Ethereum level chains to ensure security.
The wallet experience of the future
After implementing these new unified liquidity improvements, what further steps need to be taken to make cross-L2 wallets feel like they are using one chain? The two biggest remaining issues are cross-chain gas and integrating applications with the system.
Sharing Gas between chains
If users are constantly crossing multiple chains, how do they get gas on all of them to pay for transfers?
This issue is being addressed through account abstraction AKA EIP-4337 and paymasters. paymasters are addresses where you can request transaction fees to be paid for you. Some wallets (such as Avocado and Ambire) allow you to preload a Gas balance and then use that Gas on any chain, similar to a prepaid debit card.
Another simple solution is Bungee Exchange Refuel, which takes gas on one chain and gives you a little gas on another chain. This is a worse user experience than paymaster and will leave users with a bit of gas on many chains, but it works for EOA accounts (standard non-smart contract accounts).
Gas-free apps
paymasters also unlocks the ability for the application itself to run a paymaster and pay all user transaction fees. This will allow anyone to use applications on their own chain without having to cross a front bridge. The app can be monetized in other ways, such as selling merchandise, or offering a free demo mode, but you have to pay for the full experience.
Make it easy for applications to take advantage of unified liquidity
Many applications load user token balances by calling balanceOf, which is a slow process and does not work across chains. They often have no idea about tokens that may be cross-chaining from other networks.
This problem should be solved at the wallet level so that every application does not have to reinvent the wheel to support a multi-chain future. EIP-2256 introduces a standard functionality that wallets can implement, allowing all token balances to be loaded at once, although this is currently only a single chain.
If a wallet is multi-chain aware and knows a way to move tokens from one chain to another, it can tell the application that these cross-chain-capable tokens are immediately available to the user, and when the user interacts with the application, the wallet Cross-chain it immediately before performing the operation.
in conclusion
Hopefully you now have a better understanding of how liquidity between L2s will flow more seamlessly in the future, and how wallets can use these new technologies to completely abstract the blockchain in order to make using Ethereum as easy as it is in 2020, without the hassle of High fees.
Thanks to Chad Fowler, Alejo Salles, Mike B, Montana Wong, and Centauri.eth for their feedback on this article.
