Han
Han
This PR aims to support multi-phase circuit (closes #527). The main changes include: 1. [`commit@c87ba7a`](https://github.com/zcash/halo2/pull/593/commits/c87ba7a4a403d8c6f201134fece8f0af5375f8d4) - Add an enum `Phase`, which has 3 variant `First`, `Second` and `Third` (3 phases...
It would be nice to have an API like `meta.challenge()` to allocate random challenge for custom gates, which guarantees the allocated challenge is squeezed after all previous allocated advice columns...
Currently Bytecode circuit is implemented with access to previous row, and with `is_final` indicator as main constraint flag, which seems not that straightforward to think about all kinds of possible...
Currently EIP-1559 is not included in our testnet (see all the excluded EIPs [here](https://github.com/appliedzkp/zkevm-chain/tree/master/docs#layer-2---go-ethereum)), but it's implemented in `BeginTx` and `EndTx` earlier If it works by constraining `BASEFEE` to `0`...
In State circuit we need to verify kinds of access records are consistent between different writes. The following should be described as part of [`specs/circuits/state.md`](TBD): - What's the data contained...
In EVM there are 3 different sources for executed bytecode: 1. When contract interaction, it's from **contract's bytecode** 2. When contract creation in root call, it's from **transaction's calldata** 3....
In Tx circuit, we need to verify each transaction has valid signature. The following should be described as part of [`specs/circuits/tx.md`](TBD): - How it RLP encodes transaction and verify hash...
In regard to https://github.com/appliedzkp/zkevm-specs/pull/168#discussion_r843704611, the methods `step_state_transition_*` should only take care of `StepState`'s stuff (otherwise can't tell what it also include e.g. responsible opcode check), and `responsible_opcode_lookup` in the future...
This PR aims to extend `halo2` to allow developers to enable/disable zero-knowledge with const generic `const ZK: bool`. ## Protocol adjustment for non-ZK Notations are following the ones used in...
In order to make debugging easier, it's better for `MockerProver` to also do multi-phase synthesis just like real prover, to avoid some cases that succeed with `MockProver` but fail with...