Commit Graph

27 Commits

Author SHA1 Message Date
AlexandreBelling
05d14d8df7 Prover/beta v2 release (#1043)
* bump to beta v2.1-rc16

* add a prover config file for devnet

* update srs url

* bump constraints to cbc6bcb and go-corset to v1.1.1

* use go-corset v1.1.1

* use go-corset v1.1.3

* feat(state-manager): insertion and ephemeral filters .

* chores(versions): align the constraints version

* chores(version): align the corset version

* chores(version): update the zkevm.bin

* chores(version): update the zkevm.bin

* fix(limits): removes discrepancy between the sepolia and the mainnet config file

* chores(release): update the verifier contracts

* testing(contract): updates the post-release testdata

* chores(contracts): update the contracts

* chores(constraints): updates constraints and corset to use the right value

* chores(mod): updates the corset dependency and zkevm.bin

* testing(contract): updates the testdata

* chores(config): update the sample config to use the right version

---------

Co-authored-by: gusiri <dreamerty@postech.ac.kr>
Co-authored-by: Bogdan Ursu <bogdanursuoffice@gmail.com>
2025-05-26 15:03:43 +02:00
Ivo Kubjas
42546e78b7 Prover: use backported gnark-crypto neg-scalar glv fix (#1015) 2025-05-15 19:38:19 +02:00
Leo Jeong
a46b0ef5a3 Prover: beta v2 (#796)
* feat(state): connect the Hub and the StateSummary

* Merged main into prover/beta-v2

* constraints: bump to beta-v2.0-rc1

* use beta-v2.0-rc1 zkevm.bin generated by go-corset

* bump go-corset to v0.9.1

* fix go-corset compile errors

* bump constraints to beta v2.0-rc1.1

* go-corset v0.9.1 with metadata

* fix ReadZkevmBin error to align with go-corset v0.9.1

* add optimization level to CheckerZkEvm

* ReadZkevmBinadd detailed logs to

* feat(state-manager):adding arithmetization column names for ACP and SCP

* bump go-corset to v0.9.2

* fix go-corset v0.9.2 compatibility

* constraints: bump to beta-v2.1-rc1

* use zkevm.bin without 2B block gas limit for testing

* fix(state manager):batch numbers on prover side + updated 20-byte address calculation

* feat(go-corset): go-corset as submodule (#743)

* remove corset submodule

* add go-corset submodule

* use go-corst in Makefile

* use go-corset v0.9.2

* update go-corset submodule url

* fix(go-corset): typo in submodule url

* fix(state-manager): fixed Shomei issue through skippable traces + missing HUB processed address constraints + cosmetic refactoring

* fix(state-manager):fixed wrong begin/end markers for account segments due to skipped Shomei traces

* fix(state-manager): added an intermediary keccakcodehash column in state summary for the HUB connection + its constraints

* (bump prover/beta-v2 branch): constraints beta-v2.1-rc4 and go-corset v1.0.1 (#766)

- bump constraints from beta-v2.1-rc1 to rc4
- bump go-corset from v0.9.2 to v1.0.1
- this commit is to bump branch prover/beta-v2 branch to the latest verion of constraints and go-corsete without rebasing onto main

* fix(state-manager): account insertion's storage segments are excluded in the lookup from HUB to state summary.

* fix(state-manager): added missing constraints for the insertion edge case.

* (bump beta-v2 branch): constraints beta-v2.1-rc6 and go-corset v1.0.2

* fix(state-manager): address edge case for SSLOAD out of gas exception behavior that results in no traces on Shomei side, but rows on the HUB side.

* remove polluting changes

* fix(state-manager): address edge case for SSLOAD out of gas exception behavior that results in no traces on Shomei side, but rows on the HUB side, proper commit.

* fix(state-manager): address bug in the constancy constraint for the INSERT filter .

* minor(alignment): better error message when overflowing a precompile limit

* remove old v3 testdata to before merging origin/main

* bump: constraints beta-v2.1-rc10 and go-corset v1.0.3

* chore: remove unnecessary code

* revert pnpm-lock.yaml to main branch version

* update go.sum

* revert state-recovery/appcore/logic/build.gradle to main version

Remove the files to revert back to the main version. Its directory structure has changed.

Signed-off-by: Leo Jeong <dreamerty@postech.ac.kr>

* Revert "revert state-recovery/appcore/logic/build.gradle to main version"

This reverts commit 97f6c92230e511a66a29fd597bf059c9c003adfe.

* revert back to the mainnet build.gradle

* fixup(test): fix a test in the state-summary

* minor(csv): comment out the csv tracing

---------

Signed-off-by: Leo Jeong <dreamerty@postech.ac.kr>
Co-authored-by: AlexandreBelling <alexandrebelling8@gmail.com>
Co-authored-by: Bogdan Ursu <bogdanursuoffice@gmail.com>
2025-03-23 23:13:49 +01:00
Lakshminarayanan Nandakumar
8ddd4c1d3d Prover/wizard performance monitor (#768)
* wizard runtime perf monitor

* ring-sis before revert

* sanity check successful

* rm test config file
2025-03-12 08:43:31 +00:00
Leo Jeong
18b2cfcf59 Prover: constraints beta v2.1-rc4 (#764)
* use go-corset v1.0.1

* constraints: beta v2.1-rc4
2025-03-08 05:32:41 +09:00
Leo Jeong
03ef38270d Prover: constraints beta-v2.1-rc3 and go-corset v1.0.1 (#761)
* bump go-corset to v1.0.1

* constraints: beta-v2.1-rc3
2025-03-07 17:02:32 +09:00
David Pearce
bf71b6b5ca Prover: compatibility check between zkevmbin and lt trace file (#745)
* update `go-corset` to `v0.9.4`

* feat: add binfile / tracefile compatibility check

This adds a compatibility check between the zkevm.bin file and the lt
trace file.  The compatibility check extracts the constraints commit
used to generate the respective asset, and ensures a match.  If not, the
code panics with an error.  Likewise, if the metadata is missing then
code will panic with an error.

* support "relaxed mode"

This intention here is to enable the strong compatibility check to be
disabled.  It seems sensible to have an option to turn it off, and a
flag is added to the `bin/checker` to disable it.

* remove file-based constraints version check

* update to later version of `go-corset`

In order to allow embedded line count information (as requested
separately from this PR), go-corset now uses a structured form of
metadata.  This simply updates this PR to use the revised API.

* rename "RelaxedMode" => "IgnoreCompabitilityCheck"

This simply renames the "relaxed mode" to something more direct, namely
"IgnoreCompatiblityCheck" which does what it says on the tin.

* update `go-corset` to v1.0.0

* add IgnoreCompatibilityCheck option to prover config

* remove unnecessary variable

* Update compatibility check to fail early on incompatibility

* add log when IgnoreCompatibilityCheck is enabled

---------

Co-authored-by: gusiri <dreamerty@postech.ac.kr>
2025-03-07 08:45:54 +09:00
David Pearce
d716763ac0 feat: support go corset optimisation and metadata (#713)
This adds the option to run the checker in "bench" mode, and also adds support for passing a go-corset optimisation level via the bin/checker.  The purpose of this is to enable testing at different optimisation levels to see what effect this has.  Finally, it exposes the metadata stored in the zkevm.bin file, such that it can be used for cross-checking purposes.  For example, the metadata includes the git commit of the enclosing repository when it was built.

---------

Co-authored-by: AlexandreBelling <alexandrebelling8@gmail.com>
2025-02-26 12:49:41 +13:00
Gautam Botrel
43141fc13d refactor, perf: prover/crypto/sis improvements (#554)
* fix: revert gnark go mod change

* refactor: checkpoint mvp working

* feat: added case for smartvector.Constant rows block

* refactor: checkpoint

* refactor: checkpoint

* refactor: checkpoint

* style: code cleaning

* style: more comments

* refactor: use gnark-crypto sis and refactor ringsis.TransversalHash

* test: restore bench size

* perf: better parallelization

* chore: update gnark crypto

* fix: restored gnark dep as in main

* test: restored separate tests in transversal hash test

* build: update to gnark crypto master with latest sis

* build: fix linter
2025-02-24 15:10:50 +00:00
Leo Jeong
2c8a1633ed Prover: Beta v1.3 (#703)
* update to latest `go-corset`

* bump to beta-v1.3-rc3

---------

Co-authored-by: DavePearce <dave01001110@gmail.com>
2025-02-18 23:20:36 +09:00
AlexandreBelling
7325f38c88 Prover: beta v1.2 integration changes (#692)
* 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>
2025-02-17 12:46:07 +01:00
AlexandreBelling
574e0efe32 Prover: prerelease fixes (#503)
* feat(setup): run setup in deterministic order
* fix(pubinp): fix the public input names
* fix(gate-wire): bumps gnark's version to incorporate the fix
* feat(dummy): the dummy prover does not change the columns status anymore
* tmp(ecpair): deactivate the ecpair module
2025-01-07 19:29:47 +01:00
AlexandreBelling
3b875fd8d6 Prover/full recursion (#350)
* (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
2025-01-06 09:52:01 +01:00
AlexandreBelling
0bcfa5e26a Revert "Revert: Prover: bump to arithmetization beta-v0.8.0-rc6 (#362) (#371)" (#418)
This reverts commit 8be665e11c.
2024-12-10 16:09:06 +01:00
AlexandreBelling
8be665e11c Revert: Prover: bump to arithmetization beta-v0.8.0-rc6 (#362) (#371)
* Revert "Prover: bump to arithmetization beta-v0.8.0-rc6 (#362)"

This reverts commit 31389b1304.
2024-12-02 14:35:53 +01:00
AlexandreBelling
31389b1304 Prover: bump to arithmetization beta-v0.8.0-rc6 (#362)
* bump to arithmetization beta-v0.8.0-rc6
* fix: use the appropriate go-corset version
2024-11-29 18:56:58 +01:00
AlexandreBelling
0b797594bd Prover: apply the AVX optimizations for math/vector (#185)
* feat: apply the AVX optimizations
* style: remove redundant boundary check
2024-11-19 09:30:42 +01:00
Leo Jeong
37a2fb04e6 Prover: bump go-corset to the latest version (#160)
* bump go-corset to the latest commit

* disable typecheck

* fix error code 77 msg format

* fix missing String method error

* enable typecheck

* bump go-corset version

* gofmt and fix comments

* fix golangci-lint version to v1.61.0

---------

Co-authored-by: AlexandreBelling <alexandrebelling8@gmail.com>
2024-10-12 01:09:19 +09:00
Leo Jeong
ea17789655 chore: bump go-corset to latest version and tidy dependencies (#91)
* bump go-corset to latest version and tidy dependencies
* bump golang version from 1.22.2-alpine to 1.22.7-alpine
* fix maxNumBlock in packing test

---------

Co-authored-by: AlexandreBelling <alexandrebelling8@gmail.com>
2024-09-25 15:00:30 +08:00
AlexandreBelling
f02851ce45 feat(vecops): adds vectorized operations (#3923) 2024-09-10 20:59:29 +02:00
AlexandreBelling
3f8c3751c1 Prover/corset integration (#3900)
* feat(corset): implements and test the constraint declaration
* feat: integrate all the changes in the wizard
* tmp(mod): points to the go-corset feature branch
* feat(corset) register interleaved columns
* chores(mod): uses latest go corset to include the optimizations
* disable the problematic linters
* ignore the arithmetization folder in the linting process
* adds zkevm.bin in the repo
2024-09-06 10:57:28 +02:00
Arya Tabaie
eb9564edae Fix/simplify pi integration (#3837)
* 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
2024-09-05 08:36:54 -05:00
Arya Tabaie
356fb9a70f Prover: bump go-ethereum version (#3855)
Co-authored-by: Arya Tabaie <15056835+Tabaie@users.noreply.github.com>
2024-08-30 04:55:14 +02:00
Arya Tabaie
ecead0d8ec fix gkrmimc <> test engine: bump gnark version (#3844)
* bump gnark version; no test_vector_utils

* chore: run go mod tidy

---------

Co-authored-by: Arya Tabaie <15056835+Tabaie@users.noreply.github.com>
Co-authored-by: Ivo Kubjas <ivo.kubjas@consensys.net>
2024-08-26 09:43:40 +02:00
AlexandreBelling
cffb0318b6 Prover: GKR without option (#3831)
* feat(gkrmimr): bump gnark to a version that does not need to override the hints

* chores(gnark): point to the master branch for gnark's dependency
2024-08-21 11:02:47 -05:00
Ivo Kubjas
84b6f8921c feat: add ECPAIR precompile integration (#3759)
* feat: add ECPAIR precompile integration

* chore: go.mod update

* chore: remove debug print

* fix: arithmetization reverse order G2 parts
2024-08-02 21:48:27 +02:00
Julien Marchand
a001342170 chore: Initial commit
Co-authored-by: Franklin Delehelle <franklin.delehelle@odena.eu>
Co-authored-by: Alexandre Belling <alexandrebelling8@gmail.com>
Co-authored-by: Pedro Novais <jpvnovais@gmail.com>
Co-authored-by: Roman Vaseev <4833306+Filter94@users.noreply.github.com>
Co-authored-by: Bradley Bown <bradbown@googlemail.com>
Co-authored-by: Victorien Gauch <85494462+VGau@users.noreply.github.com>
Co-authored-by: Nikolai Golub <nikolai.golub@consensys.net>
Co-authored-by: The Dark Jester <thedarkjester@users.noreply.github.com>
Co-authored-by: jonesho <81145364+jonesho@users.noreply.github.com>
Co-authored-by: Gaurav Ahuja <gauravahuja9@gmail.com>
Co-authored-by: Azam Soleimanian <49027816+Soleimani193@users.noreply.github.com>
Co-authored-by: Andrei A <andrei.alexandru@consensys.net>
Co-authored-by: Arijit Dutta <37040536+arijitdutta67@users.noreply.github.com>
Co-authored-by: Gautam Botrel <gautam.botrel@gmail.com>
Co-authored-by: Ivo Kubjas <ivo.kubjas@consensys.net>
Co-authored-by: gusiri <dreamerty@postech.ac.kr>
Co-authored-by: FlorianHuc <florian.huc@gmail.com>
Co-authored-by: Arya Tabaie <arya.pourtabatabaie@gmail.com>
Co-authored-by: Julink <julien.fontanel@consensys.net>
Co-authored-by: Bogdan Ursu <bogdanursuoffice@gmail.com>
Co-authored-by: Jakub Trąd <jakubtrad@gmail.com>
Co-authored-by: Alessandro Sforzin <alessandro.sforzin@consensys.net>
Co-authored-by: Olivier Bégassat <olivier.begassat.cours@gmail.com>
Co-authored-by: Steve Huang <97596526+stevehuangc7s@users.noreply.github.com>
Co-authored-by: bkolad <blazejkolad@gmail.com>
Co-authored-by: fadyabuhatoum1 <139905934+fadyabuhatoum1@users.noreply.github.com>
Co-authored-by: Blas Rodriguez Irizar <rodrigblas@gmail.com>
Co-authored-by: Eduardo Andrade <eduardofandrade@gmail.com>
Co-authored-by: Ivo Kubjas <tsimmm@gmail.com>
Co-authored-by: Ludcour <ludovic.courcelas@consensys.net>
Co-authored-by: m4sterbunny <harrie.bickle@consensys.net>
Co-authored-by: Alex Panayi <145478258+alexandrospanayi@users.noreply.github.com>
Co-authored-by: Diana Borbe - ConsenSys <diana.borbe@consensys.net>
Co-authored-by: ThomasPiellard <thomas.piellard@gmail.com>
2024-07-31 18:17:20 +02:00