You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/zkEVM/spec/evm-differences.md
-44Lines changed: 0 additions & 44 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,47 +30,3 @@ The following differences have no impact on the developer's experience on the zk
30
30
- Interacting with libraries, like Web3.js and Ethers.js.
31
31
- Deploying contracts seamlessly on the zkEVM without any overhead.
32
32
33
-
34
-
<!--
35
-
### Opcodes
36
-
37
-
Below is a list of the changes we have made to opcodes in zkEVM in comparison to the EVM.
38
-
39
-
- **SELFDESTRUCT** → removed and replaced by **SENDALL**.
40
-
41
-
- `EXTCODEHASH` returns the hash of the contract bytecode from the zkEVM state tree without checking if the account is empty.
42
-
43
-
- **DIFFICULTY** → returns "0" instead of a random number as in the EVM.
44
-
45
-
- **BLOCKHASH** → returns all previous block hashes instead of just the last 256 blocks.
46
-
47
-
> **BLOCKHASH** is the state root at the end of a processable transaction and is stored on the system smart contract.
48
-
49
-
- **NUMBER** → returns the number of processable transactions.
50
-
51
-
52
-
### Precompiled contracts
53
-
54
-
Among Ethereum's precompiled contracts, the zkEVM currrently supports: [`ecRecover`](https://www.evm.codes/precompiled?fork=shanghai) and [`identity`](https://www.evm.codes/precompiled?fork=shanghai).
55
-
56
-
Other precompiled contracts have no effect on the zkEVM state tree and are treated as reverts, returning all gas to the previous context and setting the `success` flag to "0".
57
-
58
-
59
-
## Additions
60
-
61
-
**zk-counters** → batch resources are available, linked to state-machine components, as a supplementary addition to gas computation.
62
-
63
-
64
-
## Other minor differences
65
-
66
-
- zkEVM doesn't clean storage when a contract is deployed at an address due to the zkEVM state tree specification.
67
-
68
-
- `JUMPDEST` is allowed in push bytes to avoid runtime bytecode analysis.
69
-
70
-
- The zkEVM implements [EIP-3541](https://eips.ethereum.org/EIPS/eip-3541) from the [London hardfork](https://ethereum.org/en/history/#london).
71
-
72
-
- [EIP-2718](https://eips.ethereum.org/EIPS/eip-2718) which defines the Typed Transaction Envelope, is not supported
73
-
74
-
- [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930), which defines the Optional Access Lists transaction type, is not supported.
75
-
76
-
- [`BASEFEE`](https://ethereum-org-fork.netlify.app/en/developers/docs/gas#base-fee) opcode is not supported. The zkEVM implements the Berlin hardfork, but not the London hardfork. -->
0 commit comments