Please note that this is a Proposal Preview and is not an actual proposal. It is meant to allow the Collective to provide feedback and ask questions before an official proposal is published.
Proposal Title: Operator Fee
Proposal Type: Protocol Upgrade
Executive Summary
The current fee formula for the OP Stack presents challenges for variants of the OP Stack that leverage Alt-DA, validity proving with ZK or a custom gas token.
Currently, only the totalFee
for OP Stack takes into account the execution gas fee, which uses an EIP-1559 mechanism, and the L1 Data Fee.
Today, the fee formula for the OP stack is computed as totalFee = gasUsed * (baseFee + priorityFee) + l1Fee
. l1Fee
computes the “approximate” cost of posting data to the L1 for DA.
This fee formula presents challenges for variants of the OP stack that leverage Alt-DA, ZK proving or a custom gas token. These chains make use of different resources and the existing fee formula lacks the expressiveness necessary to properly charge users for their resource consumption.
We propose the addition of a new component to the fee formula for the OP Stack which is a first step towards better resource pricing: the Operator Fee.
Motivation
There are several variants of the OP stack that have trouble with the existing fee formula. We cover them below:
- Alt-DA: For chains leveraging Alt-DA, the
l1Fee
is not an accurate measure of the DA costs for a transaction, as it is priced according to Ethereum’s DA costs. These costs are entirely separate from the pricing of an Alt-DA layer. - ZK Proving: For OP Stack variants that want to utilize ZK validity proofs or ZK fault proofs (for example via OP Succinct), the cost of ZK proving a transaction is a significant resource that can not be accounted for easily in the current fee structure.
Specifications
Technical details
We propose the addition of 2 new rollup operator configured scalars, collectively named the Operator Fee Parameters. These scalars are named operatorFeeScalar
and operatorFeeConstant
, and they factor in the fee calculation as follows:
operatorFee = operatorFeeConstant + operatorFeeScalar * gasUsed / 1e6
totalFee = operatorFee + gasUsed * (baseFee + priorityFee) + l1Fee
These scalars will be updated via the SystemConfig L1 contract. A new fee vault, the OperatorFeeVault, is added to store the operator fee.
Resources
Impact summary
This proposal is planned to be included in Isthmus, but the feature is disabled by default. In order to be able to set the operatorFeeScalar
and operatorFeeConstant
parmeters, the SystemConfig
contract must be upgraded.
Action Plan
This upgrade requires modifications to the node software and contracts. We have been coordinating closely with the OP Labs team on the implementation, and currently have the following PR’s under review:
Once the following PR’s are reviewed and merged, these changes will be included in the Isthmus hard fork.
L2 Contract Updates
OperatorFeeVault
New fee vault to store the operator fees.
GasPriceOracle
If Isthmus is enabled, the operator fee parameters can be retrieved from the SystemConfig contract on L1.
L1Block
Includes the operator fee scalars in the L1 block.
SystemConfig Update
The SystemConfig
L1 contract will get upgraded to version 2.4.0 to functions to modify the operator fee.
Conclusion
The Operator Fee mechanism enhances the OP Stack’s fee mechanism by addressing challenges in accurately pricing user fees when chains employ ZK proving, alt-DA, and custom gas tokens. Implementation work is underway, demonstrating technical feasibility. The new fee parameters will enable operators to accurately price their services while maintaining network sustainability. The operator fee is the first step in the direction of better resource pricing for OP Stack chains with custom variants.
We anticipate that further changes will need to be made to extend and improve the operator fee mechanism over time, but are confident that the inclusion of the operator fee will tangibly improve resource pricing.
We request the Collective’s approval to implement this improvement to the OP Stack’s fee mechanism.