Skip to content

v0.12.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 28 Jul 18:29
· 1 commit to release/v0.12.0 since this release

Overview

In previous upgrades (v0.10 and v0.11) our goal was to lower the costs of committing L2 data to L1. We achieved this by:

  • Data-availability via an EIP-4844 blob-carrying transaction (#1153 )
  • Encoding data in the blob and implementing an in-circuit zstd decoder (#1213 )

In v0.12, we tackle the challenge of lowering on-chain proof verification costs.

As of v0.11, every batch's proof is verified on-chain (L1 EVM) which finalizes the state root post-batch. A batch already aggregates proofs from multiple chunks, essentially not requiring each of those chunk proofs to be verified on-chain. We are now pushing these verification costs even lower by recursively bundling those batches into a single bundle that can be verified on-chain. As opposed to the aggregation scheme used from a list of chunks to a single batch (where we have an upper bound to the number of chunks we can aggregate), the recursive aggregation scheme adopted in v0.12 is not bound by such a limit to the number of batches we can aggregate. Instead, the number of "recursion rounds" can be fine-tuned by the desired latency for L2 data to be finalized on L1.

Features

Tests, Fixes and Documentation

Auto-generated Section


Changes in the bus-mapping

  • upgrade l2geth and remove old bytecode collecting codes (#1376) @lispc
  • add comment to explain rlp_unsigned_bytes (#1367) @DreamWuGit
  • chore: upgrade revm to v40 (#1360) @lightsing
  • refactor: disable "test" "mock" features in prover side to get rid of Go (#1347) @lispc
  • Refactor: trace (#1341) @lispc
  • enhancement: add a typeos check in CI, and fix current existly typos errors. that is a TODO thing, and it's done now. (#1340) @xyq-c-cpp
  • move Field and ToScalar to gadgets (#1337) @lispc

Changes in eth-types

Changes in external-tracer

  • enhancement: add a typeos check in CI, and fix current existly typos errors. that is a TODO thing, and it's done now. (#1340) @xyq-c-cpp

Changes in gadgets

  • RecursionCircuit and updated BatchCircuit (#1352) @noel2004
  • enhancement: add a typeos check in CI, and fix current existly typos errors. that is a TODO thing, and it's done now. (#1340) @xyq-c-cpp
  • move Field and ToScalar to gadgets (#1337) @lispc

Changes in geth-utils

  • upgrade l2geth and remove old bytecode collecting codes (#1376) @lispc
  • Sync v0.11 till 38a68e2 (#1348) @lispc
  • enhancement: add a typeos check in CI, and fix current existly typos errors. that is a TODO thing, and it's done now. (#1340) @xyq-c-cpp

Changes in integration-tests

  • enhancement: add a typeos check in CI, and fix current existly typos errors. that is a TODO thing, and it's done now. (#1340) @xyq-c-cpp

Changes in Keccak

  • enhancement: add a typeos check in CI, and fix current existly typos errors. that is a TODO thing, and it's done now. (#1340) @xyq-c-cpp

Changes in mock

  • enhancement: add a typeos check in CI, and fix current existly typos errors. that is a TODO thing, and it's done now. (#1340) @xyq-c-cpp

Changes in prover

  • fix: propagate chain_id over app SNARKs (batch circuit instances) (#1382) @noel2004
  • fix: vk filenames (#1371) @roynalnaruto
  • RecursionCircuit and updated BatchCircuit (#1352) @noel2004
  • revert chunk circuit vk to mainnet version (#1361) @lispc
  • [fix] move from_json_file back to prover crate (#1350) @lightsing
  • refactor: disable "test" "mock" features in prover side to get rid of Go (#1347) @lispc
  • refactor(ccc): less magic numbers (#1346) @lispc
  • Refactor: trace (#1341) @lispc
  • enhancement: add a typeos check in CI, and fix current existly typos errors. that is a TODO thing, and it's done now. (#1340) @xyq-c-cpp

Changes in the zkevm-circuits