Skip to content

Releases: scroll-tech/scroll-contracts

v2.0.1

25 Apr 16:08
v2.0.1
b7a01e4
Compare
Choose a tag to compare

Overview

This release updates L1ScrollMessenger to fix a vulnerability involving EnforcedTxGateway.

What's Changed

Full Changelog: v2.0.0...v2.0.1

Euclid (v2.0.0)

24 Apr 09:03
v2.0.0
8e6a02b
Compare
Choose a tag to compare

Overview

The Euclid upgrade introduces the following contract changes:

  • Introduce a new SystemConfig contract for managing important system parameters.
  • Use the new ZkEvmVerifierPostEuclid on-chain verifier for proofs generated by the new OpenVM prover.
  • Introduce batch codec versions v5, v6, and v7. v5 is a singleton batch for the zktrie-MPT transition verified by the Security Council. v6 is identical in format to v4 and v5 but verification happens using the new OpenVM prover. v7 is a major redesign in the batch encoding.
  • Use the new commitBatches function to commit batches. Now we allow committing multiple batches per transaction. Most of the batch metadata previously stored in calldata is now moved into the blob. The point-evaluation precompile check is moved into the circuits.
  • Migrate to L1MessageQueueV2 which uses a rolling hash to amortize commitment costs.
  • Update and re-enable EnforcedTxGateway.
  • Introduce permissionless mode, in which anyone can step up and commit batches, along with their validity proofs. Permissionless mode is entered if the sequencer stops committing/finalizing batches, or if it stops relaying messages from the L1 message queue.

Compatibility

The above changes introduce numerous subtle and not-so-subtle compatibility concerns. The impact depends on the specific application. For a detailed list, see the corresponding section in the governance proposal.

What's Changed

  • feat: gateway for l2 native erc20 by @zimpha in #40
  • ci: add github action triggered manually to generate docker image by @sbaizet-ledger in #45
  • feat: euclid phase-1 contract changes by @Thegaram in #79
  • ci: fix TOB-SCREUC-6, disable cache-binary option by @Thegaram in #83
  • ci: fix TOB-SCREUC-7, pin 3rd-party actions by @Thegaram in #84
  • ci: fix TOB-SCREUC-8, do not persist git credentials by @Thegaram in #85
  • build(deps): bump actions/setup-node from 2 to 4 by @dependabot in #86
  • build(deps): bump docker/setup-buildx-action from 2.10.0 to 3.10.0 by @dependabot in #87
  • build(deps): bump codecov/codecov-action from 3.1.4 to 5.4.0 by @dependabot in #88
  • build(deps): bump docker/setup-qemu-action from 2.2.0 to 3.6.0 by @dependabot in #89
  • build(deps): bump actions/checkout from 3 to 4 by @dependabot in #90
  • build(deps): bump docker/login-action from 3.3.0 to 3.4.0 by @dependabot in #91
  • ci: add zizmor by @Thegaram in #92
  • feat: euclid phase-2 contract changes by @zimpha in #74

Full Changelog: v1.0.0...v2.0.0

Darwin (v1.0.0)

05 Aug 07:34
v1.0.0
7bb751f
Compare
Choose a tag to compare

Overview

The Darwin upgrade introduces a new concept bundle: a list of batches finalized with a single aggregated proof.

Main changes:

  • Introduce BatchHeaderV3Codec with 2 new fields added (lastBlockTimestamp, blobDataProof) and one field removed (skippedL1MessageBitmap).
  • Process messages in L1MessageQueue during commit step (previously done during the finalize step).
  • Introduce a new on-chain verifier public input format in IZkEvmVerifierV2, and adopt it in MultipleVersionRollupVerifier.
  • In ScrollChain, introduce two new methods commitBatchWithBlobProof and finalizeBundleWithProof to handle V3 batches and bundles.

The circuit and contract changes have been audited by Trail of Bits.

Compatibility

  • Dapps and indexers that decode on-chain batch header data should use the new codec and function signature.
  • Dapps and indexers that track finalization status should ensure that they correctly interpret the emitted FinalizeBatch event as "all batches have been finalized up to and including this batch index".

What's Changed

Full Changelog: https://github.com/scroll-tech/scroll-contracts/commits/v1.0.0