* use new gkr API
* fix Table pointers
* refactor: remove removed test engine option
* chore: don't initialize struct for interface assertion
* refactor: plonk-in-wizard hardcoded over U64 for now
* refactor: use new gnark-crypto stateless RSis API
* test: disable incompatible tests
* chore: go mod update to PR tip
* chore: dependency against gnark master
* chore: cherry-pick 43141fc13d
* test: cherry pick test from 407d2e25ecfc32f5ed702ab42e5b829d7cabd483
* chore: remove magic values
* chore: update go version in Docker builder to match go.mod
---------
Co-authored-by: Ivo Kubjas <ivo.kubjas@consensys.net>
* clean(naturalize): harmonize the implementation of the verifier
* update constraints version to rc3.1
* clean(corset): use the lisp to name the constraints
* fix(permutation): compile zcatalog in deterministic order
---------
Co-authored-by: gusiri <dreamerty@postech.ac.kr>
* bump go-corset
* fix compile errors
* constraints: bump to v0.1.0-rc1 for beta-v1.2
* bump to latest go-corset
* constraints: bump to beta-v1.2 / v0.1.0-rc2
* bump go-corset
* bump zkevm bin
* use next power of two value for non-power of two size columns (e.g., MMIO)
* remove a check for the power of two size
* bump corset to 9.7.18
* bump zkevm.bin
* bump corset to v9.7.18
* update zkevm.bin
* added interleaved to the compilediop columns
* adjusted size for corset columns
* Prover/Codehash Non Power of Two Column Size (#618)
* Revert "adjusted size for corset columns"
This reverts commit b1a7319fa586319a04ba57f421f10b55492124ff.
* fixed bug and added panic message for a non power of two size column
* removing panic
* reinsteaded the panic
---------
Co-authored-by: gusiri <dreamerty@postech.ac.kr>
* adjusted size for corset columns
* constraints: bump to beta v1.2/v0.1.0-rc3
* update constraints version to rc3
* bump to latest go-corset
* apply hotfix for BLOCKDATA
* move NextPowerOfTwo unit test to utils
* add logs for adjusted columns with non-power of two size
* turn off trace version check
* fix golangcli-lint
* Prover/fix public input timestamps from new blockdata (#644)
* updated timestamp fetcher and arithmetization mock data for unit testing.
* fix(codehash): uses 0x0 for the codehash of non-existing accounts instead of the default EOA codehash
* fix(mimccodehash): unimport the rom codehash for initialization code
* fixup(execDataHash): revert the exec-data hash check
* timestamp byte change
* fix(execdatahash): adds the real blockhash in the execdata hash instead of 0x0
* fixup previous commit
* fixup(build): removes imports
* Revert "fixup(execDataHash): revert the exec-data hash check"
This reverts commit eb8d984e13fab627a853dc98b2c94980a7eed0b3.
* fix(consistency): adds a smaller size to the consistency module
* feat(mimc): alex -- mimc simplification -- start
* optimize factorExpression
* feat(exec): uses the ProveCheck in the execution proof
* Revert "feat(mimc): alex -- mimc simplification -- start"
This reverts commit 184771b92746070dedb5ca356ed81f989a3daea5.
* fix (public-input): changed the hashing method to match compression
* perf(mem): adds a detector for constant regular column.
* fixup(mem): support the edge-case for smartvectors of size 1
* fix(codehash): support the case where the ROM is empty
* feat(csv): adds a feature to rename columns when using fmtcsv
* fixup(codehash): supports the case where no codehash are available
* test(codehash): adds test for empty rom or statesummary
* fix(ss-connect): skip the integration connector test
---------
Co-authored-by: gusiri <dreamerty@postech.ac.kr>
Co-authored-by: Soleimani193 <azam.soleimanian@ens.fr>
Co-authored-by: Arijit Dutta <37040536+arijitdutta67@users.noreply.github.com>
Co-authored-by: Bogdan Ursu <bogdanursuoffice@gmail.com>
* clean(prover): more hilo into zkevm/prover/common
* feat(codehash): implements the module connecting the codehash and the statesummary
* clean(ss): apply the changes for the statesummary
* feat(rand): moves everything to use rand/v2
* feat(csv): adds WriteExplicit
* feat(codehash): implements the consistency module
* fix(rng): Int31n -> Int32N
* fix(lint): pass the use of test-rng
* clean: clean one of the comment to remove debugging data
* fix(test): fix conversion test and also simplify the use of rng
* feat(codehash): enable the codehash consistency module
* reconnect the execution data hasher with the public input
* revert the rand/v2 for the testcase-gen of the contracts
* (feat): Implements the full-recursion and test for a simple test
* msg(sticker): better error in the sticker
* test(full-recursion): adds a test for double full-recursion (overflowing memory)
* fix: sort out the packages after rebasing
* fix(pi): renaming of the public inputs
* fix(hasher): adjust the code to using a [hash.StateStorer]
* fix(pairing): pass the new format for fp12 elements
* doc(plonk): adds more doc in plonk.alignment.go
* doc(fs-hook): improves the documentation of the FiatShamirHook field.
* docs(skipping): adds doc on the ByRoundRegister
* feat(pubinp): move the zkevm public inputs to using the new public-input framework
* doc(column-store): adds documentation for the more precise methods regarding the inclusion in the FS transcript.
* clean(self-recursion): remove the self-recursion tuning file
* doc(vortex): explain the separation between the verifier steps
* doc(full-recursion): documents the prover and verifier actions
* doc(columns): improve the documentation on the IncludeInProverFS
* fix(execution): assigns the functional public inputs
* revert(execution): reinstate the panic if the traes do not match the checksum.
* clean(circuit): remove the systematic circuit profiling
* fix(pi-interconnection): fix the check on the aggregation circuit
* chores(prover): remove the overly verbose log
* chores(zkevm.bin) commit the updated zkevm.bin
* fix(public-input): point to data_hilo instead of addr_hilo
* fixup: pi-interconnection fix in the circuit and the assignment
---------
Co-authored-by: Arya Tabaie <arya.pourtabatabaie@gmail.com>
* fix(execution): a few fixes in the wizard verifier
* feat(dict): pass the dict path from config
* fix: makeBw6Proof returns circuitID instead of -1
* fix(circuitID): make bw6Proof returns the circuitID
* fix(config-testing)
* feat(config): sepolia-full uses full aggregation
* style(naming): renaming the rolling hash fields and documenting the checks in pi-interconnection
* feat: flag for target number of constraints
* fix refactoring oversight
---------
Co-authored-by: Arya Tabaie <arya.pourtabatabaie@gmail.com>
* fix rolling hash updates in collectFields
* fix initial rolling hash in piq
* fix assignment rolling hash logic
* docs give names to all checks
* docs point out checks in circuit
* refac check for chain id etc first
---------
Co-authored-by: Arya Tabaie <15056835+Tabaie@users.noreply.github.com>
Co-authored-by: AlexandreBelling <alexandrebelling8@gmail.com>
* feat hash wrappers for testing
* feat not so strict hasher
* fix integrate flexible hashes into PI circuit
---------
Co-authored-by: Arya Tabaie <15056835+Tabaie@users.noreply.github.com>
* chore bring over changes from other branch
* chore: blocks as byte arrays not lists; tx.S <- 1
* build: update compressor lib release script by jpnovais
* docs and go generate
---------
Co-authored-by: Arya Tabaie <15056835+Tabaie@users.noreply.github.com>
* fix simplified public input embedding
* update integration test
* build bump go-ethereum version
* fix pi setup in integration test
* feat dummy pi circuit
* refactor move ToVariableSlice to utils
* test small "integration test" for aggr
* fix max = 0 edge case for NewRange
* truncate cvks (unnecessary)
* build update gnark dep
* refactor simplify aggregation backend logic
* feat(statemanager): adds a generic interface for traces
* feat(shomei): checks the ordering of the traces shomei
* feat(shomei): check the ordering of the account segments
* chores(shomei): adds the type of account segment in the error trace
* style(shomei): remove systematic error log
* fix(shomei): sort the state-access to match shomei's expectations
* fix(mock): EOA has codeHash equal to emptyStorageHash instead of emptyCodeHash
* fix(ringsis): fix the failing CI tests for MiMC
* fix(serialization): fix the CI for the serialization test
* fix(shomei): fix read zero shomei
* fix(shomei): rename test to TestStateSummaryReadNonZeroShomei
* fix reuse of the same circuit
---------
Co-authored-by: Arya Tabaie <arya.pourtabatabaie@gmail.com>
* disconnect the hub from the actual arithmetization
* adds the missing columns from the arithmetization
* fix invalid bound constraint for ecdsa
* adds the settings for all the modules
* deduplicating the columns names between sha2.packing and keccak.packing
* adjust the number of inputs for ecadd and ecmul
* sanity-checks against creating giant columns and giant range-checks
* more informative message about failing to split a global constraint
* fixing a mistake in the multi-limb cmp
* splitter: adding support for periodic sample with larger period
* ecpair: adjust the number of G2 check per circuit
* fix: generate missing twiddles for specific sis instances
* optime the FromAccessor verifier col to make it lighter
* fix: make all fields of ConstCol public
* serialization: add checks to panic when entering a private field
* factorization: remove false edge-case
* added logs for the artefact writing
* lookup: fix ensuring that the zCatalog are processed in deterministic order
* corset.go: remove deadcode
* artefacts: fix the file existence check in wizard.Artefact
* codehash: fix state-manager assignment code hash
* adds sha2 circuit
* ecdsa: fix a few bugs in the assignment part
* implements the tx-signature getter
* config: fix maximal value for the log level
* remove-me: making debugging simpler
* fixup + add some more informations
* batch-interpolate: fix the batch interpolation algorithm
* add more logs in the vortex prover
* fixup: remove the test acceleration
* vector builder: more friendly-message repush last on top of an empty builder
* public input: set the name in the settings automatically
* sha2: address the case where sha2 is never called
* keccak: remove trailing printf
* fix: sha2 failing test
* lookup: fix error message on lookup prover
* const-col: simplify the return of GetColAssignmentAt
* lane: address case where sha2 is never called
* mimccodehash: address the case where the codehash is empty
* multi-limbs: fix incorrect range query
* storage-peek: adjust the storage key decomposition to use less limbs
* fixup: remove trailing printf
* fixup: (from accessors) fix invalid getterAt
* more informative message for the projection queries
* log (dummy verifier): add a log when a query fails
* fix(nbZeroes): address the case where the number of inputs is zero
* fix(sha2): address the case where sha2 is not called
* fix(state-summary): address the fact that read|readzero follow a different pattern of account traces
* fix(state-summary): change the ordering in the state-summary
* fix(mimcCodeHash): reverse the direction of the lookup
* chores(inclusion): make the error more comprehensive by listing all the missing rows
* feat(state-manager): adds constraints for ensuring writes happen after reads
* feat(compressor): revert to the old way of hashing
* fix: comment out the checks that are pertaining to assessed issues in the arithmetization
* chores(projection): sends more insightful logs in the projection query
* style(ecdsa): remove nbTxs from assignTxSignature
* fix(vortex): adds a missing column ignoral
* adding new SIS parameters to the test
* feat(vortex): change the default SIS parameters
* chores(fs): skip the fiat-shamir update when running in dummy.Compile
* fix(vortex): bug when handling shadow columns
* fix(gnark-interpolation): better handling of constant terms
* fix(public-input): fix wrong query addressing
* fix(execution): change the structure of the circuit builder
* fixup
* feat(setup): change the ordering of the circuit generation
* fix(execution): allocate explicitly the L2 message hashes
* fixup
* fixup: remove debugging line
* fix(s3): change the line in the makefile to use include/exclude
* fix(circuit): fix incorrect assignment function
* fix(execution): correct the FinalBlockNumber assignment
* fix(execution): adjust the hashing of the L2 message hashes
* fix the assignment of modexp
* rm gitignore
* feat: Add the wizard to the zkevm instantiation
* make the l2BridgeAddress part of the witness
* add L2Message in the extractor
* update the backend so that it works with the new zkevm api
* compute the functional inputs
* update rand
* solves a cyclic dependency issue by moving some code of blob decompression into utils
* arrange the way the func inputs are computed from the crafting
* integrate the changes with the aggregation package
* fix invalid go:generate statement
* fixup: invalid import
* update golangci.yml to relax the linting rules (were breaking the CI)
* rename package ecrecover to ecdsa
* move everything into ecdsa folder
* refactor the api of the antichamber module
* adjust the arithmetization interface
* rename the ecdsa API to EcdsaZkEvm
* adjust the API of ecadd/ecmul
* simplify the API for keccak
* simplify the API for modexp
* unexport the sha2 blocks
* adjust the ecpairing interface
* NewStateManager returns a pointer
* perfect the zk-evm API
* remove "features" from the config
* remove unused parameter in ecadd/ecmul.Assign
* implements the assignment part of the main zkevm
* add missing settings assignment to the keccak_zkevm
* remove outdated comment in keccak_single_provider
* doc: fixing a wrong comment for keccak
* adds sha2 as part of the zkevm
* skip flacky test in e2e_test for pi-interconnection
* fix bug in lookup compiler when no lookup are parts of the protocol
* fix a handful of bugs in plonk in wizard
* skip second flacky test in the pi-interconnection
* fix bug in ecpair
* remove features from the e2e testing config
* reorganize the structure of the keccak module
* rewrite the interface between keccak and the interconnection module
* rewrite the interface between keccak and the ecdsa module
---------
Co-authored-by: AlexandreBelling <alexandrebelling8@gmail.com>