-
Notifications
You must be signed in to change notification settings - Fork 857
bug: some fixed columns are not fixed at all #986
Comments
I think we can update it to be fixed just by move zkevm-circuits/zkevm-circuits/src/evm_circuit.rs Lines 427 to 428 in 9400c62
max_calldata instead of tx.call_data.len() .
I think this is a really nice idea if we have this test in integration test. |
Meeting notes:
|
Maybe related to this issue (@CPerezz pointed me to it): privacy-scaling-explorations/zkevm-specs#359 as all circuits will require a padding strategy to have constant fixed columns regardless of the input. |
This won't be closed until #1062 is merged. |
Note: the remaining circuit is exp circuit. |
Haichen will check with the author of the spec PR privacy-scaling-explorations/zkevm-specs#359 to determine when is the circuit PR is expected to be done in order to coordinate with PSE. We would like to address this issue (non-constant fixed columns) with high priority, so if the expected date for the circuit is too far away we (PSE) can work on on the circuit in parallel while the spec PR is being done (considering that the strategy on how to resolve the Exp Circuit padding has already been discussed and won't change the circuit constraints) |
…scaling-explorations#986) * skip stTimeConsuming * add glob pattern support * Update config.rs * lint --------- Co-authored-by: Zhang Zhuo <[email protected]>
In super circuit, copy_table.q_enable has no padding mechanism so it is not fixed in fact.
So using empty block and real block can result with different vks. Even if proof from real block can be verified with vk from empty block, it is not sound since q_enable is almost disabled in (allmost?) all offsets..
Another smaller problem is that evm circuit has tx_table.tag, which is also a fixed column, but in evm circuit it is not fixed (while in super circuit tx_table.tag is fixed). If we treat evm circuit as a "sub" circuit then it may be acceptable. But again, vk from evm circuit is not universal anyway...
I remember we have encounter this problem (sveral times?) before.. So maybe better to setup a test case to ensure gen_vk(empty_block) == gen_vk(a_real_block)..
The text was updated successfully, but these errors were encountered: