Difference between revisions of "L1 comparison"

From Internet Computer Wiki
Jump to: navigation, search
m (Updated finality number to 0.64 s according to https://victoria.ch1-obs1.dfinity.network/select/0/vmui/#/?g0.expr=avg%28quantile+by%28ic_subnet%29+%28%0A++++++++.5%2C%0A++++++++++++avg_over_time%28%0A++++++++++++++++%28%0A++++++++++++++++++++artifact_pool)
 
(36 intermediate revisions by 9 users not shown)
Line 1: Line 1:
The promise of a [[World Computer]] and the emergence of a [[Blockchain Singularity]] has far reaching consequences in technology, sociology, economics, politics, communication, entertainment, and most aspects of our digital lives. As the industry is one of rapid innovation and progress, and as projects constantly and dynamically change, it's important to take stock, every now and then, to note how we're doing, and to check if we're on track to achieve the goals of decentralization, scalability, usability, and functionality.  
+
The promise of a [[World Computer]] and the emergence of a Blockchain Singularity has far reaching consequences in technology, sociology, economics, politics, communication, entertainment, and most aspects of our digital lives. As the industry is one of rapid innovation and progress, and as projects constantly and dynamically change, it's important to take stock, every now and then, to note how the industry is doing, and to check if the Internet Computer is on track to achieve the goals of decentralization, scalability, usability, and functionality.  
  
The industry is now moving out of its infancy, which is seen by the increasing number of smart contract developers, rather than core protocol developers, and users wanting to fully engage with a platform, rather than simply sending transactions back and forth. The shift away from simple payment systems, towards Web3 is well on its way, and it's within this scope that we attempt to map the blockchain landscape on this page.
+
The industry is now moving out of its infancy, which is seen by the increasing number of smart contract developers, rather than core protocol developers, and users wanting to fully engage with a platform, rather than simply sending transactions back and forth. The shift away from simple payment systems, towards Web3 is well on its way, and it's within this scope that this page attempts to map the blockchain landscape.
  
We compare top performing blockchain projects across a number of metrics that we expect to yield a 'good' Web3 experience under the categories of core protocol, developer experience, and user experience.
+
Top performing blockchain projects are compared across a number of metrics that are expected to yield a 'good' Web3 experience under the categories of core protocol, developer experience, and user experience.
  
Unless otherwise stated, all data is correct as of December 9th 2022. Metrics are explained and references are given below.
+
Unless otherwise stated, all data is correct as of February 7th 2024. Metrics are explained and references are given below.
  
 
== Base comparisons ==  
 
== Base comparisons ==  
Here we compare standard metrics that are used to measure performance of the core protocol of popular blockchain projects. Note that these metrics should not always be taken at face value. While references are listed below to note where the figures can be found, it's not always clear how these figures are computed. Additionally, parts of different projects may have the same name, but often are constructed differently (most notably, transactions), and so should not be compared blindly like-for-like. The [https://a16zcrypto.com/why-blockchain-performance-is-hard-to-measure/ a16z blog] has a nice article describing how the industry should think about metrics.
+
This section compares standard metrics that are used to measure performance of the core protocol of popular blockchain projects. Note that these metrics should not always be taken at face value. While references are listed below to note where the figures can be found, it's not always clear how these figures are computed. Additionally, parts of different projects may have the same name, but often are constructed differently (most notably, transactions), and so should not be compared blindly like-for-like. The [https://a16zcrypto.com/why-blockchain-performance-is-hard-to-measure/ a16z blog] has a nice article describing how the industry should think about metrics.
  
{| class="wikitable, sortable"
+
{| class="wikitable sortable"
 
|-
 
|-
! Metrics / L1 !! ICP !! Cardano !! Avalanche !! Algorand !! Ethereum !! Near !! Solana
+
! Metrics / L1 !! Average MIEPs !! Average TPS  !! Average finality  !! Average block time (seconds)  !! Average tx Cost  !! Average energy consumption per transaction (wh/tx) !! Size of network (nodes) !! On-Chain storage cost (1GB p/a)
|-
+
|-
| Average TPS || 5'382 (update calls) || 2.37 || 49.52 || 15.5 || 11.1 || 8.25 || 286 (non-voting calls)
+
| ICP  ||20000||[https://dashboard.internetcomputer.org/ 3200 (update calls)]||0.64 secs||0.48||$0.0012||0.003||[https://dashboard.internetcomputer.org/ 559]||[https://internetcomputer.org/docs/current/developer-docs/gas-cost#storage $5.35]
|-
+
|-
| Average finality || 1.4secs || || 2.3secs || 3.5secs || 15mins || 3.3secs || 5-12secs
+
| Avalanche || [https://stats.avax.network/dashboard/overview/ 46]||[https://subnets.avax.network/stats/network?selectedChains=mainnet&selectedChart=tx_count&timespan=MAX 14]||unclear||2.3||[https://docs.avax.network/reference/standards/guides/txn-fees $0.035]||2.395||[https://snowtrace.io/validators 1752]||unclear
|-
+
|-
| Average block time (seconds) || 0.936 || 20 || 2.3 || 3.5 || 12.08 || 1.11 || 0.542
+
| Cardano || 2||[https://cexplorer.io/tps 3]|| [https://docs.cardano.org/explore-cardano/time/#:~:text=Transaction%20finality%20can%20be%20achieved,according%20to%20Ouroboros%20consensus%20design. 1 day]||20||[https://docs.cardano.org/explore-cardano/fee-structure/ $0.1]|| 41.27 || [https://cardanoscan.io/ 2876] || [https://docs.cardano.org/cardano-testnet/tools/plutus-fee-estimator/ $1,480]
|-
+
|-
| Average tx Cost || $0.0000022 || $0.1 || $0.0066 (C-Chain only)|| $0.00025 || $2.39 || $0.0031 || $0.000026
+
| Ethereum || 5* || [https://blockchair.com/ethereum/charts/transactions-per-second 12] || [https://ethereum.org/fil/roadmap/single-slot-finality 15min] || 12 || [https://www.theblock.co/data/on-chain-metrics/comparison-bitcoin-ethereum/average-transaction-fee $8.4] || 9.956 || [https://etherscan.io/nodetracker 6395] || $2,439,827
|-
+
|-
| Average energy consumption wh/tx || 0.008 || 51.59 || 4.76 || 2.7 || 6.29 || 0.036 || 0.166
+
| Near || [https://nearblocks.io/charts 1600]|| [https://pikespeak.ai/near-world/overview 40] || [https://docs.near.org/concepts/advanced/near-indexer-framework#limitations 3.3secs] || 1.1 || [https://docs.near.org/concepts/basics/transactions/gas#the-cost-of-common-actions $0.00013] || 0.602 || [https://nearblocks.io/node-explorer 204] || [https://docs.near.org/concepts/storage/storage-staking#how-much-does-it-cost $1,468]
|-
+
|-
| Size of network (nodes) || 823 || 1050 || 1195 || 1530 || 6562 || 798 || 1872
+
| Solana || [https://solanacompass.com/ 90]|| [https://solanacompass.com 700 (non-voting)] || [https://www.tbstat.com/wp/uploads/2022/02/20220222_FinalityReport_TheBlockResearch.pdf 12secs] || 0.54 || [https://solanacompass.com/statistics/fees $0.005] || 0.517 || [https://solanacompass.com/statistics/decentralization 1617] || [https://solana.com/docs/intro/rent $35,984]
|-
 
| On-Chain storage  || $5 (3.95T cycles x 1XDR) || $17,035 - $113,507 (53,236 – 354708ADA) || $206,875 (15,62 5AVAX)|| || $15,494,409 (12,643.75 ETH) || || $48,625 (3,477.69 SOL)
 
 
|}
 
|}
  
* '''Average TPS''' measures the transactions processed per second - note that the interval over which these are measured does vary across chains. The dollar amounts are computed by converting the native token cost cycles/gas/fee needed per transaction, to USD given the exchange rate on December 9th 2022.
+
* ''' Average MIEPs''' measures millions of executed instructions per second which is an approximation of useful work performed. For ICP, Avalanche and Solana the calculation follows from the reported cycles / gas / compute units used in execution. For Near, we approximate by assuming 1 Tgas corresponds to 1ms of CPU time at 2B instructions / 1s of CPU. For Cardano we give the maximum capacity corresponding to 20ms of CPU time per block at 2B instructions / 1s of CPU. For Ethereum we go by the block gas limit. (*However, the EVM is a 32-byte stack machine, so we count 1 gas as 4 CPU instructions to be generous). Further remarks can be found here: [[Not all transactions are equal|"Not all transactions are equal"]].
* '''Average finality''' refers to the amount of time that passes between the proposal of a new valid block containing transactions until the block has been finalized and its content is guaranteed to not be reversed or modified (for some blockchains, e.g., Bitcoin, this guarantee can only be probabilistic).
+
* '''Average TPS''' measures the transactions processed per second - note that the interval over which these are measured does vary across chains.
*''' Average block time''' refers to the amount of time between blocks
+
* '''Average finality''' refers to the amount of time that passes between the proposal of a new valid block containing transactions until the block has been finalized and its content is guaranteed to not be reversed or modified (for some blockchains, e.g., Bitcoin, this guarantee can only be probabilistic). For ICP, the reported value is the average over all subnets of their node’s average time between starting a round until a valid finalization for this round is available.
* '''Average tx Cost''' measures the cost of a transaction. Note that the definition of 'transaction' varies widely across chains, where some are described below. The dollar amounts are computed by converting the native token cost cycles/gas/fee needed per transaction, to USD given the exchange rate on December 9th 2022. (Cardano and Ethereum figures found in [https://messari.io/asset/cardano/chart/txn-fee-avg Messari dashboard].)
+
*'''Average block time''' refers to the amount of time between blocks (per subnet on the IC)
* '''Average energy Consumption''' measures the network energy consumption to process a transaction (measured in watt hours)
+
* '''Average tx Cost''' measures the cost of a transaction. Note that the definition of 'transaction' varies widely across chains. The dollar amounts are computed by converting the native token cost cycles/gas/fee needed per transaction, to USD given the exchange rate.
* '''Size of network (nodes)''' notes the number of nodes currently making up the network
+
* '''Average energy consumption per transaction''' measures the network energy consumption to process a transaction (measured in watt hours). Figures true as of December 2023. Source: [https://assets.carboncrowd.io/reports/ICF2023.pdf Carbon Crowd Sustainability Report 2023].
* '''On-chain Storage''' gives the dollar cost and the native token cost of storing 1GB of data per year on chain.
+
* '''Size of network (nodes)''' notes the number of nodes currently validating the blockchain.
 
+
* '''On-chain storage cost''' gives the dollar cost of storing 1GB of data per year on chain. For Near and Solana, to store data one needs to maintain a specified token balance. We convert this balance to USD and annualise by multiplying by 5%. For Cardano and Ethereum, the user pays to store the data "forever", and again we annualise by multiplying this cost by 5%.
  
 
== Comparing developer experience ==
 
== Comparing developer experience ==
 
Whether they were writing games, operating systems or text editing applications, in the 70s, 80s and early 90s, developers always had to face limitations imposed by hardware. Applications were constrained to accessing a few kilobytes of memory through small stacks and heaps, using limited (and constantly changing) instruction sets, and using significant amounts of power to run instructions. The history repeats itself in the blockchain landscape these days. Application developers are limited to stack sizes of a few kilobytes to several megabytes at best. Persistent storage is expensive and limited. Programmers are bound to using cumbersome APIs that make hidden assumptions in terms of numbers of executed instructions. And, moreover, most chains operate inefficiently, burning too much power per executed transaction. This not only limits the types of applications that can be deployed on chain, but also increases development and testing time (and cost).
 
Whether they were writing games, operating systems or text editing applications, in the 70s, 80s and early 90s, developers always had to face limitations imposed by hardware. Applications were constrained to accessing a few kilobytes of memory through small stacks and heaps, using limited (and constantly changing) instruction sets, and using significant amounts of power to run instructions. The history repeats itself in the blockchain landscape these days. Application developers are limited to stack sizes of a few kilobytes to several megabytes at best. Persistent storage is expensive and limited. Programmers are bound to using cumbersome APIs that make hidden assumptions in terms of numbers of executed instructions. And, moreover, most chains operate inefficiently, burning too much power per executed transaction. This not only limits the types of applications that can be deployed on chain, but also increases development and testing time (and cost).
  
As opposed to all existing blockchains, the IC brings modern programming to on-chain developers, allowing them to use time for creativity rather than fixing memory packing issues or spreading computation in small iterations that do not hit instruction limits. The IC programming model offers orthogonal persistence, large stack and heap spaces (4GB), stable storage of 48GB (with plans for increase) in mainstream languages, such as Rust, or even Python.
+
As opposed to all existing blockchains, the IC brings modern programming to on-chain developers, allowing them to use time for creativity rather than fixing memory packing issues or spreading computation in small iterations that do not hit instruction limits. The IC programming model offers orthogonal persistence, large stack and heap spaces (4 GiB), stable storage of 400 GiB in mainstream languages, such as Rust, JavaScript, or even Python.
  
{| class="wikitable"
+
{| class="wikitable sortable"
|-
+
! Metrics / L1 !! Stable tx cost  !! HTTPs outcalls  !! Smart contract language support  !! Max stack size  !! Max persisted memory (per smart-contract)  !! Active developers (full-time / monthly)  !! Active repositories
! Metrics / L1 !! ICP !! Cardano !! Avalanche !! Algorand !! Ethereum !! Near !! Solana
+
|-
|-
+
| ICP  || ✅  || || Motoko (native), Rust, TypeScript, Python  ||data-sort-value="4294967296"| 4 GiB  ||data-sort-value="55834574848"| 400 GiB || 161/ 644 || 3973
| Stable tx cost || ✅ || || || || || ||
+
|-
|-
+
| Avalanche || || ❌ || Solidity || || || 455 / 1485 || 1901
| HTTPs outcalls || || ❌ || || || || ||
+
|-
|-
+
| Cardano || ❌ || || Plutus (native), Haskell || || || 170 / 490 || 1252
| Smart contract language support || Motoko (native), Rust, TypeScript, Python || Plutus (native), Haskell || Solidity || Teal (native), Python ||Solidity (native), Vyper, Yul, FE || Rust, Javascript || Rust C, C++
+
|-
|-
+
| Ethereum || || || Solidity (native), Vyper, Yul, FE || data-sort-value="32768" | 32 KiB || data-sort-value="3705346855594118253554271520278013051304639509300498049262642688253220148477952" | 2^261 B || 2392 / 7864 || 29117
| Max stack size || 4 GiB || || || 4 MB || 32 KiB || 256 KiB ||
+
|-
|-
+
| Near || || || Rust, Javascript || data-sort-value="262144" | 256 KiB || data-sort-value="32768" | 32 KiB || 282 / 1137 || 5352
| Max persisted memory (per smart-contract) || 52 GiB ||  ||  || 1 MB || 2^261 B (however, 15,494,409$ per GiB)  || 32 KiB ||
+
|-
|-
+
| Solana || || || Rust C, C++ || || || 436 / 1615 || 6137
| Active developers (full-time / monthly) || 121 / 406 || 163 / 465 || 95 / 332|| 52 / 192 || 1873 / 5734 || 205 / 781 || 383 / 2082
+
|-
|-
 
| Active repositories || 3973 || 1252 || 1901 || 438 || 29117 || 5352 || 6137
 
|-
 
 
|}
 
|}
  
 
+
* '''Stable tx cost''' provides the ability to have predictable costs for computation
* ''' Stable tx cost''' provides the ability to have predictable costs for computation  
+
* '''HTTPs outcalls''' is the ability to communicate directly with Web2 services (outside of the network)
* ''' HTTPs outcalls''' is the ability to communicate directly with Web2 services (outside of the network)
 
 
* '''Max stack size''' is the maximum size the stack can grow for smart contracts and serves as a measure for the complexity of code that is supported by each platform
 
* '''Max stack size''' is the maximum size the stack can grow for smart contracts and serves as a measure for the complexity of code that is supported by each platform
 
* '''Max persisted memory''' is the maximum size of persisted memory supported by each platform. Persisted memory is preserved across individual function calls
 
* '''Max persisted memory''' is the maximum size of persisted memory supported by each platform. Persisted memory is preserved across individual function calls
* '''Active developers''' counts the number of developers who made commits on more than 10 days in a month (full-time) or original code authors who made commits in a given month. Source [https://www.electriccapital.com/ Electric Capital]. Figures true as of 15/12/22
+
* '''Active developers''' counts the number of developers who made commits on more than 10 days in a month (full-time) or original code authors who made commits in a given month. Source [https://www.developerreport.com/ Electric Capital] (31/12/23).
 
* '''Active repositories''' are sourced from the [https://www.electriccapital.com/ Electric Capital] [https://github.com/electric-capital/crypto-ecosystems crypto ecosystems list]. Figures true as of 15/12/22
 
* '''Active repositories''' are sourced from the [https://www.electriccapital.com/ Electric Capital] [https://github.com/electric-capital/crypto-ecosystems crypto ecosystems list]. Figures true as of 15/12/22
 
 
 
== Comparing user experience ==  
 
== Comparing user experience ==  
It is widely accepted that the Web3 user experience needs massive development before mainstream adoption is likely. In this section we start to map out key metrics for Web3 usability. First and foremost is privacy, identity management and authentication. On many projects, every interaction that a user ever makes can be traced and monitored. While transparency is good for some things, we argue that this is a severe hindrance to adoption. Financial privacy and the freedom to interact should be paramount.  
+
It is widely accepted that the Web3 user experience needs massive development before mainstream adoption is likely. This sections starts to map out key metrics for Web3 usability. First and foremost is privacy, identity management and authentication. On many projects, every interaction that a user ever makes can be traced and monitored. While transparency is good for some things, it's argued that this is a severe hindrance to adoption. Financial privacy and the freedom to interact should be paramount.  
We also note the tools needed to interact with a project. We see this as a measure of accessability and openness to onboarding.  
+
The tools needed to interact with a project are also noted. These can be seen as a measure of accessibility and openness to onboarding.  
Finally, we include metrics about participation in the network. A large draw of Web3 is the fact that users can become owners and drivers of the platform. Here we include the percentage of native tokens staked as a measure of user confidence and participation in the project.  
+
Finally, metrics about participation in the network are included. A large draw of Web3 is the fact that users can become owners and drivers of the platform. Here the percentage of native tokens staked as a measure of user confidence and participation in the project are included.  
  
{| class="wikitable"
+
{| class="wikitable sortable"
 +
|-
 +
! Metrics / L1 !! Privacy-preserving authentication !! Prerequisites to use !! Staking ratio !! Monthly active wallets
 +
|-
 +
| ICP || ✅ || Browser || 73.89% || 93k
 +
|-
 +
| Cardano || ❌ || Browser, browser extension, tokens || 71.58%||
 
|-
 
|-
! Metrics / L1 !! ICP !! Cardano !! Avalanche !! Algorand !! Ethereum !! Near !! Solana
+
|Avalanche || ❌ || Browser, browser extension, tokens || 61.78% || [https://stats.avax.network/dashboard/overview/ 390k]
 
|-
 
|-
| Privacy-preserving authentication || ✅ || ❌ || ❌ || || || ❌ || ❌
+
| Algorand || ❌ || Browser, browser extension, tokens || 51.17% ||
 
|-
 
|-
| Prerequisites to use || Browser || Browser, browser extension, tokens || Browser, browser extension, tokens || Browser, browser extension, tokens || Browser, browser extension, tokens || Browser, browser extension, tokens || Browser, browser extension, tokens
+
| Ethereum || || Browser, browser extension, tokens || 13.57% || [https://www.theblock.co/data/on-chain-metrics/ethereum/number-of-active-addresses-on-the-ethereum-network-monthly 15m]
 
|-  
 
|-  
| Staking ratio || 73.89% || 71.58% || 61.78% || 51.17% || 13.57% || 43.19% || 68.59%
+
| Near || || Browser, browser extension, tokens || 43.19% ||
 
|-
 
|-
| Monthly active wallets || 93k || || [https://stats.avax.network/dashboard/overview/ 390k] || || [https://www.theblock.co/data/on-chain-metrics/ethereum/number-of-active-addresses-on-the-ethereum-network-monthly 15m] || || [https://dune.com/queries/829800 655k]
+
| Solana || || Browser, browser extension, tokens || 68.59% || [https://dune.com/queries/829800 655k]
 
|}
 
|}
  
Line 95: Line 93:
 
* ''' Monthly active wallets''' counts the wallet addresses that sent or received native currency in a given month (December 2022)  
 
* ''' Monthly active wallets''' counts the wallet addresses that sent or received native currency in a given month (December 2022)  
  
=== A note about average transactions cost ===  
+
=== A note about decentralization ===
* Algorand: https://metrics.algorand.org/#/protocol/, explanation: Average transaction fee of all transactions in the selected time period. [https://developer.algorand.org/docs/get-details/transactions/#fees Algorand fees]
+
Decentralization is key to make web3 dapps run in a trustless manner. However, decentralization has many dimensions and cannot be understood and quantified using a single number or coefficient. One can distinguish between a) the decentralization of the entities running the machines on top of which a protocol runs, b) the decentralization of the consensus and sharding mechanism, c) the governance system, the owners of liquid tokens etc. In this case, the whole is greater than the sum of its parts and one cannot understand decentralization as a single discussion on each of these topics.
* Cardano: [https://docs.cardano.org/explore-cardano/fee-structure Cardano fees] Fees are constructed around two constants (a and b). The formula for calculating minimal fees for a transaction (tx) is '''a''' times '''size(tx) + b''', where:
 
** a/b are protocol parameters
 
** size(tx) is the transaction size in bytes
 
* Solana: [https://docs.solana.com/transaction_fees Solana fees]
 
 
 
=== A note about finality ===
 
It is sometimes unclear what exactly different projects mean by finality, so we note our references here and describe how the above figures are computed.
 
* For ICP, finality calculated as described in the [https://internetcomputer.org/whitepaper.pdf whitepaper] in section 5.11.6.
 
* For Near, we use the fact finalization occurs after 3 blocks (as stated in the [https://docs.near.org/concepts/advanced/near-indexer-framework#limitations docs]) and use the current block time of 1.1 seconds from the [https://explorer.near.org/ explorer].
 
* All other finality figures for now come from the finality section [https://newsbtc.com/all/assessing-the-top-performing-layer-1-blockchain-protocols/ here].
 
 
 
  
 +
See [[Decentralization|Decentralization Wiki Page]] for more details.
 
== References ==  
 
== References ==  
 
* '''ICP''' : [https://dashboard.internetcomputer.org IC Dashboard]
 
* '''ICP''' : [https://dashboard.internetcomputer.org IC Dashboard]
 
* '''ADA''' : [https://explorer.cardano.org/en Cardano explorer] and [https://cexplorer.io/ cexplorer]
 
* '''ADA''' : [https://explorer.cardano.org/en Cardano explorer] and [https://cexplorer.io/ cexplorer]
 
* '''AVAX''' : [https://snowtrace.io/ Snowtrace] and [https://subnets.avax.network/ Avalanche explorer]
 
* '''AVAX''' : [https://snowtrace.io/ Snowtrace] and [https://subnets.avax.network/ Avalanche explorer]
* '''ALGO''' : [https://www.algorand.com/ Algorand website] and [https://metrics.algorand.org/ Algorand metrics site]
 
 
* '''ETH''' : [https://etherscan.io/ Etherscan]
 
* '''ETH''' : [https://etherscan.io/ Etherscan]
 
* '''NEAR''' : [https://explorer.near.org/ Near explorer] and [https://docs.near.org/ Near docs]
 
* '''NEAR''' : [https://explorer.near.org/ Near explorer] and [https://docs.near.org/ Near docs]
 
* '''SOL''' : [https://solana.com/ Solana website] and [https://solanabeach.io/ Solana beach]
 
* '''SOL''' : [https://solana.com/ Solana website] and [https://solanabeach.io/ Solana beach]

Latest revision as of 14:00, 15 November 2024

The promise of a World Computer and the emergence of a Blockchain Singularity has far reaching consequences in technology, sociology, economics, politics, communication, entertainment, and most aspects of our digital lives. As the industry is one of rapid innovation and progress, and as projects constantly and dynamically change, it's important to take stock, every now and then, to note how the industry is doing, and to check if the Internet Computer is on track to achieve the goals of decentralization, scalability, usability, and functionality.

The industry is now moving out of its infancy, which is seen by the increasing number of smart contract developers, rather than core protocol developers, and users wanting to fully engage with a platform, rather than simply sending transactions back and forth. The shift away from simple payment systems, towards Web3 is well on its way, and it's within this scope that this page attempts to map the blockchain landscape.

Top performing blockchain projects are compared across a number of metrics that are expected to yield a 'good' Web3 experience under the categories of core protocol, developer experience, and user experience.

Unless otherwise stated, all data is correct as of February 7th 2024. Metrics are explained and references are given below.

Base comparisons

This section compares standard metrics that are used to measure performance of the core protocol of popular blockchain projects. Note that these metrics should not always be taken at face value. While references are listed below to note where the figures can be found, it's not always clear how these figures are computed. Additionally, parts of different projects may have the same name, but often are constructed differently (most notably, transactions), and so should not be compared blindly like-for-like. The a16z blog has a nice article describing how the industry should think about metrics.

Metrics / L1 Average MIEPs Average TPS Average finality Average block time (seconds) Average tx Cost Average energy consumption per transaction (wh/tx) Size of network (nodes) On-Chain storage cost (1GB p/a)
ICP 20000 3200 (update calls) 0.64 secs 0.48 $0.0012 0.003 559 $5.35
Avalanche 46 14 unclear 2.3 $0.035 2.395 1752 unclear
Cardano 2 3 1 day 20 $0.1 41.27 2876 $1,480
Ethereum 5* 12 15min 12 $8.4 9.956 6395 $2,439,827
Near 1600 40 3.3secs 1.1 $0.00013 0.602 204 $1,468
Solana 90 700 (non-voting) 12secs 0.54 $0.005 0.517 1617 $35,984
  • Average MIEPs measures millions of executed instructions per second which is an approximation of useful work performed. For ICP, Avalanche and Solana the calculation follows from the reported cycles / gas / compute units used in execution. For Near, we approximate by assuming 1 Tgas corresponds to 1ms of CPU time at 2B instructions / 1s of CPU. For Cardano we give the maximum capacity corresponding to 20ms of CPU time per block at 2B instructions / 1s of CPU. For Ethereum we go by the block gas limit. (*However, the EVM is a 32-byte stack machine, so we count 1 gas as 4 CPU instructions to be generous). Further remarks can be found here: "Not all transactions are equal".
  • Average TPS measures the transactions processed per second - note that the interval over which these are measured does vary across chains.
  • Average finality refers to the amount of time that passes between the proposal of a new valid block containing transactions until the block has been finalized and its content is guaranteed to not be reversed or modified (for some blockchains, e.g., Bitcoin, this guarantee can only be probabilistic). For ICP, the reported value is the average over all subnets of their node’s average time between starting a round until a valid finalization for this round is available.
  • Average block time refers to the amount of time between blocks (per subnet on the IC)
  • Average tx Cost measures the cost of a transaction. Note that the definition of 'transaction' varies widely across chains. The dollar amounts are computed by converting the native token cost cycles/gas/fee needed per transaction, to USD given the exchange rate.
  • Average energy consumption per transaction measures the network energy consumption to process a transaction (measured in watt hours). Figures true as of December 2023. Source: Carbon Crowd Sustainability Report 2023.
  • Size of network (nodes) notes the number of nodes currently validating the blockchain.
  • On-chain storage cost gives the dollar cost of storing 1GB of data per year on chain. For Near and Solana, to store data one needs to maintain a specified token balance. We convert this balance to USD and annualise by multiplying by 5%. For Cardano and Ethereum, the user pays to store the data "forever", and again we annualise by multiplying this cost by 5%.

Comparing developer experience

Whether they were writing games, operating systems or text editing applications, in the 70s, 80s and early 90s, developers always had to face limitations imposed by hardware. Applications were constrained to accessing a few kilobytes of memory through small stacks and heaps, using limited (and constantly changing) instruction sets, and using significant amounts of power to run instructions. The history repeats itself in the blockchain landscape these days. Application developers are limited to stack sizes of a few kilobytes to several megabytes at best. Persistent storage is expensive and limited. Programmers are bound to using cumbersome APIs that make hidden assumptions in terms of numbers of executed instructions. And, moreover, most chains operate inefficiently, burning too much power per executed transaction. This not only limits the types of applications that can be deployed on chain, but also increases development and testing time (and cost).

As opposed to all existing blockchains, the IC brings modern programming to on-chain developers, allowing them to use time for creativity rather than fixing memory packing issues or spreading computation in small iterations that do not hit instruction limits. The IC programming model offers orthogonal persistence, large stack and heap spaces (4 GiB), stable storage of 400 GiB in mainstream languages, such as Rust, JavaScript, or even Python.

Metrics / L1 Stable tx cost HTTPs outcalls Smart contract language support Max stack size Max persisted memory (per smart-contract) Active developers (full-time / monthly) Active repositories
ICP Motoko (native), Rust, TypeScript, Python 4 GiB 400 GiB 161/ 644 3973
Avalanche Solidity 455 / 1485 1901
Cardano Plutus (native), Haskell 170 / 490 1252
Ethereum Solidity (native), Vyper, Yul, FE 32 KiB 2^261 B 2392 / 7864 29117
Near Rust, Javascript 256 KiB 32 KiB 282 / 1137 5352
Solana Rust C, C++ 436 / 1615 6137
  • Stable tx cost provides the ability to have predictable costs for computation
  • HTTPs outcalls is the ability to communicate directly with Web2 services (outside of the network)
  • Max stack size is the maximum size the stack can grow for smart contracts and serves as a measure for the complexity of code that is supported by each platform
  • Max persisted memory is the maximum size of persisted memory supported by each platform. Persisted memory is preserved across individual function calls
  • Active developers counts the number of developers who made commits on more than 10 days in a month (full-time) or original code authors who made commits in a given month. Source Electric Capital (31/12/23).
  • Active repositories are sourced from the Electric Capital crypto ecosystems list. Figures true as of 15/12/22

Comparing user experience

It is widely accepted that the Web3 user experience needs massive development before mainstream adoption is likely. This sections starts to map out key metrics for Web3 usability. First and foremost is privacy, identity management and authentication. On many projects, every interaction that a user ever makes can be traced and monitored. While transparency is good for some things, it's argued that this is a severe hindrance to adoption. Financial privacy and the freedom to interact should be paramount. The tools needed to interact with a project are also noted. These can be seen as a measure of accessibility and openness to onboarding. Finally, metrics about participation in the network are included. A large draw of Web3 is the fact that users can become owners and drivers of the platform. Here the percentage of native tokens staked as a measure of user confidence and participation in the project are included.

Metrics / L1 Privacy-preserving authentication Prerequisites to use Staking ratio Monthly active wallets
ICP Browser 73.89% 93k
Cardano Browser, browser extension, tokens 71.58%
Avalanche Browser, browser extension, tokens 61.78% 390k
Algorand Browser, browser extension, tokens 51.17%
Ethereum Browser, browser extension, tokens 13.57% 15m
Near Browser, browser extension, tokens 43.19%
Solana Browser, browser extension, tokens 68.59% 655k
  • Privacy-preserving authentication notes whether a project allows privacy-preserving interactions with the blockchain.
  • Prerequisites to use lists what is needed to interact with the project
  • Staking ratio gives the percentage of native tokens that are staked in the protocol. The staking ratio metrics are from Staking Rewards and are correct as of 19.12.2022
  • Monthly active wallets counts the wallet addresses that sent or received native currency in a given month (December 2022)

A note about decentralization

Decentralization is key to make web3 dapps run in a trustless manner. However, decentralization has many dimensions and cannot be understood and quantified using a single number or coefficient. One can distinguish between a) the decentralization of the entities running the machines on top of which a protocol runs, b) the decentralization of the consensus and sharding mechanism, c) the governance system, the owners of liquid tokens etc. In this case, the whole is greater than the sum of its parts and one cannot understand decentralization as a single discussion on each of these topics.

See Decentralization Wiki Page for more details.

References