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
|**SELFDESTRUCT**| Not supported | Replaced by **SENDALL**. |
54
+
|**EXTCODEHASH**| Supported | It returns the hash of the contract bytecode from the zkEVM state tree without checking if the account is empty. |
55
+
|**DIFFICULTY**| Supported | It returns "0" instead of a random number as in the EVM. |
56
+
|**BLOCKHASH**| Supported | It is the state root at the end of a processable transaction and is stored on the system smart contract. It returns all previous block hashes instead of just the last 256 blocks. |
57
+
|**NUMBER**| Supported | It returns the number of processable transactions. |
58
+
|**JUMPDEST**| Supported | It is allowed in PUSH bytes to avoid runtime bytecode analysis. |
59
+
|**BASEFEE**| Not supported | The zkEVM implements the Berlin hardfork, but not the London hardfork. |
60
+
61
+
62
+
63
+
#### EIPs support
64
+
65
+
66
+
67
+
| EIPs | Hardfork | Support status | Description |
Copy file name to clipboardExpand all lines: docs/zkEVM/spec/evm-differences.md
+3-8Lines changed: 3 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
This document provides a comprehensive list of differences between the EVM and the Polygon zkEVM. The list includes supported EIPs, opcodes, and additional changes made when building the Polygon zkEVM.
1
+
This document provides brief remarks on the differences between the EVM and the Polygon zkEVM. Lists of supported and unsupported EIPs, opcodes, and additional changes made when building the Polygon zkEVM, can be found [here](../architecture/protocol/etrog-upgrade.md).
2
2
3
3
### EVM-equivalence
4
4
@@ -24,19 +24,14 @@ EVM-equivalence is critical to Polygon zkEVM for several reasons, including the
24
24
25
25
Ultimately, Polygon zkEVM offers developers the same UX as on Ethereum, with significantly improved scalability.
26
26
27
-
28
-
!!!info
29
-
No impact on developer experience
30
-
31
-
Note that the following differences have no impact on the developer experience with the zkEVM as compared to the EVM. Gas optimization techniques, interacting with libraries like Web3.js and Ethers.js, and deploying contracts work seamlessly on the zkEVM without any overhead.
32
-
33
27
The following differences have no impact on the developer's experience on the zkEVM compared to the EVM:
34
28
35
29
- Gas optimization techniques.
36
30
- Interacting with libraries, like Web3.js and Ethers.js.
37
31
- Deploying contracts seamlessly on the zkEVM without any overhead.
38
32
39
33
34
+
<!--
40
35
### Opcodes
41
36
42
37
Below is a list of the changes we have made to opcodes in zkEVM in comparison to the EVM.
@@ -78,4 +73,4 @@ Other precompiled contracts have no effect on the zkEVM state tree and are treat
78
73
79
74
- [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930), which defines the Optional Access Lists transaction type, is not supported.
80
75
81
-
-[`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.
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