Releases: scroll-tech/zkevm-circuits
Releases · scroll-tech/zkevm-circuits
v0.10.3: support blob DA
Highlights:
- support blob DA (EIP-4844)
- support SHA256 precompile
- Removed the dependency on StructLog.stack, reducing the trace size and the overhead of trace deserialization.
What's Changed
- PUSH optimization by @naure in #956
- refactor ZktrieState [dup #903] by @noel2004 in #968
- optim-invert: cache the inversion of step height by @naure in #987
- Feat: add support for EIP2930 tx by @kunxian-xia in #974
- testool: skip stTimeConsuming for default(not nightly) mode by @lightsing in #986
- fix: add
workspace.package
andworkspace.dependencies
to avoid duplicate by @silathdiir in #989 - create_op: fix memory size by @lispc in #990
- fix: move common dependencies to
workspace.dependencies
by @silathdiir in #995 - ccc performance optimization by @lightsing in #970
- fix: log(0) returns 0 by @zhenfeizhang in #1001
- Refactor create op by @lispc in #1000
- fix: add testool gpu dockers by @silathdiir in #997
- Fix/tob wave3 ecdsa circuit review by @zhenfeizhang in #992
- Refactor sign-types to remove
libsecp256k1
dep by @roynalnaruto in #969 - remove unused address_high, otherwise also need to update it for word lo-hi by @DreamWuGit in #983
- CI: delete runner-wakeup by @silathdiir in #1007
- Fix little-endian to big-endian representation in tests by @junomonster in #1012
- [security-review] issue-1: fix to delete
keccak256
dependency frombus-mapping
by @silathdiir in #1017 - [security-review] issue-13: fix wrong comment for opcodes in bus-mapping by @silathdiir in #1023
- [security-review] issue-14: replace
nth_last(0)
andnth_last_filled(0)
withlast()
andlast_filled()
by @silathdiir in #1021 - [security-review] issue-10: refactor error-invalid-jump in bus-mapping by @silathdiir in #1020
- [security-review] issue-6: upgrade dependency
itertools
,strum
andstrum_macros
by @silathdiir in #1019 - [security-review] issue-4: add explicit dependency
resolver
to workspace by @silathdiir in #1018 - fix: several typos in the docs by @tudorpintea999 in #1028
- Refactor:
PrecompileGadget
and precompile states by @roynalnaruto in #1029 - [OpenZeppelin audit N-05] fix typos in bus-mapping by @silathdiir in #1026
- [OpenZeppelin audit N-07] replace
or_insert_with
withor_default
for BTreeMap and HashMap by @silathdiir in #1025 - [FEAT] support mainnet block in mainnet.rs (#814) by @noel2004 in #1004
- fix: only enable circuit for
BASEFEE
opcode (without opcode mapping) by @silathdiir in #1033 - fix: disable applying MPT for non-scroll to fix panic in integration-tests by @silathdiir in #1034
- feat: add
AccessListGasCost
to fix begin-tx gas cost (EIP 2930 optional-access-list) by @silathdiir in #1041 - [feat] enum error in GethExecStep by @lightsing in #1037
- [feat] add feature switch of memory/stack/storage by @lightsing in #1038
- parallel assignment of evm circuit by @lispc in #1027
- Refactor PI Circuit by @roynalnaruto in #1042
- fix macos build by @lispc in #1047
- remove halo2wrong by @lispc in #1048
- feat: Add
TxEip2930Gadget
to handle EIP-2930 (for evm-circuit part) by @silathdiir in #1045 - [FEAT] precompile-sha256 by @noel2004 in #1032
- [Fix] precompile-sha256 fmt issue by @noel2004 in #1049
- chore: upgrade group/ff/halo2 and rust version by @zhenfeizhang in #1022
- [chore] update rust toolchain to 1.76 nightly; replace lazy_static/once_cell with std::sync::LazyLock by @lispc in #1050
- Fix typos by @nnsW3 in #1052
- I corrected the spelling mistakes. by @bolatfurkan in #1053
- chore(docs): typo fix by @dzizazda in #1059
- feat: implement access list address and storage key lookups in copy circuit (EIP-2930) by @silathdiir in #1058
- [feat] impl arithmetic/environment opcodes by @lightsing in #1039
- fix: revert testool upgrade by @silathdiir in #1061
- Feat: parallelize mpt table loading by @kunxian-xia in #1067
- testool: parse access-list from json and yaml by @silathdiir in #1072
- fix testool yaml parsing for access-list by @silathdiir in #1074
- [Soundness] Tx.to == precompile by @noel2004 in #1068
- Feat: Support EIP1559 by @darth-cy in #1030
- [Refactor] Config implement to reduce duplicated code in multiple_precision_integer.rs by @ludete in #1054
- feat: add sender balance check to begin-tx (EIP-1559) by @silathdiir in #1066
- testool: enable and parse for EIP-1559 and EIP-2930 by @silathdiir in #1079
- chore: Fix multiple typos by @hugo-syn in #1082
- [FIX] sha256 witness issue (#1081) by @noel2004 in #1087
- Update and fix access-list issues with testool by @silathdiir in #1080
- Fix remaining
testool
failed cases for EIP-1559 and EIP-2930 by @silathdiir in #1088 - fix (soundness): save access-list
is_warm_prev
to copy circuit by @silathdiir in #1090 - [feat] balance testool test job by @lightsing in #1094
- [FIX] Handling oog for sha256 precompile by @noel2004 in #1095
- chore: proofreading the docs by @Gakunt in #1093
- [Fix] SHA256 circuit: Wrong final condition base on padding position by @noel2004 in #1096
- [feat] add call tracer and prestate tracer by @lightsing in #1043
- RlpDecodingTable Id Column Phase Correction by @darth-cy in #1098
- [Fix]Input parsing for modexp precompile by @noel2004 in #1099
- Feat/ci fix by @johnsonjie in #1101
- Revert "Feat/ci fix" by @lispc in #1102
- Feat/ci fix by @lispc in #1103
- upgrade halo2 to v1.1 mvlookup by @lispc in #1100
- pick privacy-scaling-explorations#1719 from upstream: fix begin-tx tx_id soundness by @lispc in #1078
- feat: stack reconstruct by @lightsing in #993
- [fix] remove debug println by @lightsing in #1105
- [Add comments for precompile design by @noel2004 in https://github.com//pull/1116
- doc for eip EIP2930&1559 by @DreamWuGit in #1115
- eip1559 gadget: constrain gas_fee_cap >= base_fee by @DreamWuGit in #1120
- misc trace fixes; disable batch inv in halo2 by @lispc in #1129
- [Fix] index of storae key in access list by @noel2004 in #1133
- [fix] misconfiguration of trace config by @lightsing in https://github....
v0.9.9
What's Changed
- better ccc log by @lispc in #960
- fix: move
inner-prove
andchunk-prove
to common provertest
feature by @silathdiir in #961 - fix(prover): delete
StorageTrace
fromChunkProof
by @silathdiir in #964 - misc refactor: rename batch->chunk; remove useless var; refine comments; by @lispc in #965
- test(mpt circuit): transfer eth to non existing address by @DreamWuGit in #949
- fix circuit doc math latex by @DreamWuGit in #952
- CI: upgrade actions and fix cache issue by @silathdiir in #966
- [feat] testool : more improvements by @lightsing in #955
- fix: add
batch-prove
to prover test module by @silathdiir in #975 - fix: typo in variable name by @icemelon in #978
- Add code hash regression tests by @z2trillion in #977
- fix tob-3-10 and tob-3-11 by @zhenfeizhang in #979
- add sanity check to make sure ComparatorChip only use cur() in RLP by @kunxian-xia in #980
- upgrade mpt circuit by @lispc in #982
- fix: add
set_light_mode
function to ccc by @silathdiir in #984 - fix (v0.9): add feature
strict-ccc
by @silathdiir in #1003 - trace: disable step storage; remove reading from sload step storage by @lispc in #1035
New Contributors
Full Changelog: v0.9.2...v0.9.9
v0.9.2
What’s Changed
- fix: add CHANGELOG (#942) @silathdiir
- support max snark up to 15 (#803) @zhenfeizhang
- fix-tob-xxx: add a missing boolean constraint for chunk_is_valid cells (#902) @zhenfeizhang
- add opcodes for evm circuit doc (#891) @DreamWuGit
- fix: refactor and extract pairing-check code to a function (#860) @silathdiir
- testool: support all precompiles (#843) @lispc
- add pi, sig & modexp doc (#836) @DreamWuGit
- fix testool and update codehash (#805) @lightsing
- add four circuits' doc (#806) @DreamWuGit
Changes in the bus-mapping
- fix ccc panic CodeNotFound (#958) @lispc
- many sanity checks for mpt witness (#950) @lispc
- Fix build (#938) @silathdiir
- upgrade ethers from 0.17.0 to 2.0.7 (#937) @kunxian-xia
- ecrecover soundness (address not recovered) (#930) @roynalnaruto
- add "" to default codedb (#929) @lispc
- refactor(bus-mapping): spit begin end tx to another file (#922) @lispc
- [feat] prestate tracer (#914) @lightsing
- fix: load constants wherever applicable (#892) @roynalnaruto
- test: don't use l1 tx in tracing (#886) @lispc
- feat: check post tx account (#878) @lispc
- refactor: update the default sign_data (#560) @kunxian-xia
- ec pairing simplify (#873) @roynalnaruto
- bump l2geth; support sig circuit in testool (#869) @lispc
- Feat: bump up poseidon-circuit to enable parallel synthesis (#867) @kunxian-xia
- fix(ecMul): handle case for P == -R (#865) @roynalnaruto
- Fix: post state check should fail for hash precompile tests (#856) @kunxian-xia
- Clean mod exp codes (#859) @lispc
- Reversion from Precompile calls (even from begin_tx) (#855) @roynalnaruto
- feat(testool): use list to filter tests; upgrade revm to fix modexp gas cost (#853) @lispc
- Fix/rws limit early stop (#852) @lispc
- fix-exp-is-last: enforce the secure termination of Exp circuit (#837) @naure
- Precompile (non-static) calls with (non-zero) value (#848) @roynalnaruto
- Fix EXTCODECOPY with empty account (#846) @lispc
- Fix: gas cost of ec_pairing precompile (#844) @kunxian-xia
- Swap only if both G1, G2 are 0s from EVM (#845) @roynalnaruto
- testool: support sub circuit; fix modexp row usage (#841) @lispc
- testool: enable stZeroKnowledge tests (#839) @lispc
- Remove redundant branch (#835) @roynalnaruto
- Handle precompile call failure
call.is_success == false
due to "Invalid Inputs" and "Insufficient Gas" (#811) @roynalnaruto - fix CallContextField::GasLeft (#833) @lispc
- improve testool for scroll mode (#831) @lispc
- scroll mode for testool (#822) @lispc
- fix code_size in create; fix return_data for call oog (#826) @lispc
- [Feat] make supercircuit test applying l2trace (#767) @noel2004
- more strict check on Account Rw (#819) @lispc
- fix returndata for err cases; upgrade evm tests submodule (#813) @lispc
- Remove CopyDataType::Precompile (#809) @naure
- fix test tool create collision tests (#793) @DreamWuGit
Changes in circuit-benchmarks
- upgrade ethers from 0.17.0 to 2.0.7 (#937) @kunxian-xia
- [Feat] make supercircuit test applying l2trace (#767) @noel2004
Changes in eth-types
- many sanity checks for mpt witness (#950) @lispc
- Super Circuit Invalid Precompile Inputs Integration Tests (OOG, EC Fp Overflow, EC Not on Curve) (#850) @darth-cy
- upgrade ethers from 0.17.0 to 2.0.7 (#937) @kunxian-xia
- ecrecover soundness (address not recovered) (#930) @roynalnaruto
- [feat] prestate tracer (#914) @lightsing
- feat: check post tx account (#878) @lispc
- refactor: update the default sign_data (#560) @kunxian-xia
- Feat: bump up poseidon-circuit to enable parallel synthesis (#867) @kunxian-xia
- [Feat] make supercircuit test applying l2trace (#767) @noel2004
Changes in external-tracer
- test: don't use l1 tx in tracing (#886) @lispc
- fix(trace): add base fee (#877) @lispc
- Fix: post state check should fail for hash precompile tests (#856) @kunxian-xia
- testool: enable stZeroKnowledge tests (#839) @lispc
- improve testool for scroll mode (#831) @lispc
- [Feat] make supercircuit test applying l2trace (#767) @noel2004
Changes in geth-utils
- fix(trace): add base fee (#877) @lispc
- rewrite geth_utils with go.work (#875) @lispc
- bump l2geth; support sig circuit in testool (#869) @lispc
- fix pi circuit env var reading (#864) @lispc
- Fix: post state check should fail for hash precompile tests (#856) @kunxian-xia
- Clean mod exp codes (#859) @lispc
- improve testool for scroll mode (#831) @lispc
- scroll mode for testool (#822) @lispc
- [Feat] make supercircuit test applying l2trace (#767) @noel2004
Changes in integration-tests
- upgrade ethers from 0.17.0 to 2.0.7 (#937) @kunxian-xia
- [feat] prestate tracer (#914) @lightsing
- fix pi circuit env var reading (#864) @lispc
- fix code_size in create; fix return_data for call oog (#826) @lispc
Changes in mock
- upgrade ethers from 0.17.0 to 2.0.7 (#937) @kunxian-xia
- test: don't use l1 tx in tracing (#886) @lispc
- [Feat] make supercircuit test applying l2trace (#767) @noel2004
Changes in prover
- [feat] fast check_value (#936) @lightsing
- upgrade ethers from 0.17.0 to 2.0.7 (#937) @kunxian-xia
- fix: replace
dotenv
withdotenvy
(#934) @silathdiir - fix ecdsa circuit binary selection bug (#931) @zhenfeizhang
- fix: validate chain ID when generates witness block (#927) @silathdiir
- fix: miss fixing to
<= NORMALIZED_ROW_LIMIT
inadd
function (#925) @silathdiir - feat: add inner-prove and chunk-prove to testool (#921) @silathdiir
- feat: add common function of
prover
(#893) @silathdiir
Changes in the zkevm-circuits
- another edge case (#951) @roynalnaruto
- many sanity checks for mpt witness (#950) @lispc
- Fix: first 12 rows are dummy (not 300) (#946) @kunxian-xia
- Fix: ec pairing invalid len > 65536 test. (#948) @kunxian-xia
- add create edge tests (#941) @DreamWuGit
- Fix: keccak circuit's ccc need to consider first dummy chunk (#940) @kunxian-xia
- [feat] fast check_value (#936) @lightsing
- Super Circuit Invalid Precompile Inputs Integration Tests (OOG, EC Fp Overflow, EC Not on Curve) (#850) @darth-cy
- Fix lint (#939) @silathdiir
- upgrade ethers from 0.17.0 to 2.0.7 (#937) @kunxian-xia
- ecrecover soundness (address not recovered) (#930) @roynalnaruto
- fix ecdsa circuit binary selection bug (#931) @zhenfeizhang
- fix: add analysis function
print_evm_circuit_row_usage
andprint_rw_usage
to witness block (#933) @silathdiir - Bug fix: fixed part of tx table must have is_calldata = false (#935) @kunxian-xia
- opt(assignment): only do 3rd phase assignment for evm circuit in supe… (#924) @lispc
- constrain log memory address (#920) @DreamWuGit
- fix end_tx soundness (#916) @lispc
- test: calldataload/calldatasize/calldatacopy inside deployment (#913) @DreamWuGit
- Fix: test state degree 19->17 (#910) @lispc
- fix calldataload when tx.to = null (#909) @lispc
- FEAT: parallelize witness assignment of state circuit using assign_regions api (#545) @Velaciela
- minor refactor of testool (#907) @lispc
- fix tob-wave3-week3 issues (#904) @zhenfeizhang
- change BYTECODE_TABLE_LOOKUPS to 8 (#899) @lispc
- improve poseidon ccc log (#896) @lispc
- fix: load constants wherever applicable (#892) @roynalnaruto
- fix(ecmul): support -1 * (0,0) (#895) @lispc
- fix bug in #872 fix/msg-hash-zero (#880) @zhenfeizhang
- upgrade halo2-lib to fix ec pairing (#889) @lispc
- Optimize EVM selectors (#857) @naure
- test: don't use l1 tx in tracing (#886) @lispc
- testool: better handling of parallelism (#879) @lispc
- Fix: copy chain_id to tx circuit (#874) @kunxian-xia
- fix issue with msg_hash = 0 (#872) @zhenfeizhang
- refactor: update the default sign_data (#560) @kunxian-xia
- ec pairing simplify (#873) @roynalnaruto
- add more tests for modexp (#870) @DreamWuGit
- bump l2geth; support sig circuit in testool (#869) @lispc
- Feat: make row estimation of tx and pi circuits more precise (#866) @kunxian-xia
- fix(ecMul): handle case for P == -R (#865) @roynalnaruto
- add 0xfe invalid code test (#863) @DreamWuGit
- fix pi circuit env var reading (#864) @lispc
- Fix: post state check should fail for hash precompile tests (#856) @kunxian-xia
- pi circuit: add sanity check for state_root/coinbase/difficulty (#824) @kunxian-xia
- add modexp all zeros test (#861) @DreamWuGit
- Clean mod exp codes (#859) @lispc
- Fix: witness gen panic in modexp (#858) @kunxian-xia
- Reversion from Precompile calls (even from begin_tx) (#855) @roynalnaruto
- test self_destruct for oog &basefee expected invalid opcode (#854) @DreamWuGit
- upgrade mpt circuit; some other minor changes (#851) @lispc
- fix-exp-is-last: enforce the secure termination of Exp circuit (#837) @naure
- Precompile (non-static) calls with (non-zero) value (#848) @roynalnaruto
- Fix: n_padded_zeroes must be less than 192. (#849) @kunxian-xia
- Fix: precompile oog with large calldata_length (#847) @kunxian-xia
- Fix EXTCODECOPY with empty account (#846) @lispc
- Swap only if both G1, G2 are 0s from EVM (#845) @roynalnaruto
- testool: support sub circuit; fix modexp row usage (#841) @lispc
- upgrade "misc-precompiled-circuits" and handle modexp invalid len in bus-mapping (#830) @lispc
- Handle precompile call failure
call.is_success == false
due to "Invalid Inputs" and "Insufficient Gas" (#811) @roynalnaruto - improve testool for scroll mode (#831) @lispc
- [Feat] make supercircuit test applying l2trace (#767) @noel2004
- more strict check on Account Rw (#819) @lispc
- fix blockhash in test tool (#810) @DreamWuGit
- Remove CopyDataType::Precompile (#809) @naure
- fix test tool create collision tests (#793) @DreamWuGit
v0.7.0
What’s Changed
Changes in the bus-mapping
- (1) testool: use cache skip success cases (2) testool enable parallel compilation (3) fix many corner cases (#798) @lightsing
- refactor return data (#797) @lispc
Changes in eth-types
Changes in the zkevm-circuits
- (1) testool: use cache skip success cases (2) testool enable parallel compilation (3) fix many corner cases (#798) @lightsing
- Refactor: make witness gen of tx circuit more easier to maintain (#800) @kunxian-xia
- test tool: fix first byte (#802) @DreamWuGit
- [FIX] incorrect assignment of is_zero in gas cost gadget of modexp (#796) @noel2004
- refactor return data (#797) @lispc
v0.6.2
What's Changed
- Fix: constraint on num_all_txs_acc' is wrong by @kunxian-xia in #790
Full Changelog: v0.6.1...v0.6.2
v0.5.16
- Fix LastCalleeId for call empty.
Full Changelog: v0.5.15...v0.5.16
v0.5.15
v0.5.13
What's Changed
- More verbose agg debugging; checks pairing during circuit generation by @zhenfeizhang in #743
- Use
start_l1_queue_index
to calculatedata_hash
of ChunkHash.
Full Changelog: v0.5.12...v0.5.13
v0.5.12
v0.5.10
Full Changelog: v0.5.9...v0.5.10