Easy mode withdrawals

Superbridge is your entrypoint into the Optimism Superchain. With the Superbridge you can bridge ETH and other assets like USDC back and forth between your favourite chains, with absolute peace of mind that your funds are secure.

Check it out today at superbridge.app and if you’re a network looking to provide bridging services to your users, just get in touch!

Other than forced withdrawals and some of the fancy animations, I’d say easy mode has been one of the more fun features for us to work on with the Superbridge. We haven’t settled on the name yet either, “Easy mode” was just the first thing we thought of.

Easy mode removes, I’d say, about 75% of the pain encountered when withdrawing from OP rollups. The 2ish hour period waiting for state roots to be published to the L1, the additional L1 transaction to prove inclusion in said state roots, the 7 day challenge period and finally the L1 transaction to finalize the operation and actually get your tokens doesn’t inspire so much joy. With easy mode, a small fee is added to your withdrawal transaction that will let us, Fugu Works, pay for the gas costs of these subsequent L1 transactions on your behalf.

So we can understand more in depth the how and why of easy mode withdrawals, we’ll quickly cover the standard withdrawal flow its complexity.

Withdrawals

A withdrawal operation in the context of an OP rollup refers to any transaction initiated on the rollup and completed on the L1. The most obvious use case for withdrawals is obviously token bridging, where tokens are locked/burned on the rollup and released/minted on the L1, but actually any valid transaction can be submitted as a withdrawal via the L2ToL1MessagePasser contract.

However, the user experience around withdrawals is a little rough - it’s not the case that after initiating a transaction on the L2 that the action happens on the L1 immediately. First, the state root of the of the epoch containing your transaction needs to be proposed to the L1. Most mainnet deployments of OP rollups have a submission period of every 1800 blocks, or roughly every hour.

After this state root has been proposed, proof needs to be submitted that your transaction is present in the state the root represents. This is done via the OptimismPortal contract, and a merkle trie is used to validate that the withdrawal hash you are proving exists in the proposed state root.

After proof has been submitted and accepted, the withdrawal enters its 7 day challenge period. Witnesses are able to challenge the integrity of submitted state roots and have the ability to discard state roots that are invalid.

It’s important to note that the 7 day challenge period applies to both the withdrawal and the state root proposal separately. So if you’re looking for the withdrawal to take as little time as possible it’s important to do the prove operation as soon as possible.

Finally, after the 7 day challenge period is over the withdrawal can be finalised (executed) via a final call to the OptimismPortal contract.

For a more comprehensive guide on withdrawals, please refer to the Optimism specs document on withdrawals.

Easy mode withdrawals

With that context on normal withdrawals, we can dive into how easy mode withdrawals work.

The Superbridge indexing layer is constantly listening to new bridge events and scanning for the status of deposits and withdrawals. When a withdrawal is marked as Ready to prove or Ready to finalize, we check to see if there is a relaying fee associated with this withdrawal.

The relaying fee, currently denominated in ETH, is added to your withdrawal when you toggle on easy mode withdrawals in the settings page of the Superbridge. The fee is set to the cost of two transactions, prove and finalize, each using 400,000 units of gas priced at 40 gwei. In the depths of the current bear market we recognise 40 gwei is potentially too high, so we’re looking to either implement a slightly smarter gas pricing strategy, taking into account historical peaks and valleys in gas pricing, or let users specify the maximum gas price they’d like to pay for these transactions. We just won’t relay them until gas prices dip below the specified amount.

If there is a relaying fee and it’s enough to cover the gas cost of the prove or finalize operation, the indexing layer will send the necessary transaction on your behalf. This is a major improvement over the standard withdrawal flow for a few reasons,

  • Sending one transaction is better than three

  • You don’t need to set calendar reminders or alarms to finish your withdrawals

  • Withdrawals are processed as quickly as possible

To elaborate on that last point, as we mentioned in the standard withdrawal flow section above, the 7 day delay doesn’t start until you’ve completed the prove step of a withdrawal. So if you forget about the prove step your withdrawal time could accidentally shoot up to two weeks!

Wrapping up

We’re always looking for more ways to improve the rollup experience, and easy mode was the most glaring improvement we could make when developing the Superbridge. Stay tuned for more improvements as we strive to make rollups as user friendly as possible.

Subscribe to Blob Engineering
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.