privacy-scaling-explorations / zkevm-circuits

https://privacy-scaling-explorations.github.io/zkevm-circuits/
Other
817 stars 857 forks source link

Towards Shanghai Upgrade #1362

Open lispc opened 1 year ago

lispc commented 1 year ago

Describe the feature you would like

I list the steps to do:

  1. change golang tracer to latest geth #1363
  2. change some opcodes implementation: initcode gas change & prevrandao
  3. add new opcodes like push0 https://github.com/privacy-scaling-explorations/zkevm-circuits/pull/1361
  4. change submodule revision inside testool

anything missing?

It may be an "atomic" change, we can only choose fork like london vs shanghai, it is difficult & meaningless to make our circuit behavior as london + push0.

Additional context

No response

ChihChengLiang commented 1 year ago

For EIPs, I list them in a separate session so that we can track decisions of what EIP to include in zkevm in the future.

Here's the list of EIPs in Shanghai upgrade:

Paris upgrade

London upgrade

lispc commented 1 year ago

another remainder is that we need to support prevrandao opcode (renamed from DIFFICULTY). I make this change https://github.com/scroll-tech/zkevm-circuits/blob/1ea9b5970ff873191de29e625687765f427326dd/bus-mapping/src/circuit_input_builder/block.rs#L119-L127 to be compatible with latest node/libs.

ChihChengLiang commented 1 year ago

We have to update the version of Ethereum tests. @adria0 will file an issue for it.