This repository has been archived by the owner on Jul 5, 2024. It is now read-only.
Releases: privacy-scaling-explorations/zkevm-circuits
Releases · privacy-scaling-explorations/zkevm-circuits
The First Relicensed Release
What’s Changed
The repo is now relicensed to MIT + Apache2.0 (#585)
Changes in the bus-mapping
- feat(evm-circuit): add dummy gadget (#563) @lispc
- Tx logs buss mapping (#476) @DreamWuGit
Changes in circuit-benchmarks
Changes in geth-utils
Changes in Keccak
- [Keccak] Replace running sum gates in rho with generic gate (#576) @ChihChengLiang
- Replace iota with generics (#571) @ChihChengLiang
- small mixing fix (#577) @ChihChengLiang
- Add generic to keccak (#570) @ChihChengLiang
Changes in the zkevm-circuits
EVM circuit
- Implement
ADDMOD
(#564) @adria0 MULMOD
opcode (#562) @davidnevadoc- Add BinaryNumberChip for selecting tags (#550) @z2trillion
- opcode CODESIZE (#483) @roynalnaruto
- Refactor
MulAddWordsGadget
(#548) @davidnevadoc - Opcode
SHR
(#519) @silathdiir - Box ExecutionConfig in EvmCircuit (#583) @ed255
State circuit
- Pad StateCircuit to a fixed length (#558) @z2trillion
Chore
- cargo: patch halo2_proofs on crates.io (#555) @pinkiebell
- chore: update repo link (#572) @DreamWuGit
- Upgrade all Rust edition to
2021
(#556) @silathdiir
Relicensing Target
We cut this release as the target to relicense the codebase from BOSL to MIT+Apache2.0.
What’s Changed
- bump halo2_proofs version to v2022_06_03 (#553) @ChihChengLiang
Changes in the zkevm-circuits
- Add more negative tests for state circuit (#545) @z2trillion
- Add 1 more instance row for starting row (#544) @z2trillion
A Huge Release
What’s Changed
Changes in dependencies
- Halo2 bump to v2022_05_09 (#503) @CPerezz
- Bump to latest Halo2 tag (v2022_05_06) (#499) @CPerezz
- Remove
pairing
and usehalo2_proof::pairing
instead (#491) @kilic - update: Bump halo2 dep version to v2022_05_03 tag (#490) @CPerezz
- Update workspace to newest Halo2 version (#341) @CPerezz
Changes in the bus-mapping
Features:
- Add
dummy_gen_create_ops
to avoid call stack empty panic (#454) @han0110 - CALLDATALOAD: bus-mapping and refactoring (#402) @roynalnaruto
- CALLDATACOPY: Internal call and refactoring (#450) @roynalnaruto
- feat: bus mapping for sload and sstore (#436) @lispc
CHAINID
bus-mapping and gadget (#432) @adria0- busmapping implementation for CODECOPY (#449) @roynalnaruto
- Bus-mapping for opcode
calldatacopy
(#393) @silathdiir - Add NUMBER module to opcodes and update testing infra (#412) @CPerezz
- Initialize
LastCallee*
ofCallContext
(#298) @han0110 - Gadget for opcode calldatasize (#329) @scroll-dev
- feat: add error handling in
impl From<&bus_mapping::circuit_input_builder::ExecStep> for ExecutionState
(#333) @scroll-dev
Fixes:
- fix multi copy step data index (#510) @DreamWuGit
- Fix some bugs of
CircuitInputBuilder
(#434) @han0110 - Refactor rw operation for issue #498 (#522) @DreamWuGit
- fix "gen_state_access_trace" when handling the call stacks (#401) @ripwu
Refactors:
- Try wrap read/write ops (#497) @DreamWuGit
- Split circuit_input_builder file and improve APIs for it (#482) @CPerezz
- simplify code to reduce redundant lines (#481) @DreamWuGit
- Rename "state write" to "reversible write" (#409) @z2trillion
- refactor: rename TxAccessListStorageSlot to TxAccessListAccountStorage (#327) @scroll-dev
Changes in circuit-benchmarks
- Implement constraints in state circuit spec (#462) @z2trillion
- Variable step height + Degree reduction + Lookup refactor (#425) @Brechtpd
- Fix bytecode table width (#475) @Brechtpd
- Added state and keccak benches according to issue #371 (#390) @ntampakas
- Fix EVM Circuit benchmark (#364) @CPerezz
Changes in eth-types
- Refactor: Move Eth and Evm types from bus-mapping to a new sub-crate eth-types (#290) @scroll-dev
- Split eth-types Error (#304) @scroll-dev
Changes in gadgets
Changes in geth-utils
- add blockCtxOp gadgets (#413) @bchyl
- Update
geth-utils
andbus-mapping
to build more witness (#292) @han0110
Changes in integration-tests
- Add integration test for ETH transfer (#291) @ed255
- Fix integration test (#389) @han0110
- Add integration test of block with multiple transfers (#345) @ed255
Changes in external-tracer
- Move
external_tracer
from bus mapping to new crate only for test (#303) @scroll-dev
Changes in Keccak
Features:
- Padding Validation (#445) @ChihChengLiang
- Implement word/next_inputs padding for keccak (#338) @CPerezz
- Keccak: Add range check table (#325) @ChihChengLiang
- Keccak circuit implementation (#268) @CPerezz
Optimizations:
- reduce columns #501 #537 #538 @ChihChengLiang @CPerezz
Fixes:
- fix base conversion (#308) @ChihChengLiang
Cleanup: #518 #527 #365 #305 #286
Changes in mock
- Modularize mock crate for easier and more customizable testing setup generation (#349) @CPerezz
- Fix flakiness in begin_tx_gadget_rand (#516) @z2trillion
- add blockCtxOp gadgets (#413) @bchyl
- Move
external_tracer
from bus mapping to new crate only for test (#303) @scroll-dev
Changes in prover
- prover: add http/json-rpc daemon command (#441) @pinkiebell
- Feat/prover: add prover command line utilities (#326) @pinkiebell
Changes in the zkevm-circuits
EVM Circuit:
- add TxReceipt constraint in begin & end tx (#466) @DreamWuGit
- add non static call constraint for sstore (#467) @DreamWuGit
- Circuit for logs op codes (#335) @DreamWuGit
- CALLDATACOPY: Internal call and refactoring (#450) @roynalnaruto
- CODECOPY opcode (#391) @roynalnaruto
- Implement Gasprice opcode and gadget (#422) @CPerezz
- Implementation
ExecutionState::CALL
(#278) @han0110 - Implement
ExecutionState::EndTx
(#312) @han0110 - feat: add
sload
op (non-bus-mapping version) (#334) @HAOYUatHZ - Circuit for opcode calldatacopy (#297) @scroll-dev
- opcode
ISZERO
(#399) @silathdiir - Signed comparator gadget: SLT, SGT (#280) @scroll-dev
- ORIGIN opcode (#360) @CPerezz
- Implement Gasprice opcode and gadget (#422) @CPerezz
- Circuit for NUMBER opcode (#381) @bchyl
- Circuit for EXTCODEHASH opcode (#353) @z2trillion
- feat: add
sstore
circuit (#383) @HAOYUatHZ - op CALLDATALOAD (#346) @roynalnaruto
- Circuit for opcode SELFBALANCE (#328) @scroll-dev
- Implement circuit for CALLER and CALLVALUE opcode (#287) @ed255
- Circuit for opcode TIMESTAMP (#307) @scroll-dev
- GasGadget for GAS opcode (#301) @scroll-dev
Tx Circuit:
State circuit:
- Implement constraints in state circuit spec (#462) @z2trillion
- Add overrides to StateCircuit for negative tests (#524) @z2trillion
- state circuit update part1: change RwTable according to latest spec; finish stack/storage constraints (#380) @lispc
- refactor state circuit (#339) @lispc
Bytecode circuit:
Optimization:
Fixes/ other feats/ tests:
- fix tag byte overlap issue #520 (#523) @DreamWuGit
- Fix incorrect current_cumulative_gas_used in end_tx_gadget (#535) @lispc
- Rename code_source to code_hash (#531) @roynalnaruto
- fix multi copy step data index (#510) @DreamWuGit
- Fix flakiness in begin_tx_gadget_rand (#516) @z2trillion
- fix log gas by adding static cost (#507) @DreamWuGit
- Fix bytecode table width (#475) @Brechtpd
- Fix error checking and bytecode circuit (#403) @adria0
- change: Update sdb/storage-related ops warm check fields (#452) @CPerezz
- check rw_counter is unique (#415) @DreamWuGit
- feat: speedup test by only check constraints on less rows for MockProver (#354) @lispc
- feat: upgrade RwTable and add aux (#285) @scroll-dev
- test: enable state circuit test for opcodes (#282) @lispc
- fix: fix
state_write_counter
insload
&sstore
circuits (#397) @HAOYUatHZ - feat: make
"KECCAK256"
an alias for"SHA3"
when deserializing gethdebug_traceBlockBy*
response body (#374) @DavidCai1111 - Fix the error of the expr degree in signed comparator exceeding the max degree (#296) @icemelon
- Extend memory gadgets to handle dynamic offset and length (#279) @han0110
- Fix MSIZE opcode and add doc to step (#271) @scroll-dev
Changes in CI
- Multi-AZ provers (#500) @ntampakas
- contributor guidelines #480 #447 by @ed255 @CPerezz
- tried but deleted review_lottery #485 #446 @CPerezz
- Revamp labeler #453 @CPerezz
- Added CODEOWNERS #448, #429 @CPerezz
- Initialize git submodule in integration test (#424) @ed255
- Add OpenZeppelin ERC20 transfers integration test (#408) @ed255
- add prover bench scripts and new workflow yml #293 #330 @AronisAt79
Minors
December release
What’s Changed
Changes in the zkevm-circuits
- Use more instance columns for power of randomness (#244) @han0110
- Implement
ExecutionState::BeginTx
(#230) @han0110 - Make gadgets to handle an execution state instead of an opcode per step (#196) @han0110
Changes in the bus-mapping
- Add initial integration test with circuits (#257) @ed255
- fix tx_convert in witness (#261) @lispc
- bus-mapping: Add call_id in StackOp and MemoryOp (#252) @ed255
- Fix compilation error (#251) @ed255
- bus_mapping: add
jump
andjumpi
opcode (#247) @scroll-dev - bus-mapping: Handle code_hash in CircuitInputBuilder, Define more Operations (#245) @ed255
- Construct EVM circuit test inputs from Geth trace (#239) @scroll-dev
- bus-mapping: Extend CircuitInputBuilder (#235) @ed255
- Circuit benchmarks addition to workspace (#226) @CPerezz
Changes in Opcodes
- Circuit for opcode COINBASE (#259) @scroll-dev
- Circuit for opcode
MUL
(#255) @scroll-dev - fix tx_convert in witness (#261) @lispc
- Feature: Implement MSIZE opcode (#240) @spartucus
- Fix
JUMP
andJUMPI
to support 8 bytes for destination (#236) @han0110
Changes in Keccak
- Remove biguint to field (#283) @ChihChengLiang
- Handle base conversion nicer (#281) @ChihChengLiang
- Remove duplicate ROUND_CTANT input from Mixing (#267) @CPerezz
- Fix MixingConfing w/ Lookups integration (#264) @CPerezz
- Add base conversion lookup table (#215) @ChihChengLiang
- use table columns (#254) @ChihChengLiang
- Iota, Absorb and Mixing gates Layouter + Cell copy strategy impl (#242) @CPerezz
- Update Theta to copy state Cells for in/out (#241) @CPerezz
- Radical Pi Gate (#234) @ChihChengLiang
- use (Cell, F) for Rho gate (#224) @ChihChengLiang
Chore
- Add cache to GitHub actions (#270) @scroll-dev
- bring back ethers deps to crates.io (#265) @scroll-dev
- Fix state bench test parameter in makefile (#246) @Brechtpd
- gitignore circuit_benchmarks bench_params (#238) @HAOYUatHZ
- chore: add Cargo.lock (#232) @lispc
- Public the StateCircuit fields (#263) @Lawliet-Chan
- public mod table (#262) @Lawliet-Chan
- docs: fix typos (#229) @HAOYUatHZ
November Release
What’s Changed
Changes in the zkevm-circuits
- Replace with kate (#199) @noctrlz
- Mitigate the long testing time by allowing partial fixed table (#198) @han0110
Changes in the bus-mapping
- Add integration testing with geth (#221) @ed255
- Generate AccessTrace and AccessSet (#209) @ed255
- feat: Add eth_getProof RPC (#205) @spartucus
- bus-mapping: Bump ethers dependency (#208) @ed255
- bus-mapping: Extend circuit_input_builder (#201) @ed255
- bus-mapping: Add StateDB key-value database (#193) @ed255
- bus-mapping: Extend CallContext (#191) @ed255
- bus-mapping: Introduce EVM error detection (#183) @ed255
- Add GethClient and support for minimum required JSON-RPC endpoints by bus-mapping. (#171) @CPerezz
- Implement some opcodes in bus-mapping (#167) @ed255
- Refactor bus-mapping (#162) @ed255
- Add operation (#158) @noctrlz
Changes in Opcodes
- JUMP and JUMPI opcode circuit (#176) @scroll-dev
- Implement XOR opcode (#75) @scroll-dev
- Implement MSTORE8 opcode (#160) @Brechtpd
- Implement MLOAD/MSTORE opcodes (#87) @Brechtpd
- Refactor all opcodes to use the constraint builder + other utils (#147) @Brechtpd
Changes in Keccak
- Build keccak all toghether (#144) @CPerezz
- enable rho check selectors (#182) @ChihChengLiang
- Add rho related checks (#156) @ChihChengLiang
Chore
- build gethutils for apple silicon (#169) @ChihChengLiang
- Upgrade the toolchain to nightly (#181) @ChihChengLiang
Monthly Release for October
What’s Changed
Changes in the zkevm-circuits
(minor updates from various other PRs)
Changes in the bus-mapping
- Split gas info into and fill in correct ether address value (#142) @noctrlz
- Introduce a global Context for bus-mapping (#134) @ed255
- EVM trace generation from rust (#91) @Brechtpd
- bus-mapping: add SLOAD opcode (#116) @ed255
Changes in Opcodes
- [Opcode] Jumpdest (#143) @scroll-dev
- Add EQ support in LtGadget (#120) @Brechtpd
- Remove unnecessary constraint which requires unused cells to be
0
(#135) @han0110 - Implement PC opcode (#109) @scroll-dev
- Implement opcode swap1~swap16 (#108) @scroll-dev
- Implement SIGNEXTEND opcode (#118) @Brechtpd
- Implement DUPX opcode (#100) @scroll-dev
- Implement BYTE opcode + Code reuse utilities (#106) @Brechtpd
Changes in Keccak
- add rho and pi interface (#121) @ChihChengLiang
- Xi, Iota & Absorb gates (#117) @CPerezz
Chores
- Update toolchain to enable the array_map feature (#157) @ChihChengLiang
- Change CI to not trigger for Draft PRs (#146) @CPerezz
- Fix the test error for geth-utils on MacOS (#131) @scroll-dev
- Show better error message when Go isn't installed (#130) @Brechtpd
First Release!
What’s Changed
Opcodes: PUSHX/POP/ADD/SUB/LT/GT
Changes in the zkevm-circuits
- First stack op constraint removed (#102) @miha-stopar
- Change
EvmWord
layout and improveMemory
andStack
APIs (#95) @CPerezz - State circuit (#23) @miha-stopar
- EVM Circuit and trait OpGadget (#26) @han0110
- 8 bit word encoding (#21) @therealyingtong
- Bump halo2 commit (#22) @therealyingtong
- Implement gadget is_zero (#12) @han0110
- Implement gadget monotone (#11) @han0110
Changes in the bus-mapping
- Update MemoryOp to contain a single byte per value (#101) @CPerezz
- Change
EvmWord
layout and improveMemory
andStack
APIs (#95) @CPerezz - Change Memory layout to be byte-based (#89) @CPerezz
- State circuit (#23) @miha-stopar
- Adapt bus-mapping to parse Geth trace format (#79) @CPerezz
- Externalize Circuit-related logic to zkevm-circuits (#59) @CPerezz
- Implement byte-conversion for
EvmWord
&MemoryAddress
(#56) @CPerezz - ExecutionTrace API extension (#55) @CPerezz
- Add docs for bus-mapping crate (#46) @CPerezz
- Bus mapping crate initial layout implementation (#20) @CPerezz
Changes in Opcodes
- EVM Circuit and trait OpGadget (#26) @han0110 (PUSHX/ADD/SUB opcode)
- Implement LT & GT opcode (#66) @scroll-dev
- Implement opcode POP (#78) @scroll-dev
Changes in Keccak
- [keccak] Theta gate circuit (#97) @ChihChengLiang
- Keccak test cases (#82) @ChihChengLiang
- Adding Keccak Tables (#65) @rahulbs98
Chores
- fix release drafter (#115) @ChihChengLiang
- add missing src (#113) @ChihChengLiang
- Labeler and release draft (#111) @ChihChengLiang
- remove beta lint (#112) @ChihChengLiang
- fix lint warnings (#110) @ChihChengLiang
- Add rust-toolchain file to the repo (#80) @CPerezz
- Update README.md to point to spec repo (#72) @barryWhiteHat
- Remove warning and fix some typos (#67) @3for
- Add .rustfmt.toml config file for workspace (#41) @CPerezz
- Add Makefile to crate (#40) @CPerezz
- Add Rust CI and lints. (#14) @therealyingtong
- Two initial checks added (#1) @miha-stopar