Skip to main content

Benchmarking Blockchain

· 5 min read
Matias Benary
Developer

While each has its own theoretical finality, an important question for devs is "how long does it actually take for my app that a transaction is final". In this post, we send transactions across 6 different chains and waited for them to be final to compare them empirically

Understanding Finality in Blockchain

When you send a transaction on a blockchain, how long does it take to be truly final? This question is critical for developers building applications, especially those requiring fast confirmations like payments, gaming, or DeFi.

There are two main types of finality:

  • Soft Finality (Optimistic): The transaction is included in a block and is unlikely to be reversed, but there's still a small chance of reorganization
  • Hard Finality: The transaction is irreversibly committed to the blockchain with cryptographic guarantees

For example, here are the theoretical finality times for 6 popular blockchains:

BlockchainOptimistic FinalityHard FinalityValidators/NodesHardware Requirements
NEAR Protocol600ms1.2 seconds~3508 cores, 8GB RAM, 1TB SSD
Aptos130ms650ms~13532 cores, 64GB RAM, 3TB SSD
Arbitrum250ms~15 minutes1 sequencer4 cores, 16GB RAM, NVMe SSD
Ethereum Sepolia2.4 minutes (12 blocks)~15 minutes~12.000-10.0004 cores, 16GB RAM, 2TB SSD
Solana400-600ms13 seconds~82012 cores, 256GB RAM, 2TB SSD, 1Gbps
Sui500ms500ms~12524 cores, 128GB RAM, 4TB NVMe

Real-World Performance Benchmark

Despite what the theoretical numbers say, real-world performance can differ due to network conditions, node performance, and other factors. To get a clearer picture, we conducted a benchmark test across six different blockchains.

To put this to the test, we built simple benchmarking scripts which make 30 transactions on each network, and look to see how long it takes for both optimistic and hard finality.

To be as fair as possible, we:

  • used testnet networks on all chains
  • made a simple transfer of native tokens to avoid complexities of smart contracts
  • used free and public RPC endpoints

What Does Optimistic Finality Actually Mean?

It is important to remark that there is not a single definition on what optimistic finality means, and it can vary between blockchains. Here's how each blockchain in our benchmark defines optimistic finality:

NEAR Protocol

On NEAR, we measure EXECUTED_OPTIMISTIC which is reached when the transaction is included in a block and all non-refund receipts have finished their execution. According to the official documentation, at this stage "the transaction is included into the block + all non-refund transaction receipts finished their execution," though the corresponding blocks may not yet be finalized. This represents an optimistic state where execution is complete but blocks are still being finalized by the network.

Aptos

For Aptos, optimistic finality is measured as the time when the transaction is submitted and the transaction hash is returned, without waiting for confirmation. This represents the fastest possible response but with the least guarantees. For hard finality, we use waitForTransaction which waits until the transaction is committed to the blockchain and execution succeeds.

Solana

Solana uses the confirmed commitment level for optimistic finality, which means 66%+ of the validator stake has voted on the block. For hard finality, the finalized commitment level requires 31+ confirmed blocks to be built on top of the transaction's block, making it economically irreversible.

Sui

On Sui, optimistic finality uses WaitForLocalExecution which waits for the local node to execute the transaction. For hard finality, WaitForEffectsCert waits for an effects certificate, which is a guarantee that the transaction will be included in a checkpoint and cannot be reverted.

Ethereum Sepolia & Arbitrum

For EVM chains, optimistic finality is measured using block confirmations - 12 confirmations for Sepolia and 1 confirmation for Arbitrum. Hard finality uses Ethereum's finalized block tag, which indicates the block has been accepted as canonical by more than 2/3 of validators, typically occurring after two epochs (~12-13 minutes for Ethereum).

Results

Here is a summary of the average finality times observed during our benchmark:

BlockchainOptimistic FinalityHard Finality
NEAR Protocol2352ms ± 305ms3499ms ± 244ms
Aptos200ms ± 5ms618ms ± 40ms
Arbitrum2213ms ± 312ms1440021ms ± 161901ms
Ethereum Sepolia151618ms ± 15050ms1150564ms ± 5918ms
Solana938ms ± 252ms12973ms ± 279ms
Sui1493ms ± 77ms3152ms ± 30ms

Additional Context

While conducting this benchmark, we discovered that Aptos achieved similar comparable performance testing.

Resources

The complete benchmark data and analysis tools are open source and available on GitHub:


Want to build on NEAR? Check out our developer documentation to get started.