Live prices are currently unavailable — the exchange feed could not be reached and no recent cached reading is held.

Research · Cross-chain

Ethereum and Solana: sequential and parallel execution

The EVM applies transactions in order, and that order is part of the state transition. Solana's runtime schedules instructions in parallel by reading the accounts each one declares up front. The difference is not a tuning parameter — it changes what a transaction must state, what a developer can assume, and where the throughput comes from.

Why the EVM is sequential

Ethereum's execution model is defined by a state transition function applied to an ordered list of transactions. The Ethereum documentation describes a block as a set of transactions whose effects are applied in sequence, and the EVM as the machine that performs each application. Order matters because a transaction can read state that an earlier transaction in the same block wrote, and because the gas accounting is cumulative: the block's gas limit is consumed transaction by transaction until it is exhausted.

That ordering is not an implementation detail that a faster client could relax. It is part of the consensus rules. Two nodes that applied the same transactions in different orders would compute different state roots and disagree about the block, so the sequence is fixed by the protocol and every node replays it identically. The EVM's design also makes parallel execution hard for a different reason: a contract call can touch storage that no one declared in advance, because the target of a call can be computed at runtime and the set of slots a call will read is not known until it runs.

The consequence is that Ethereum's throughput is bounded by how fast a single sequential execution can go, and the network's scaling strategy has largely moved away from making that single execution faster. The documentation's own framing of the roadmap places scaling in rollups and in data availability for them, which is the subject of the layer one and layer two comparison in this cluster.

How Solana makes execution parallel

Solana's runtime, Sealevel, takes the opposite approach. The documentation describes it as a runtime that can process contracts in parallel using the validator's available cores, and the mechanism that makes that possible is a declaration requirement: every instruction in a transaction must list the accounts it will read and the accounts it will write. With that list in hand, the scheduler can identify instructions whose account sets do not overlap and run them concurrently, and it can serialise only the ones that contend for the same account.

The declaration requirement is the whole design. It is what turns an otherwise unknowable dependency graph into one the scheduler can read before execution begins, and it is why Solana's programming model asks the developer to be explicit about account access in a way Ethereum's does not. The cost is that the declaration must be correct: an instruction that touches an account it did not declare is not merely inefficient, it is invalid, because the runtime's safety argument depends on the declaration being complete.

Solana's documentation pairs Sealevel with the rest of the architecture that keeps the pipeline fed: Proof of History as a verifiable ordering of events, Turbine for propagating blocks through a tree of validators, and Gulf Stream for forwarding transactions ahead of the current block. Each component addresses a different bottleneck, and the whitepaper's performance analysis is explicit that the result depends on stated network and hardware assumptions rather than being a property of the protocol alone.

What each model asks of the developer

On Ethereum, a developer writes a contract and calls it. The execution environment resolves the call, reads whatever storage the code reaches, and charges gas for the work. Nothing about the contract's storage access has to be declared, and a contract can call another contract whose address it computes at runtime. That flexibility is what makes Ethereum's composability possible, and it is also what makes the execution order load-bearing.

On Solana, a developer writes a program and a client that builds transactions against it, and the transaction has to name the accounts involved. The documentation's account model makes this concrete: an account holds data and a lamport balance, programs are stateless and read their inputs from the accounts passed to them, and the runtime's parallelism follows from the account sets. A developer therefore designs the account layout as part of the program's interface, not as an afterthought, and the layout decides how much of the work can run concurrently.

The two models also differ in what a failed execution costs. On Ethereum, a transaction that reverts still consumes the gas it used up to the revert, and the sender pays for it. On Solana, the documentation describes a fee structure in which a transaction pays a base fee per signature and an optional priority fee, and the compute budget is expressed in compute units. The accounting is different in kind, and a developer moving between the two has to re-learn what a failed call costs and who bears it.

The two execution models side by side

The table sets out the structural differences. It describes mechanisms from each platform's documentation and asserts no throughput figure for either network.

Ethereum and Solana execution models compared on ordering, parallelism, account access and fee accounting.
DimensionEthereumSolana
Transaction orderingSequential; the order is part of the state transitionScheduled; non-overlapping instructions may run concurrently
Source of parallelismNone within a block; scaling is pushed to rollupsSealevel schedules across the validator's cores
Account accessResolved at runtime; no declaration requiredDeclared per instruction; an undeclared account is invalid
State modelOne global state trie of accounts and storageAccounts hold data and lamports; programs are stateless
Where program state livesIn the contract's storage slotsIn the accounts the program is passed
Unit of costGas, priced per unit of workCompute units, plus a base fee per signature
Cost of a failed callGas consumed up to the revert is still paidBase and priority fees are charged; compute is bounded

Last reviewed 2026-09-21Source: Ethereum and Solana developer documentationMechanism comparison; no throughput or latency figure is asserted.

What the comparison does not settle

Parallel execution is not free throughput. It converts a scheduling problem into a declaration problem, and the throughput a network actually achieves depends on how much contention real workloads produce: two transactions that write the same popular account cannot run at once no matter how good the scheduler is. The documentation describes the mechanism; it does not promise that every workload benefits from it, and this page does not either.

The comparison is also silent on the cost of running a node, which is where the two designs diverge most sharply in practice. Solana's whitepaper is explicit that its performance analysis assumes stated hardware, and a design that uses a validator's cores to execute in parallel implies a validator with cores to spare. Ethereum's sequential model is cheaper to replay, which is a different kind of scalability: the ability for many independent participants to verify rather than the ability for one machine to process. The design-intent comparison takes that question up directly.

Finally, both platforms are moving. Ethereum's roadmap includes changes to execution and to how state is organised, and Solana's runtime and fee market have changed since the whitepaper. This page describes the models as their documentation describes them at the review date and does not treat a roadmap item as a deployed feature.

Sources and references

Each network's execution model is described from its own documentation. No throughput, latency or cost figure is asserted that the cited source does not state.