Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 86 additions & 0 deletions docs/base-chain/network-information/transaction-finality.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
---
title: Transaction Finality
description: Detailed information about transaction finality on Base.
---

## What is transaction finality?

Finality refers to the point at which a transaction sent to Base becomes irreversible. This provides guarantees that the transaction will not be rolled back or lost.

Finality works differently for normal transactions that modify Base L2 state than it does for transactions that withdraw funds from Base L2 to Ethereum L1.

<Note>
**Only transactions that withdraw funds from Base to Ethereum must wait 7 days.** Regular transactions within Base, such as swaps or sends, _do not_ have to wait 7 days.
</Note>


## Finality for Base L2 Transactions
This describes finality for transactions on Base except withdrawal transactions that move funds from Base to Ethereum L1

For transactions on Base, finality is not a single time to wait for. Instead, there are 4 stages in time that each provide increasing security guarantees.

![Diagram of transaction finality stages on Base](/images/transaction-finality/base-tx-finality.jpg)

<Steps>
<Step title="Flashblock Inclusion: ~200ms" titleSize="h3">
After roughly 200ms, the transaction is included in a preconfirmation block (Flashblock) by the Base sequencer.
<Accordion title="Under 0.001% probability of a reorg.">
* Flashblocks reorg less than 0.001% of the time
* You can see the reorg history in our [public stats page.](https://base.org/stats)
</Accordion>

</Step>
<Step title="L2 Block Inclusion: ~2s" titleSize="h3">
After roughly 2 seconds, the sequencer has built the transaction into an L2 block and distributed it to validator nodes.
<Accordion title="Near 0% probability of a reorg.">
* Only a single Base L2 block has ever reorged, representing .0000003% of transactions. The data can be [seen here](https://base.blockscout.com/blocks?tab=reorgs)
</Accordion>
</Step>

<Step title="L1 Batch Inclusion: ~2m" titleSize="h3">
After roughly 2 minutes, a Base batch containing the transaction has been posted to Ethereum.
<Accordion title="Effectively 0% probability of a reorg.">
* There has never been a reorg of L2 blocks that were batched to Ethereum L1.
* **A reorg of Ethereum L1 does not require a reorg of the Base L2 chain.** The sequencer and validator nodes maintain a configurable lag from the tip of Ethereum, so typical L1 reorgs have no effect. In the event of larger Ethereum reorgs, Base can resubmit batch data on L1 without changing the sequenced L2 blocks.
</Accordion>

</Step>
<Step title="L1 Batch Finality: ~20m" titleSize="h3">
The Ethereum L1 batch containing the transaction is older than 2 epochs, or 64 L1 blocks.
<Accordion title="Effectively 0% probability of a reorg.">
* L2 blocks that have reached L1 batch finality are protected from reorgs the same way Ethereum finalized blocks are. They are in practice impossible to reverse.
</Accordion>
</Step>
</Steps>

## Finality for Withdrawal Transactions
This describes finality of transactions that move funds from Base to Ethereum

**Only withdrawals to Ethereum must wait 7 days to finalize before the funds can be released to the address on Ethereum L1.** This allows Base's Fault Proof system to provide extremely high security guarantees for funds bridged to Base.

<Accordion title="What happens during the 7 days?">
When a transaction initiates a withdrawal from Base to Ethereum, the funds are removed from the account balance on Base. Later, a permissionless “proposer” must provide Ethereum with proof that Base contains this withdrawal.

However, Ethereum cannot natively confirm what happened on Base as they are separate blockchains. Thus, there is a 7 day window in which a permissionless “challenger” can dispute a proposal that it feels is malicious. If no challenge is made in the 7 days, the withdrawal can be proven against the finalized output root and released to the L1 recipient. But if a challenge is made, the proposer and challenger play what is called the Fault Dispute Game. This game requires increasing bonds to be made, with an eventual winner. If the proposer wins, the output root finalizes and can be used to prove withdrawals against (releasing them on L1). If the challenger wins, the output proposal becomes invalid.

This system requires only a one honest party to remain secure. Base will always run an honest proposer and challenger.

Note: if the dispute game is won by a challenger, the state of the L2 chain does not reorg. The output proposal is marked invalid and any withdrawals that were proven against it cannot finalize. Those withdrawals would need to be re-proven against a different, valid output root.
</Accordion>

## FAQ

<AccordionGroup>
<Accordion title="If there is a reorg on Ethereum, will it cause a reorg on Base?">
In almost all circumstances, no. Base can simply re-submit batch data to Ethereum transparently while the L2 chain continues to progress.
</Accordion>

<Accordion title="How long do deposit transactions take to finalize?">
Transactions moving funds from Ethereum L1 to Base must be initiated on Ethereum and typically get included within 3 minutes by the Base sequencer.
</Accordion>

<Accordion title="If a challenger wins a dispute game, will the L2 chain reorg?">
No. The output proposal that was challenged is marked invalid, and any actions that used it's output root become invalid. Specifically, withdrawals from Base to L1 that proved against this output root must now prove against a different and valid one.
</Accordion>
</AccordionGroup>

1 change: 1 addition & 0 deletions docs/docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@
"pages": [
"base-chain/network-information/base-contracts",
"base-chain/network-information/network-fees",
"base-chain/network-information/transaction-finality",
"base-chain/network-information/ecosystem-contracts",
"base-chain/network-information/block-building",
"base-chain/network-information/diffs-ethereum-base"
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.