Introduction
How do traditional bridges work ?
Blockchains live in isolated environments. Cross-chain bridges aim at solving one single problem : reliable communication between blockchains.
To achieve this goal, they have to rely on some kind of third party. An agent looks at what is happening on a chain (e.g. the bridger sent tokens to a pool) and acts accordingly on another chain (sending tokens to the bridger's address).
The history of bridges for the past years can be summarised as a single quest : How can we efficiently decentralize this third party ? Some of the response include :
Custom POS chains/L2/state channels. If nodes fail at doing their job, their stake can be slashed (cBridge Guardian Network)
Atomic locks with whitelisted/POS network of relayers (Hop, Connext)
Hybrid systems of nodes that collectively sign transactions (Multichain's SMPC nodes)
No decentralisation at all (Binance bridge)
Those solutions have significant drawbacks :
The bridger has to trust the third party. If the third party does not cooperate, the bridger can lose all his funds. Ultimately, the nodes are operated through Externally Owned Accounts (EOA) or multisig, which can be compromised (Harmony hack).
The contracts are complex. They have to implement proxy patterns. In fact, most recent security breaches in bridges do not come from the relayer networks not doing its job, but from basic mistakes allowed by the sheer complexity of the contracts (Nomad, Wormhole hacks)
Liquidity providers have to pool their funds. If a flaw is discovered in the contract, all of the funds are vulnerable.
The bridger has to go through an unpleasant a leap of faith : "I send the funds, but what if nothing arrives on the other side ?"
Heavy infrastructures are slow to deploy to new chains.
Recently, progress has been made by optimistic bridges that rely on L1 in case of challenge (Orbiter, Beamer). They provide essentially the same security for a cross-L2 transfer as for a classic L1 transfer. However, they only work between L2s built on the same settlement layer, leaving alternative L1s and other L2s unaddressed.
Last updated