20 Commits

Author SHA1 Message Date
Jonathan Wang
7e5254cafa feat: add snark-verifier-sdk (#38)
* feat: add snark-verifier-sdk

* chore: remove config and add example dir

* feat: add "derive_serde" feature to `snark-verifier`

This way `Snark` can be derive `Serialize`d

* fix: remove leftover artifacts

* feat: add back feature `halo2_circuit_params` and fix clippy

* fix: consider  for all targets

---------

Co-authored-by: Jonathan Wang <jonathanpwang@users.noreply.github.com>
Co-authored-by: Han <tinghan0110@gmail.com>
2023-06-01 14:08:41 +08:00
Han
dda742375c Restructure for more kind of verifier (#21)
* feat: restructure to monorepo and expand the project scope to be generic (s)nark verifier

* feat: reorganize mods and traits for further new features

* refactor: simplify trait bounds

* chore: use hyphen case for crate name (`snark_verifier` -> `snark-verifier`)
2022-12-23 15:31:23 +08:00
Han
5e5de91c5d fix: pin all revm dependencies (#18) 2022-11-30 18:18:44 +08:00
Han
5c31088f85 feat: implement ipa pcs and accumulation (#14) 2022-11-09 11:58:00 +08:00
Han
25dbaf524e General refactor for further integration (#13)
* feat: remove dev-dependency `foundry` and vendor necessary part of it

* refactor: simplify traits and remove unused stuff

* refactor: much less clone

* feat: generalized `AccumulatorEncoding` for `EccInstructions`
2022-11-09 02:21:24 +08:00
Han
2cd8b9d1e5 Generalized Halo2Loader (#12)
* feat: generalize `Protocol` for further usage

* feat: add `EccInstruction::{fixed_base_msm,variable_base_msm,sum_with_const}`

* chore: move `rand_chacha` as dev dependency
2022-10-28 22:26:06 +08:00
Han
916b29fe89 Rollback to pse halo2 and halo2wrong for first release (#5)
* feat: move `Accumulator` to `accumulator.rs`

* feat: update due to halo2

* feat: upgrade to use branch `feature/generic-instructions` of `halo2wrong`

* refactor: rollback to `{halo2,halo2_wrong}` without challenge API and cleanup dependencies

* chore: rename statement to instance and auxliary to witness

* chore: use `finalize` instead of `code`

* feat: add `Code::deployment` and `EvmLoader::deployment_code`; add example `evm-verifier-codegen`

* fix: typo

* feat: reduce generated evm verifier size; rename to `evm-verifier` and add another example `evm-verifier-with-accumulator`

* fix: due to `halo2wrong`

* feat: reorganize mods and traits

* fix: allow empty `values` in `sum_*` and move them under `ScalarLoader`

* ci: use `--all-features` for `cargo test`

* fix: use same strategy for aggregation testing

* fix: simplify trait `PlonkVerifier` again

* fix: move system specified transcript under mod `system`

* feat: add `quotient_poly` info in `Protocol`

* feat: implement linearization for circom integration

* feat: re-export loader's dependency for consumer

* refactor: for circom's integration

* tmp: pin `revm` to rev

* fix: remove parentheses

* fix: upgrade for multi-phase halo2

* feat: improve error reporting

* chore: rename crate to snake case

* feat: add `Domain` as an input of `PolynomialCommitmentScheme::read_proof`

* refactor: for further integration

* feat: generalize to suppoer also ipa and add builder fns to `system::halo2::Config`

* feat: add `KzgDecider` for simple evm verifier

* refactor: split `AccumulationScheme` and `AccumulatorEncoding`

* refactor: split `PolynomialCommitmentScheme` and `MultiOpenScheme`

* fix: not need sealed actually

* fix: `chunk_size` should be `LIMBS` when recovering accumulator

* feat: add `Expression::DistributePowers` to avoid stack overflow

* fix: update and pin foundry

* fix: move testing circuits under `system/halo2`

* fix: allow accumulate single accumulator

* feat: remove all patch and make less depending `halo2wrong`
2022-10-24 18:39:01 +08:00
Han
a11b9c1748 fix: upgrade adn pin foundry_evm version and upgrade halo2_curve to 0.2.1 (#4) 2022-08-19 01:18:38 +08:00
han0110
e32fd3faed feat: update for multi-phase ConstraintSystem and implement shuffle and plookup with extra challenges 2022-07-18 01:50:27 +08:00
han0110
7e84b2c671 fix: resolve conflict 2022-07-10 15:05:12 +08:00
han0110
e5820267dc feat: upgrade halo2 and halo2wrong, prepare for optional zk 2022-07-09 15:25:00 +08:00
han0110
0f9adc2611 chore: update dependency 2022-06-28 20:17:11 +08:00
han0110
82b11a40e9 feat: use range chip with tagged table to reduce # of lookup 2022-06-28 13:33:51 +08:00
han0110
98e63e2a86 feat: implement extract_accumulator for all loaders 2022-06-27 14:47:40 +08:00
han0110
f18cab9b34 feat: implement one layer aggregation circuit in halo2 2022-06-26 17:23:32 +08:00
han0110
e4c2a3e745 refactor: cleanup module loader::evm 2022-06-25 09:33:50 +08:00
han0110
abb7baaf4b refactor: reorganize modules 2022-06-21 02:25:37 +08:00
han0110
30612c014c feat: implement EvmLoader and EvmDecider 2022-06-20 22:13:42 +08:00
han0110
d6efd2db7e feat: add mod evm under mod loader with foundry_evm and simplified debugger 2022-06-12 18:02:48 +08:00
han0110
5ad46dc6e9 feat: implement protocol/halo2/verifier/shplonk 2022-06-12 01:24:46 +08:00