You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: pages/stack/differences.mdx
+29-4Lines changed: 29 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,7 @@
1
1
---
2
2
title: Differences between Ethereum and OP Stack Chains
3
3
lang: en-US
4
+
tags: ["eng-protocol"]
4
5
description: Learn the minor differences between the behavior of Ethereum and OP Stack chains.
5
6
---
6
7
@@ -11,6 +12,16 @@ import { Callout } from 'nextra/components'
11
12
OP Stack chains are designed to be [EVM equivalent](https://web.archive.org/web/20231127160757/https://medium.com/ethereum-optimism/introducing-evm-equivalence-5c2021deb306) and introduces as few changes as possible to the Ethereum protocol.
12
13
However, there are some minor differences between the behavior of Ethereum and OP Stack chains that developers should be aware of.
13
14
15
+
## Bridging
16
+
17
+
### Bridging - Deposit Transactions
18
+
19
+
Deposit transactions don't exist on L1's, and are how transactions on an L2 can be initiated from the L1. Importantly, this is how bridge applications can get L1 ETH or tokens into an L2 OP Stack chain. You can read more on deposit transactions [here](/stack/protocol/rollup/deposit-flow).
20
+
21
+
### Bridging - Withdrawal Transactions and Fault Proofs
22
+
23
+
Withdrawal transactions are how the state of the L2 rollup can be proven to the L1. Often this involves users withdrawing tokens or ETH to the L1. Fault proofs are the mechanism by which withdrawal transactions are currently proven to the L1. You can read more about fault proofs [here](/stack/protocol/fault-proofs/explainer).
24
+
14
25
## Opcodes
15
26
16
27
| Opcode | Solidity Equivalent | Behavior |
@@ -55,13 +66,27 @@ In all other cases, the transaction sender address is set according to the same
55
66
Transactions on OP Stack chains must pay for an [L1 data fee](/stack/transactions/fees#the-l1-data-fee) on top of the standard [execution gas fee](/stack/transactions/fees#execution-gas-fee) you would expect on Ethereum.
56
67
Refer to the guide on [OP Stack Transaction Fees](/stack/transactions/fees) for more information.
57
68
58
-
### EIP-1559 Parameters
69
+
You can use the [JS library viem](https://viem.sh/op-stack) to estimate the entire transaction gas costs, including the L1 Data Fee.
70
+
71
+
### EIP-1559 parameters
59
72
60
73
The base fee on OP Stack is, like Ethereum, computed via the [EIP-1559](https://notes.ethereum.org/@vbuterin/eip-1559-faq) mechanism.
61
74
The EIP-1559 parameters used by OP Stack differ per chain.
62
75
63
76
### Mempool rules
64
77
65
-
By default, OP Stack chains do not have a large public mempool like Ethereum.
66
-
OP Stack mempools are typically only visible to the Sequencer of the given chain and transactions are generally executed in priority fee order (highest fee first).
67
-
This is not a required behavior and certain chains may choose to have a public mempool.
78
+
Unlike Ethereum, OP Stack chains do not have a public mempool.
79
+
The OP Stack mempool is currently only visible to the Sequencer.
80
+
The Sequencer executes transactions from the mempool in priority fee order (highest fee first).
81
+
82
+
## Chain Finality
83
+
84
+
Unlike L1s such as Ethereum, OP Stack chains have Unsafe, Safe, and Finalized Heads which indicate the state of finality for a given L2 block. Fault proofs do not impact the finalization of the L2 rollup, only the finalization of withdrawal transactions to the L1. You can read more about these [in the docs glossary](/resources/glossary#unsafe-l2-block).
85
+
86
+
## What's Next
87
+
88
+
There are various useful tools linked above. Here are a few more tools and links you may want to check out:
89
+
90
+
*[OP-viem](https://viem.sh/op-stack): JS framework that can handle many of these unique functions on OP Chains. It is similar to Ethers.js for OP Stack chains.
91
+
92
+
*[Specs](https://specs.optimism.io/root.html): For more in-depth technical explanations and examples.
0 commit comments