Bridging Assets
Last updated
Last updated
A key feature of Facet is the removal of a canonical (official, built-in) bridge between L1 and Facet for assets such as ether. Bridging assets, of course, is still possible.
As is the case with other rollups, anyone can build a trust-minimized bridge between Ethereum and Facet. Such third-party bridges can still use state root mechanisms and various proof technologies to achieve trust-minimized cross-chain transfers. The only difference is that these bridges on Facet are not "enshrined" - or built into the protocol in a way links them to a privileged governance system within the rollup itself. To put it another way - bridges are market-driven, and users retain the freedom to adopt or abandon any given bridge without affecting the underlying protocol.
Facet is optimized for building OP-style Optimistic Bridges; that is, bridges that use Optimism's suite of contracts and rely on the L2ToL1MessagePasser
predeploy.
From a user's perspective, bridging an asset from L1 to Facet is effectively the same experience. You send an asset to an L1 smart contract, which mints an equivalent asset on the rollup. You would then burn the rollup asset to redeem the L1 asset.
Let's explore bridging on Facet with the below diagram:
User connects to a DEX (e.g., FacetSwap.com) and deposits an asset (e.g. 0.5 ETH) into a L1 bridge contract. With Facet, all bridges are third-party contracts; there are no enshrined/canonical bridges managed by the rollup.
Facet Apps like FacetSwap.com rely on a trust-minimized bridge deployed by the Facet team. This bridge is a fork of Optimism's trust-minimized bridge.
L1 Validators are natively sequencing and executing L1 transactions through the EVM. As Bridge contract deposits are executed, a contract-initiated call is made, emitting an event that is identified by the Facet event signature:
This event contains a data payload in the same RLP encoded format found in the calldata of an EOA-originated Facet transaction to the Facet Inbox Address.
Nodes then derive state (e.g., crediting the user with 0.5 WETH) by extracting Facet payloads and processing them through Facet geth. See here for a closer look at State Derivation.
Bridging back out to L1 works similarly to other trust-minimized bridging solutions on L2 networks, requiring three transactions: