Differences between Quai and Ethereum
It is easiest to think of the Zone layer as a collection of individual Ethereum-like chains running in parallel. Each of these chains is a unique pseudo-EVM environment, meaning it retains much of the structure and functionality of the traditional EVM with some changes/additions.
The main differences between Quai’s EVM and the traditional EVM are:
Address Sharding: each Zone chain contains a unique set of addresses based on the address prefix. The prefix denotes which shard the address belongs to. Ex. shard 1 starts with 0x00, shard 2 starts with 0x01, etc.
API Methods and Namespace: Quai’s API closely resembles that of Ethereum, but uses the quai_ namespace rather than the eth_ namespace. The API also contains many of, but not all of, the same methods as a traditional EVM API.
Interoperability Opcodes: Quai’s EVM handles traditional Solidity smart contracts, but also SolidityX smart contracts – which adds support for opcodes added to handle cross-chain interactions between any of the Zone chains.
Available Tooling: Because Quai has slight differences in the EVM, only a subset of existing Ethereum tooling has been adapted to handle the altered development environment.
Transaction Types: Quai utilizes different transaction types than the typical EVM to handle transactions sent between Zone chains.