How ππ· Leverages ERC-7683 for Fast and Seamless Cross-Chain Withdrawals
Fast and Seamless Cross-Chain Withdrawals
We recently wrote about how ππ· and Real Time Proving (RTP) increases capital efficiency for solvers and therefore reduces bridging costs for users in intent bridges.
In this post, we will be exploring how integrating ERC-7683 into ππ· allows us to:
reduce withdrawal time from ππ· to partner rollups by half and,Β
enable more efficient cross-chain transactions by eliminating the dependency on t1 bridge contract liquidity.
For readers new to ππ·, the ππ· architecture post can be a helpful pre-read.
Iβd like to thank Wee Howe, Tokka Labs team, Hart Lambur, Campbell Easton, Bobby Bola and Orest Tarasiuk for their invaluable feedback and contributions.
How do cross-chain withdrawals to partner rollups work on ππ·?
ππ· has its canonical bridge contract on Ethereum and non-canonical bridge contracts on partner rollups. The canonical bridge contract serves as the ultimate source of truth for ππ·βs state.
Before a withdrawal request to a partner rollup can be processed, the corresponding ππ· state must first be verified on Ethereum L1. Once confirmed on the L1, the deposit contracts on the partner rollup will release the funds to the user.
To be more precise, ππ· nodes submit a tuple of trie roots (state trie, withdrawals trie), along with a TEE proof (and later, an AVS consensus proof plus bespoke ZKP), to the canonical bridge contract on Ethereum. Once validated on-chain, this new trie root tuple enables claiming withdrawn funds.
A withdrawal request on ππ· to a partner rollup is a unique transaction that burns funds on ππ· and creates a new entry in the withdrawals trie. The partner rollup bridge contract verifies the claim transaction which must carry a withdrawals trie inclusion proof from the ππ· canonical bridge contract. If valid, the partner rollup bridge contract releases the withdrawn-and-claimed funds to the designated recipient on the partner rollup.
Limitations
A naive approach introduces liquidity limitations and latency during withdrawals.Β
Withdrawals from ππ· to partner rollups are capped by the liquidity of the ππ· bridge contract on the partner rollup. This is the case in any liquidity-based bridge.
A further limitation is related to delays involved in withdrawing to partner rollups. The process of withdrawing, as described above, has two steps:Β
On L1: Canonical bridge contract verifies the ππ· trie root tuple on. This usually takes 1 L1 block.
On partner rollup: Partner rollup bridge contract verifies the userβs withdrawal trie inclusion proof (claim tx) accepted by the canonical bridge (L1). This will be slower as the partner rollup contract will want to mitigate the risk that the L1 could reorg such that the withdrawal inclusion proof is no longer acceptable (note: *most* L1 reorgs are shallow, typically only 1 L1 slot deep).
In total, withdrawals to partner rollups can, therefore, take several L1 blocks. ERC-7683-enabled RFQ bridges today can do faster bridging in exchange for a small fee.
How does ERC-7683 work?
There are 4 main steps in a cross-chain transaction enabled by ERC-7683
Figure 1: Cross-chain transfers with ERC-7683
Hereβs a brief overview of these steps:
Alice deposits funds to an escrow contract on the origin chain
A filler sends the tokens Alice wants to receive on the destination chain
Thereβs a process to verify settlement (step 2) on the destination chain
The proof is presented to the escrow contract on the origin chain, which releases the funds to the filler.
How does ERC-7683 enhance ππ· UX
So the good news is that we can use ERC-7683 to address these limitations. By integrating ERC-7683, we enable anyone with funds on the destination chain to become the counterparty to Aliceβs withdrawal transfer. This mitigates liquidity limitations and provides a path to faster withdrawals.
The use-case we are interested in is when Alice has funds on ππ· and wants to withdraw to a partner rollup. Letβs dive deeper:
The escrow contract shown in Figure 1 can be emulated by the ππ· bridge contract.Β
Since Alice already has her funds on ππ·, she only needs to send a simple ππ·-native tx to put funds in escrow (step 1).Β
Aliceβs account receives funds on a partner rollup from the filler (step 2).Β
Since the partner rollup full node is run inside a ππ· node, ππ· can verify the settlement on the destination chain (i.e., on the partner rollup) and post that proof to L1 (step 3).Β
Thus, ππ· can quickly allow the filler either to claim Aliceβs locked funds on ππ· or to withdraw them to L1 or any ππ· partner rollup.
Note: We can delay the payment to the filler to mitigate the risk that the partner rollup reorgs and Alice is out of funds after the filler withdraws funds out of ππ·.
Whatβs Next for ππ· and ERC-7683?
Last week we announced that we are contributing to the Open Intents Framework, spearheaded by the Ethereum Foundation. Our focus is on improving solver profitability and reducing bridging costs by leveraging ππ·βs Real-Time Proving (RTP) capabilities. Our approach is pragmatic and is focused on solving user problems and improving the UX.
We have an internal proof-of-concept (PoC) intent bridge using ERC-7683 contracts on L1 to demonstrate sub-1-minute payments to solvers. Hereβs the demo video. If you are interested in collaborating, please reach out to us. One idea we have is to build an auction contract on ππ· that allows the highest paying filler to facilitate Aliceβs cross-chain transaction.
Letβs work together to make Ethereum faster, more secure, and truly interconnected. Stay tuned for updates and join the conversation on Twitter.
Can Kisagun, CEO & Co-founder of ππ·