ZKParallel
  • What is ZKParallel?
  • Background
    • Introduction
    • The World State in Ethereum
    • Ethereum Client Performance
    • zkEVM
    • Attempts at Other Projects
  • Technical Details
    • Overview of EVM transaction processing
    • Asymmetric Node Structure
    • Pioneer Node
    • Guard Node
    • ZK Acceleration
Powered by GitBook
On this page
  1. Background

Ethereum Client Performance

The ETH Client has a lot of work to do: a database storing ETH's ledger that grows over time and stores account details is a must, including balances and smart contracts. Also the client has to run a virtual machine (EVM) to execute smart contracts on the blockchain directly. Finally, the client has a complex network protocol to keep the peer-to-peer network up and running and apply consensus algorithms, ensuring that the ledger is secure and consistent.

We conducted tests on the Geth client and found that 99% of the time is consumed by the StateDB and EVM execution when processing blocks.

Currently, Geth performs parallel pre-execution of transactions while sequentially processing the transactions within a block. However, this parallelization does not modify the world state; it only identifies which account information needs to be read by these transactions and preloads it into memory to save time.

However, the actual execution of the EVM still needs to be done sequentially because each transaction modifies the world state. Additionally, all clients perform the same work, so they all need to use high-performance CPUs to complete the processing. If we can allow a portion, or even the majority, of the clients to truly parallelize transaction processing, these clients can be equipped with multi-core low-frequency CPUs to achieve the same processing capacity.

PreviousThe World State in EthereumNextzkEVM

Last updated 1 year ago