| section | technology | ||
|---|---|---|---|
| date | Last Modified | ||
| title | EVM Differences from Ethereum | ||
| lang | en | ||
| permalink | technology/chain/differences | ||
| whatsnext |
|
import Aside from "../../../../../components/Aside.astro"
| Opcode | Scroll Behavior |
|---|---|
BLOCKHASH |
Returns keccak(chain_id || block_number) for the last 256 blocks. |
COINBASE |
Returns the fee vault address (predeployed contract 0x5300000000000000000000000000000000000005). |
DIFFICULTY / PREVRANDAO |
Always return 0. |
BASEFEE |
Disabled because currently we disabled EIP-1559. If the opcode is encountered, the transaction will be reverted. |
SELFDESTRUCT |
Disabled. If the opcode is encountered, the transaction will be reverted. |
| Address | Name | Scroll behavior |
|---|---|---|
0x03 |
RIPEMD-160 |
Currently not supported. |
0x05 |
modexp |
Restrict the input values B, E, M to unsigned integers less than |
0x08 |
ecPairing |
The inputs are still multiple of 6 32-byte values, but limit the number of tuples to at most 4. |
0x09 |
blake2f |
Currently not supported. |
0x0a |
point evaluation |
Currently not supported. |
The remaining precompiled contracts have the same behavior as Ethereum. However, their maximum usage within a block is constrained by a limit tied to the zkEVM circuit capacity.
Our sequencer was developed based on the London fork initially. We disabled some EIPs in the London fork and introduced a few EIPs from the Shanghai fork to improve the compatibility.
Disabled EIPs until the London fork:
- EIP-1559: Fee market change and EIP-1559 transaction type
- EIP-2930: Optional access lists
- EIP-3198:
BASEFEEopcode
EIPs imported from the Shanghai fork:
Opcodes from the Cancun upgrade are not yet available on Scroll, including `MCOPY`, `TSTORE`, `TLOAD`, `BLOBHASH` and `BLOBBASEFEE`. Additionally, [EIP-4788](https://eips.ethereum.org/EIPS/eip-4788) for accessing the Beacon Chain block root is not supported.