-
Notifications
You must be signed in to change notification settings - Fork 271
Add Pectra user fees notice #1608
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
b77ffe0
6b08d3f
63925f6
6ed915b
e143872
edf8f39
0c0f596
4a8f080
db2bf5b
6d2a4c6
9ee2521
5a6e5df
5a6422c
3101cd5
4280156
44f05a7
1e10761
66f8803
62c7752
d3f0b73
d8857e4
ef47c70
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
--- | ||
title: L1 Pectra user fees and chain profitability | ||
description: L1 Pectra affect on user fees and chain profitability analysis | ||
lang: en-US | ||
content_type: notice | ||
topic: pectra-fees | ||
personas: | ||
- chain-operator | ||
- node-operator | ||
categories: | ||
- security | ||
- protocol | ||
- infrastructure | ||
- l1-contracts | ||
is_imported_content: 'false' | ||
--- | ||
|
||
# Pectra impact on user fees and chain profitability | ||
|
||
The Ethereum L1 Pectra upgrade has introduced changes to calldata gas costs via [EIP-7623](https://eips.ethereum.org/EIPS/eip-7623) that may affect OP Stack chain profitability in specific configurations and market conditions. This notice outlines the potential impact on your chain and recommends specific actions. | ||
|
||
[EIP-7623](https://eips.ethereum.org/EIPS/eip-7623) increases the amount of gas payable for calldata transactions. These include such transactions as those used by OPStack chains *before the [Ecotone upgrade](https://specs.optimism.io/protocol/ecotone/overview.html)* when blob data availability (blob DA) was introduced. | ||
geoknee marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
Blob DA has now been the default and recommended option for the OPStack for some time, so almost all chains make use of it. In order to continue to optimize for chains operating with blob DA, the Optimism protocol's current DA fee pricing formula has remained unchanged despite Pectra activating on Ethereum. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Maybe add something like |
||
|
||
Chains configured for blob data availability remain entirely unaffected by the Pectra upgrade. However, chains configured for calldata (i.e. operating in a legacy DA mode) may experience a reduction in profitability. It possible for such chains to be making a loss on data availabilty costs under certain market conditions. Therefore all chains should check their fee scalar config. | ||
bradleycamacho marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
## Actions required | ||
|
||
Since the Ecotone upgrade, the Optimism protocol prices L2 transactions using a function that incorporates the L1 base fee as well as the L1 blob base fee. The other inputs are the so-called "Ecotone scalars": operator-controlled parameters stored in the SystemConfig contract which can be used to tune the chain's (approximate) target profit margin for DA. | ||
|
||
Please review your [Ecotone scalar chain configuration](/operators/chain-operators/management/blobs). If your chain uses a zero blob base fee scalar, meaning it's configured to price for calldata only, you may need to update the base fee scalar and or the blob base fee scalar. Otherwise, no action is necessary. | ||
|
||
If your batcher is configured to submit using calldata *only*, then you should: | ||
|
||
* scale your base fee scalar by 10/4. | ||
|
||
This will ensure that, since you are paying exclusively for calldata DA, you are charging users appropriately such that your target profit margin is the same as it was before Pectra. | ||
Comment on lines
+34
to
+38
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We should add, " under the assumption that you observed a perfectly realized profit margin before the Ethereum Pectra upgrade". And realistically, chains should just watch their actually achieved profit margin and adjust accordingly, which is something they need to do regularly anyways. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. we worked out a rejig of this section, ptal |
||
|
||
If your batcher is configured to submit using blob DA, or configured to automatically choose the cheaper of the two DA modes, then you should adjust your Ecotone scalars for blob DA pricing (meaning a nonzero blob base fee scalar). You are referred back to [this guide](/operators/chain-operators/management/blobs). Doing so will ensure that you are charging accurately for using blob DA. Without such a change it is likely that you are overcharging users most of the time, and undercharging them in the rare occasions where blob DA is more expensive than calldata DA on Ethereum mainnet. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We should somehow highlight that this paragraph applies only to chains who use an outdated calldata base fee-only fee configuration. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. And we should acknowledge that this is only possible if the SystemConfig has a There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I added subsections here 4be4827 which hopefully helps. Let's discuss the versioning thing. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Discussion with @sebastianst today: even very old SystemConfig implementations can actually support a blob DA config. The instructions here https://docs.optimism.io/operators/chain-operators/management/blobs would not apply out of the box. But on a case-by-case basis it might be an interesting option. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Probably not worth getting into the weeds of this versioning subtlety here. |
||
|
||
As ever, you may continue to tweak the Ecotone scalars as desired in order to adjust the profitability of your chain. | ||
|
||
### Technical References | ||
|
||
* [Optimism Protocol Specification - Ecotone L1 Cost Fee Changes](https://specs.optimism.io/protocol/exec-engine.html#ecotone-l1-cost-fee-changes-eip-4844-da) | ||
* [Optimism Protocol Specification - Fjord Execution Engine Fees](https://specs.optimism.io/protocol/fjord/exec-engine.html#fees) | ||
* [Implementation Source Code](https://github.com/ethereum-optimism/op-geth/blob/3d7afdc2701b74c5987e31521e2c336c4511afdf/core/types/rollup_cost.go#L527) |
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I realize that his file needs an overhaul. By default, all examples should use blobs and a modern blob base fee-based config. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Discussed with @sebastianst: we think there are still edge cases (very quiet chains) which may want to configure for exclusively calldata. |
Uh oh!
There was an error while loading. Please reload this page.