Curie Upgrade
Overview
This significant upgrade will reduce gas fees on the Scroll chain by 1.5x. Highlights include:
- Compresses the data stored in blobs using the zstd algorithm. This compression reduces the data size, allowing each blob to store more transactions, thereby reducing data availability cost per transaction.
- Adopts a modified version of the EIP-1559 pricing model which is compatible with the EIP-1559 transaction interface, bringing beneftis such as more accurate transaction pricing and a more predictable and stable fee structure.
- Support for new EVM opcodes
TLOAD
,TSTORE
, andMCOPY
. Users can safely use the latest Solidity compiler version0.8.26
to build the contracts. - Introduces a dynamic block time. During periods of traffic congestion, a block will be packed when the number of transactions reaches the circuit limit instead of waiting for the 3-second interval.
Timeline
- Scroll Sepolia
- Network Upgrade: June 17th, 2024
- Scroll Mainnet
- Upgrade Initiation: June 20th, 2024
- Timelock Completion & Upgrade: July 3rd, 2024
Technical Details
Contract Changes
The code changes for this upgrade are documented in the following PRs:
- Accept compressed batches
- Update
L1GasPriceOracle
- Change
MAX_COMMIT_SCALAR
andMAX_BLOB_SCALAR
to 1e18 - Remove batch index check when updating a verifier
The main changes are as follows:
- The rollup contract (
ScrollChain
) will now accept batches with both versions 1 and 2. Version 1 is used for uncompressed blobs (pre-Curie), while version 2 is used for compressed blobs (post-Curie). - The
L1GasPriceOracle
contract will be updated to change the data fee formula to account for blob DA, providing a more accurate estimation of DA costs:- Original formula:
(l1GasUsed(txRlp) + overhead) * l1BaseFee * scalar
- New formula:
l1BaseFee * commitScalar + len(txRlp) * l1BlobBaseFee * blobScalar
- Original formula:
Node Changes
The new node version is v5.5.0
. See the release notes for the list of changes.
zkEVM circuit changes
The new version of zkevm circuits is v0.11.4
. See here for the release log.
Audits
- TrailofBits: coming soon!
- Zellic
Compatibility
Sequencer and Follower Nodes (l2geth)
This upgrade is a hard fork, introducing the TLOAD
, TSTORE
, and MCOPY
opcodes. Operators running an l2geth
node are required to upgrade before the hard fork block. For more information, see the node release note.
Dapps and Indexers
For dApps, this upgrade is backward compatible. Developers should adjust the gas fee settings to incorporate the EIP-1559 pricing model. Note that dApps can no longer rely on the fixed 3-second block time in the application logic.
For indexers, the data format remains the same. The will be however changes to the data content:
- The
version
field inBatchHeader
will be changed to 2 since Curie block. - The data stored in blob will be compressed and can be decompressed by zstd v1.5.6.