Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update halo2-lib and add SDK (privacy-scaling-explorations#3)
* chore: add display feature to Cargo.toml * fix: change test data directory to ./data and give error message * feat: add succinct_verify_or_dummy to allow flag to turn off verification in aggregation snark * Rollback to pse halo2 and halo2wrong for first release (privacy-scaling-explorations#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` * chore: update dependencies with latest halo2_proofs * add `serialize` feature to turn on/off vkey/pkey write * feat: change `name` to function instead of const in `TargetCircuit` * fix: `load_verify_circuit_degree` now takes in environmental variable `VERIFY_CONFIG` * Generalized `Halo2Loader` (privacy-scaling-explorations#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 * feat: implement `IntegerInstructions` and `EccInstructions` traits for `halo2-lib` * feat: implement `EncodeNative` and working example `evm-verifier-with-accumulator` using `halo2-lib` * Does not yet use custom `fixed_base_msm` * feat: add example `recursion` * chore: update for compatibility with halo2-lib * poseidon: switch to rate = 2, `t = 3` for faster proving time * update: remove unnecessary trait `where` clause * feat: add example `recursion` * General refactor for further integration (privacy-scaling-explorations#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` * feat: implement ipa pcs and accumulation (privacy-scaling-explorations#14) * feat: add example `recursion` * wip: update to halo2-lib v0.2.0 * wip: recursion example currently works if circuit does not use simple selectors * Simple selector compression is not correctly handled by `CsProxy` at the moment * fix: got recursion example working with halo2-lib * where halo2-lib uses simple selectors * only works if all selector columns are in active use and can't be optimized away * tricks `CsProxy` by turning all selectors on in row `0` * feat: add `sdk` module for snark aggregation toolkit * chore: move `aggregation` under `halo2` inside `sdk` * Update `EvmLoader` to generate Yul code instead of bytecode (privacy-scaling-explorations#15) * Update `EvmLoader` to generate Yul instead of bytecode * feat: simplify * feat: Add missing end_gas_metering impl Co-authored-by: Han <[email protected]> Co-authored-by: Han <[email protected]> * feat: add `evm` module to `sdk` with evm proof and verifier functions * add bench for zkevm EVM circuit, currently uses my local repo because official repo does not compile... use scroll-dev-1115 circuit implementation where power of randomness is generated internally and not from public inputs (far too many public inputs for aggregation) * chore: update Cargo.toml * reorg: rename repo to snark-verifier * split into two crates: snark-verifier and snark-verifier-sdk * previous module sdk moved to snark-verifier-sdk Co-authored-by: Han <[email protected]> Co-authored-by: DoHoon Kim <[email protected]>
- Loading branch information