Cointime

Download App
iOS & Android

64.85% of Ethereum Transactions Can Be Parallelized

Cointime Official

From Sei blog

Special thanks to YannisGurnoorPavelRenLefteris, and Evan for feedback and discussions.

Introduction

In this post, we'll clarify the concepts of sequential, concurrent, and parallel execution in blockchains, highlight the differences between dependent and independent transactions—both abstractly and specifically in Ethereum's EVM—and then briefly examine how other chains approach parallelization.

We'll analyze the average number of independent transactions per block to measure the potential performance boost from parallel execution.

We'll conclude by examining the Sei protocol's optimistic concurrency control (OCC) strategy, demonstrating how it can scale the EVM by providing significant throughput gains while preserving a straightforward and simple developer experience.

Dependent Transactions

Two or more transactions are dependent if they touch the same state:

  • Interact with the same addresses
  • Modify the same storage slots in a contract
  • Have read/write conflicts (one transaction reads what another writes)

For a blockchain to be deterministic, transactions must be executed sequentially. The order of execution for these transactions impacts the resulting state, and one must wait for the other. 

For example, consider a scenario where your balance is 0:

  • tx1: Bob sends you 1 ETH
  • tx2: You send me 1 ETH

These transactions must be executed sequentially. If they run in parallel and tx2 executes first, it won't be valid; your balance will still be 0 until tx1 completes.

The same is true of borrowing: we must process the collateral lockup before releasing the borrowed funds.

Sequential execution of dependent transactions on a single CPU core

The order in which dependent transactions are executed matters. Even with multiple CPU cores, we cannot utilize them to improve throughput.

However, not all transactions have such dependencies. When transactions don't interact with the same state, we can explore more efficient processing strategies. This brings us to the concept of independent transactions.

Independent Transactions

Two or more transactions are independent if they do not modify (write to) the same state and the result of one transaction does not affect the other.

Independent transactions can be executed concurrently or in parallel because their execution paths do not block or rely on each other.

For example:

  • tx1: Bob sends Alice 1 ETH
  • tx2: I send you 1 ETH

Neither transaction needs to wait for the other to finish, and the order of execution doesn't matter.

To be specific, concurrency does not necessarily mean parallelization. With only one CPU core, independent transactions can make progress over the same time period, but the CPU still processes one transaction (or part of it) at a time and must change context when switching between transactions.

You might ask why we should bother with concurrency at all.

Transactions that are I/O-heavy—meaning they are related to hard drive or network operations—can cause delays. Concurrency ensures that the CPU doesn't remain idle while waiting for other transactions to process.

In other words, while the CPU waits for a packet to travel over a slow internet cable, it can switch context to another transaction instead of doing nothing.

Concurrent transaction execution on a single CPU core with context switching

However, if most transactions are CPU-bound—meaning the main bottleneck is the CPU—then concurrent processing can actually be slower than sequential processing due to context switching overhead.

Old computers with only one CPU core would run concurrently by switching context between various tasks: controlling the mouse, writing to disk, reading from memory, and displaying graphics. This created the illusion of parallel execution, but it was actually concurrent execution, with different tasks making progress during the same time period.

Context switching happened so quickly that it usually went unnoticed—until you encountered a blue screen of death.

Parallel execution is a subset of concurrent execution and can occur only when two or more CPU cores are available. Most modern consumer-grade processors come with multiple cores.

Parallel transaction execution on multiple CPU cores

The EVM is currently sequential: it runs all transactions one after the other, even if some are independent.

Before examining the methodology and statistics, let's review different implementations of concurrency.

Approaches of Implementing Parallel Execution

State Access Parallelization

State Access Parallelization is an approach for parallel transaction execution that aims to identify and leverage independent transactions before processing them. The key characteristic of this method is its ability to determine transaction dependencies upfront by analyzing state access patterns. Solana (explicitly) and Sui (implicitly) are among the blockchains that employ this technique. 

Key Features:

  • Transactions are analyzed for their state access requirements before execution
  • The scheduler identifies which transactions can be run in parallel by mapping out potential conflicts
  • Focuses on granular dependency tracking at the state access level

Pros:

  • Enables creation of localized fee markets
  • Provides a clear scheduling mechanism for transaction execution
  • Allows for more predictable parallel processing

Cons:

  • Increases complexity for developers
  • Requires sophisticated dependency tracking mechanisms
  • May introduce additional overhead in transaction preprocessing

Localized fee markets

To prevent one contract from clogging the entire network (as observed with CryptoKitties in 2017, which peaked at 11% of all network transactions), Solana uses localized fee markets. This is achieved through per-block and per-account compute unit (CU) limits:

Per-block limit: ~48M CUs, which dynamically adjusts based on network conditions

Per-account, per-block limit: ~12M CUs, a soft cap that can be exceeded by paying higher fees

Compute unit cost is defined per program, based on transaction complexity. Simple transfers have low CU cost, while complex DeFi trades cost more.

If a contract hits its soft CU cap from a transaction hotspot, further transactions get throttled unless they pay extra fees to exceed the cap. This creates localized congestion, while unrelated transactions can still fit in unused block space without fee spikes.

Sui's approach to this issue is through Shared Object Congestion Control, a mechanism that limits the rate of transactions to a single shared object, preventing network overload from hotspots that take too long to execute.

By controlling the number of transactions touching a congested or hot shared object within each checkpoint, the system ensures consistent processing times, preventing delays. This mechanism also promotes transaction fairness by ensuring that transactions with higher gas fees are prioritized for checkpoint inclusion. Users expect more costly transactions to process more quickly.

Optimistic Concurrency Control

Optimistic Concurrency Control (OCC) is a parallel execution strategy that allows transactions to proceed under the assumption that conflicts are unlikely to occur frequently. Unlike strictly sequential processing, OCC permits transactions to run in parallel and then validates their compatibility after execution. Blockchains that employ this technique include Sei protocol, Aptos, and Monad.

The process works as follows: Transactions are initially executed in parallel. After execution, the system checks for any conflicts or state inconsistencies. If conflicts are detected, some transactions are rolled back and re-executed sequentially. Transactions without conflicts are committed to the blockchain state.

Characteristics:

  • Assumes most transactions are independent
  • Relies on post-execution validation
  • Allows for potentially significant performance improvements

Pros:

  • Can significantly boost transaction throughput as there is no upfront overhead to track dependencies
  • Works well when most transactions are independent
  • Reduces initial waiting time for transaction processing

Cons:

  • Requires re-running transactions in case of conflicts, which leads to poor user experience. Sei protocol puts a limit on the total number of retries per transaction to mitigate this risk.
  • Potential performance overhead from validation and potential re-execution
  • Slightly slower due to the need to check and potentially rollback transactions (in the case of an ecosystem of highly dependent transactions)

Sharding-Based Parallelism

Sharding involves partitioning the blockchain's state and transaction set into multiple independent "shards" or "sub-chains." Each shard can process its own subset of transactions independently and in parallel with others.

Sharding divides the blockchain into multiple sub-chains (shards), each processing its own transactions independently

Characteristics:

  • Divides network into smaller groups (shards)
  • Each shard processes a subset of transactions
  • Allows for parallel processing

Pros:

  • Increased scalability
  • Lower node hardware requirements
  • Potential for better decentralization
  • Allows for shard-specific optimizations

Cons:

  • Increased system complexity
  • Cross-shard transaction overhead
  • Data availability challenges
  • Possible reduction in network effects
  • Difficult to implement on existing networks
  • Risk of shard imbalance

Sharding is a promising but complex scaling solution. It's being explored by Ethereum 2.0 (not yet rolled out) but faces significant implementation challenges. NEAR has implemented Nightshade, its sharding mechanism, which differs from Ethereum's proposed implementation in two ways:

  • It provides asynchronous (cross-shard) composability
  • It shards within each block, resulting in 1-2 second finality for cross-shard transactions

Methodology to identify dependent transactions on Ethereum Virtual Machine

Software engineering is all about trade-offs. The higher the number of independent transactions per block, the greater the potential performance boost from parallel execution. However, if most transactions are dependent, parallel execution might be slower than sequential execution.

The key question is how many transactions per block are independent on average, so we can calculate the potential performance impact of parallel execution.

There are two types of addresses/accounts:

  • EOAs (Externally Owned Accounts), parts that can be modified:Balance (modified by value transfers and gas payments to validators)Nonce (incremented with each transaction)
  • Balance (modified by value transfers and gas payments to validators)
  • Nonce (incremented with each transaction)
  • Contracts:BalanceNonce (incremented when contract creates other contracts)Internal storage slots (organized as 256-bit key-value pairs)Mappings between addresses and internal storage slotsInternal variables used for calculationsCode (immutable after deployment)
  • Balance
  • Nonce (incremented when contract creates other contracts)
  • Internal storage slots (organized as 256-bit key-value pairs)Mappings between addresses and internal storage slotsInternal variables used for calculations
  • Mappings between addresses and internal storage slots
  • Internal variables used for calculations
  • Code (immutable after deployment)

Transactions are always initiated by EOAs. This increments the EOA's nonce and reduces its balance due to gas costs (paid to validators), so the EOA's state is always modified. EOAs can:

  • Send ETH to another EOA (value transfer)Sender's EOA balance decreases, nonce increasesRecipient's EOA balance increases
  • Sender's EOA balance decreases, nonce increases
  • Recipient's EOA balance increases
  • Call a contract (contract call)Sender's EOA balance decreases due to gas, nonce increasesContract code is executed which can:Read from its own storage or another contract's storageWrite/modify its own storage or another contract's stateSend ETH to EOAs or other contracts
  • Sender's EOA balance decreases due to gas, nonce increases
  • Contract code is executed which can:Read from its own storage or another contract's storageWrite/modify its own storage or another contract's stateSend ETH to EOAs or other contracts
  • Read from its own storage or another contract's storage
  • Write/modify its own storage or another contract's state
  • Send ETH to EOAs or other contracts
  • Create a new contractSender's EOA balance decreases, nonce increasesNew contract is deployed with its code and initial storage
  • Sender's EOA balance decreases, nonce increases
  • New contract is deployed with its code and initial storage

Contracts cannot initiate transactions; they can only respond when their functions are invoked by an EOA or another contract. When invoked, they can:

  • Send ETH to an EOA
  • Make another contract call
  • Create other contracts

This process can continue recursively, with gas always being paid by the initiating EOA.

A user transaction from an externally owned account (EOA) calls a function in Contract A, which in turn makes an internal call to Contract B

To determine transaction dependencies, we analyze transaction traces to identify potential dependencies between transactions based on their modifications to blockchain state. We use the callTracer to obtain detailed execution traces of transactions, including internal calls.

For each transaction, we identify four types of modifications:

1. ERC20 token transfers (detected via function selector 0xa9059cbb)

2. ETH transfers to EOAs

3. Contract function calls

4. Direct ETH transfers

We consider transactions dependent if they have any of these conflicts:

1. Multiple transactions make ETH transfers from the same source address

2. Multiple transactions affect the same ERC20 token balance for the same address

3. Multiple transactions transfer value to the same EOA

4. Multiple transactions call the same function (identified by function selector) on the same contract

Ethereum Transaction Conflict Analysis

Overall Statistics

Total Blocks: 14,400

Total Transactions: 2,490,744

Dependent Transactions: 875,100

Per Block Averages

Transactions/Block: 172.9

Dependent Txs/Block: 60.77

Conflict Rates

Average Block Conflict Rate: 35.15%

Distribution of dependent vs. independent Ethereum transactions per block

Key Findings

Analysis of 2,490,744 transactions across 14,400 blocks reveals:

  • 35.15% of all transactions have dependencies with other transactions in their block
  • Each block averages 60.77 dependent transactions, indicating significant potential for parallel execution optimization

*conflict rate metrics are indicative. The analysis doesn't account for inter-chain dependencies. For example, a smart contract on Ethereum calls a smart contract from another blockchain via an oracle. This is a negligent edge case, at the time of writing.

Ethereum Speedup Boost with OCC

To estimate the performance improvement from parallel execution, we can leverage a well-known principle in parallel computing: Amdahl's Law. This law states that the maximum possible speedup from parallelization is determined by:

  • P = Fraction of the task that can be parallelized
  • N = Number of parallel execution units (e.g., CPU cores)
  • (1-P) = 0.35

If we assume optimistic concurrency control on Ethereum and accept that 64.9% of transactions can be parallelized (i.e., 64.9% are independent), we have:

P=0.649

    P=0.649 (fraction of transactions that can be parallelized)

    N = number of parallel execution units (CPU cores)

    (1−P) = 0.351

When we plug in N ∈ {4,8,16,32,64}:

  • For N = 4, Speedup(4) = 1.95x
  • For N = 8, Speedup(8) = 2.31x
  • For N = 16, Speedup(16) = 2.55x
  • For N = 32, Speedup(32) = 2.69x
  • For N = 64, Speedup(64) = 2.77x
  • For N = 128, Speedup(128) = 2.81x

With a consumer-grade number of cores, you could see roughly a 2x speedup. With more advanced hardware, it could approach a 3x speedup.

Sei Protocol Transaction Conflict Analysis

While Ethereum's analysis shows a direct conflict rate of 35.1%, Sei protocol uses an optimistic concurrency control (OCC) system where conflicts are measured through transaction retries. In Sei protocol, our best approximation comes from the scheduler_incarnations metric, which measures how many times a transaction needs to be re-executed due to conflicts. Over the past 24 hours, we observed:

  • Average incarnation rate: 2.68 (suggesting that transactions typically need 2-3 retries when conflicts occur)
  • Conflicts ≈ Attempts − 1 (initial) ≈ 1.68 per block

These metrics indicate that while conflicts do occur in Sei protocol, the OCC system handles them efficiently through retries.

The Lower The Conflict Rate, The Higher OCC’s Performance Boost

As the Sei Protocol continues to grow and more smart contracts are deployed and utilized, we expect to see an increase in transaction conflicts due to higher state interaction complexity. However, based on our analysis of Ethereum's state access patterns and Sei protocol's current metrics, we don't anticipate the conflict rate exceeding 50% even under heavy network utilization.

This reinforces that optimistic concurrency control (OCC) is a suitable architectural choice for Sei protocol, as it can provide substantial performance improvements even with moderate conflict rates. The key advantage of OCC over other parallel execution approaches is its developer-friendliness—developers can write smart contracts focusing purely on business logic without worrying about complex parallel execution patterns or state access specifications. When conflicts occur, the system handles retries automatically, typically requiring only 2-3 retries per conflicting transaction.

This makes Sei protocol a versatile platform suitable for all types of blockchain applications, from DeFi and gaming to NFTs and social platforms. Developer productivity and straightforward system behavior are crucial for ecosystem growth, and Sei maintains high throughput through efficient parallel execution.

To check the code and reproduce the results visit the github repository: https://github.com/vangelisandr/evm-conflict-rate

Bibliography

An Empirical Study of Speculative Concurrency in Ethereum Smart Contracts, Vikram Saraph, Maurice Herlihy, 2020-03-17

Operation-level Concurrent Transaction Execution for Blockchains, Haoran Li, Yajin Zhou, Lei Wu, 2022-11-17

Sharding Technique in Blockchain, Vo Truong Trung Hieu, 2023-10-19

Block-STM: Scaling Blockchain Execution by Turning Ordering Curse to a Performance Blessing, Rati Gelashvili, Alexander Spiegelman, Zhuolun Xiang, George Danezis, Zekun Li, Dahlia Malkhi, Yu Xia, Runtian Zhou, 2022-08-25

Comments

All Comments

Recommended for you

  • Whale Transfers 1,133 BTC to Coinbase Prime, Valued at $71.48 Million

    According to Onchain Lens monitoring, a whale transferred 1,133 BTC from Coinbase to Coinbase Prime through an intermediary wallet, valued at $71.48 million.

  • U.S. AI Chip Stocks Decline Before Market Open, Intel Falls Over 3%

    On July 7, U.S. AI chip stocks experienced widespread declines before the market opened. Intel dropped over 3%, while AMD, Qualcomm, and NXP fell more than 2%. TSMC, Broadcom, and Tesla decreased by over 1%, and NVIDIA declined by 0.7%.

  • China's Central Bank Increases Gold Reserves for the 20th Consecutive Month

    As of the end of June, China's gold reserves stood at 75.44 million ounces (approximately 2,346.446 tons), an increase of 480,000 ounces (about 14.93 tons) from the end of May, which reported 74.96 million ounces (approximately 2,331.52 tons). This marks the 20th consecutive month of gold accumulation.

  • China's Foreign Exchange Reserves in June at $341.6262 Billion

    On July 7, China's foreign exchange reserves for June stood at $341.6262 billion, a decrease of $26 billion from the end of May, representing a decline of 0.75%, with expectations set at $343.2 billion.

  • U.S. Storage Stocks Drop Pre-Market, SanDisk and Micron Down Over 4%

    On July 7, U.S. storage concept stocks collectively fell in pre-market trading. Western Digital dropped over 5%, SanDisk and Micron Technology fell over 4%, Seagate Technology declined over 3%, Rambus fell over 2%, and SMI fell over 1%.

  • U.S. Stocks in Optical Communication Sector Drop Pre-Market

    On July 7, stocks in the optical communication sector of the U.S. market collectively fell pre-market. Astera Labs dropped over 4%, while Marvell Technology, Credo Technology, and AXT Inc. fell more than 3%. Tower Semiconductor, MaxLinear, Corning, Applied Optoelectronics, GlobalFoundries, Lumentum, and Qorvo all declined by more than 2%. Coherent, Nokia, Amphenol, and Broadcom dropped over 1%.

  • Pre-market Decline in U.S. Storage Stocks

    In pre-market trading, U.S. storage concept stocks experienced a widespread decline, with Micron Technology falling by 4.8%, SanDisk dropping over 4%, Corning down more than 2%, and Intel decreasing by over 3%.

  • Two Departments: Support for Reinsurance Institutions to Increase Capital and Issue Supplementary Capital Tools

    On July 7, the National Financial Supervision and Administration Bureau and the Shanghai Municipal Government released several measures to accelerate the construction of the Shanghai International Reinsurance Center. Among these measures, they proposed to enhance the quality and efficiency of the reinsurance industry, support reinsurance institutions in increasing capital and expanding shares, and issuing supplementary capital tools to improve the capacity for internal capital accumulation and external capital supplementation, thereby strengthening the reinsurance industry's capabilities. The initiative aims to guide the insurance industry to focus on major national projects, strategic emerging industries, and livelihood security, consolidating insurance and reinsurance underwriting capabilities to enhance risk protection levels. It also supports reinsurance institutions in leveraging their professional technical advantages to assist the insurance industry in reducing risk.

  • Sources: Saudi Arabia Plans to Expand Oil Pipeline to Red Sea, Increasing Capacity by 2 Million Barrels Daily to Bypass Strait of Hormuz

    On July 7, five informed sources revealed that Saudi Arabia is considering expanding the crude oil pipeline capacity to its western coast on the Red Sea, allowing Saudi Arabia and its neighbors to transport more oil without passing through the Strait of Hormuz. This east-west pipeline, built in the early 1980s, has gained strategic importance since the outbreak of the Iran war in February and the disruption of shipping in the Strait of Hormuz. The pipeline can deliver up to 7 million barrels of crude oil per day to the Red Sea port. The CEO of Saudi Aramco stated in May that approximately 2 million barrels are supplied to west coast refineries, while about 5 million barrels are for export. Sources indicate that Saudi Arabia is in preliminary discussions with some neighboring countries regarding the pipeline expansion, aiming to add about 2 million barrels of pipeline capacity per day. It remains unclear whether Aramco's planned expansion involves upgrading existing infrastructure or constructing new pipelines. One source mentioned that the expansion plan also includes a smaller refined oil pipeline. Two sources indicated that the expansion scale could range from 1 million to 2 million barrels per day, with refined oil also being considered. Another source stated that the project would take several years and cost billions of dollars, requiring adjustments to Saudi crude pricing mechanisms.

  • Citi: Tencent's WorkBuddy Gains Momentum, Maintains 'Buy' Rating

    On July 7, Citi released a research report stating that, according to the latest industry data, Tencent's AI agent product WorkBuddy has reached 20 million monthly active users (MAU) and over 13 million daily active users (DAU), with a DAU/MAU ratio between 65% and 75%. Considering the product has only been launched for a few months, user stickiness and daily engagement are performing strongly. Citi quoted Tencent's management as saying that in terms of daily active users, Tencent is leading its Chinese peers in the deployment of AI agents. Early user data reflects strong natural growth for both CodeBuddy and WorkBuddy, with high retention rates. Early users are interacting with the AI agents for long durations and with high frequency, creating a positive feedback loop. It is expected that AI products will become a key revenue source for Tencent Cloud. The firm believes that WorkBuddy's success demonstrates the strength of Tencent's ecosystem, the synergy between various productivity tools, and users' trust in Tencent's products and security. Citi maintains a 'Buy' rating on Tencent with a target price of HKD 763 unchanged.