Each blockchain platform has a different set of capabilities, but you might not see clearly which platform will suit your needs or expectations from a mature blockchain ecosystem where you can run your own decentralized and distributed application, service, or a whole business. My comparison table can give you this insight quickly.
The primary objective was a side-by-side comparison of selected platforms so you can evaluate personally if they are suitable for your needs and how they are prepared for the future when blockchains will not be seen only as isolated platforms for crypto coins but more as an extension to the current Internet where can exist applications, services, and communities in a pure decentralized and distributed space, where users are the only ones having control over their data, digital currency, and immutable, self-enforcing code, executed from a chain, is protecting their rights.
The future is already here, it’s just not very evenly distributed — William Gibson
The comparison table is at the bottom, but it’s important to understand the terms & criteria visualized in the table, so please spend a few minutes reading the next sections.
- 30-Dec-2021: added Level of Decentralization metric, Cardano is now Gen 2 blockchain; Added new chains: Elrond, Avalanche, Solana
- 14-Mar: Fixed XRPL/Ripple information. DEX is part of the code (not as a contract), Governance is done by amendments. Thanks @nbougalis for the help!
- 29-Jan: Moved poll to the different site due to hidden limitations of Survey Maker
- 27-Jan: based on feedback from the community has been added more information on specific questions is below the comparison table
- 27-Jan: Added poll so you can vote on which other platforms should be added
- 27-Jan: updated info for Polkadot. dApps as planned and with expected delivery (parachains are dependent on candle auction)
Terms Explanation & Evaluation criteria
This is not a comprehensive description of every term as each one of them will take an extra article. I will try to explain it in simple terms so even someone who does not orientate in blockchains can understand what it means and why it matters.
In case you want to know more, I would recommend Binance Academy or Investopedia.
For blockchain generation identification, I used information in the article: A critical review on blockchain assessment initiatives: A technology evolution viewpoint
Each generation is represented by a set of capabilities that must be met. My comparison table is taking all of those into consideration and assigned blockchain generation to each platform.
The consensus is a secure, fault-tolerant mechanism used to achieve agreement on a state of the blockchain network. This involves verification and authentication of every transaction, which becomes part of a new block. In simple words, a consensus is assuring that the data that will become part of a ledger is valid, genuine, and other participants confirm its authenticity.
There are generally two approaches to achieve this.
- PoW (Proof-of-Work)— computationally intensive algorithm, assures that miners can only validate a new block of transactions if the network nodes collectively agree that the block hash provided by the miner as proof of his work is accurate.
- PoS (Proof-of-Stake)— alternative to PoW, which is not computationally intensive. Instead of having miners with powerful HW, the next block producer is selected by the algorithm and based on each validator’s stake. This process trust validators with the most stake that they will act responsibly for the whole network. Validators who will act maliciously will lose some portion of their stake (slashing).
PoS platforms have multiple forms, which are described below. For some, as a delegator, you can delegate your stake to the Validator (do your due diligence), which will increase the total stake, and you will get % from staking rewards—interesting passive income.
- DPoS (Delegated PoS)— Voting Rights: Vote for validators only; Slashing: depends on the chain protocol
- HPoS (Hybrid PoS)— Voting Rights: Depends on the chain protocol; Slashing: Depends on the chain protocol
- LPoS (Liquid PoS)— Voting Rights: Vote for protocol changes; Slashing: Yes, paid by Validator
- BPoS (Bonded PoS)— Voting Rights: Vote for protocol changes; Slashing: Yes, paid by Validator & Delegator
- …and many others
Each one of them (PoW or PoS) can achieve consensus. For each one of them exists different attack vectors that need a layer of defense to minimize risk, but only PoW does require a lot of energy to keep the network up and running, which is ineffective.
Bitcoin global impact
Bitcoin energy consumption represents close to half of the current global data centers’ electricity (80-90 TWh per year). It’s comparable to Chile’s total energy consumption or the Czech Republic 😟 Carbon footprint of New Zealand and Luxemburg’s Electronic waste. All of this to perform computation, which is, in fact, trial & error, like playing roulette to produce a new block.
Bitcoin energy consumption, source: https://digiconomist.net/bitcoin-energy-consumption/
It should be renamed from Proof-of-Work to Proof-of-Waste.
You can run the PoS mechanism on Raspberry Pi (I tried) as there is no computational waste needed to secure the network.
Transactions are broadcasted immediately, but they are not trusted until they become a part of the next block. For that reason is important a low block time. If you send your transaction one second after completing the previous block, you will be waiting until the next block, so the rest nodes of the network can confirm it (in the case of Bitcoin, 10 minutes).
A criterium here was a user experience. When you pay using your credit/debit card, the transaction confirmation usually takes 5-10 seconds. Anything above 10 seconds is of a lower score.
Transactions Per Second
As we previously explained block time, I know that TPS is only a theoretical number calculated as transactions per block, divided by block time. Even though it does not mean how many transactions are processed per second, it is a good indication of network bandwidth because they are processed with the next block.
Just in the US is processed 108M transactions per day on average, so we speak about ~1200 transactions per second. Skipping for a while that those were only payment transactions while on the blockchain transaction can be anything from the execution of a smart contract, a service call in the form of dApp, a file stored in distributed data storage, etc.
Our criterium, for now, will be anything above 1200 TPS. Blockchains with zone/shard sovereignty (like Cosmos) are scalable, so Hub TPS is not that important.
Deposit times are different for every exchange platform, and I’m using Kraken deposit times because they have them documented on a single page, while, e.g., Binance, you need to check the spot wallet for each coin separately.
It is also an indicator of how big exchanges trust the specific blockchain. Our criterium for comparison with real-world experience was a bank transfer. Anything above 5 minutes is not acceptable.
A transaction fee is dynamic and typically calculated from the gas. Gas consumption and currency price are changing over time, so I took the “average” cost per transaction as of Jan-2021. Obviously, when you buy coffee, the transaction fee should not cost you more than the product, so anything below $0.0X is fine, even though it’s clear that if the currency’s cost will be 10x higher, the fee will become higher as well. Some blockchains can dynamically adjust their own fees in such situations.
Level of Decentralization
In the blockchain, decentralization alludes to the transfer of supervision and decision-making from a centralized association to a dispersed network. This important aspect of blockchain is not always the same so I created a simple list of metrics to show the level of how is each blockchain decentralized.
Initial Token Allocation
- Conditions: Insiders allocation is less than 25% and Public Sale is more than 25%
- Penalization for Insiders: Ripple (99,8%), Polkadot (33%), Avalanche (42%), Solana (48%)
- Penalization for insufficient Public sale: Ripple, Polkadot, Avalanche, Solana
Source of information: Messari and summary from Ryan Watkins Twitter post
Costs on running a node/validator
- Conditions: Running a profitable node for a reasonable price (<$10k/year) and without requirement on specialized HW
- Penalization: Solana — Taking into consideration server/instance costs (high specs), voting fees, and inflation, you need to have 65-100k SOL (~$15M) at stake to have your node profitable because most of the run cost is spent on consensus/vote transactions (1,1 SOL/day/validator). You can use this dynamic table to do your own calculation.
Public on-chain Governance
- Conditions: Community (holders/stakers) should have a right to participate in the direction of the chain and vote on key proposals on-chain.
- Penalization: Bitcoin, Ethereum, Cardano, Elrond, Avalanche, Solana
Scoring: 0-1 High; 2-3 Medium; 4 Low
A Smart Contract is actually a self-executed program stored in a blockchain that can be executed in a distributed and decentralized manner. Because this program is part of a blockchain, it makes it immutable so that no adversary can modify its code.
Typically it is used as a form of agreement between a buyer and a seller (if this, then that, or an escrow service), but these days some blockchains allow you to write whole decentralized applications (dApps).
For anything other than ‘if this, then that’ program, I’m rather using the term dApps, as calling them contracts is inaccurate in my opinion.
Solidity EVM is limited language and expensive to execute. Wasm (WebAssembly) is an ideal solution, in my opinion, as you can use multiple languages (C, Go, Rust, Swift, …) and run them in your browser.
Due to large attack surface is EVM scored lower as writing secure contracts is difficult and every month you can find in news exploitation of EVM contract where XX million were siphoned. Due to the Solana BPF complexity of its API is attack surface even bigger. A proper security audit of any blockchain code is absolutely necessary.
Decentralized Apps (dApps)
dApps are using smart contracts as a backend. This is the layer that can bring services, applications, privacy, and good user experience into blockchains. Typically only the most important piece of dApp code (asset ownership, etc.) is sitting on the blockchain, but it is a more historical reason caused by a limitation of second-gen blockchains like Ethereum.
Having dApp in blockchain has a couple of benefits but also challenges.
- Immutable code — can’t be changed
- Zero downtime — executed by active chain nodes
- Trustless and transparent computation
- Resistant to censorship
- Immutable code — difficult maintenance, update, and patching
- Network congestion — transaction-intensive dApp can impact the whole blockchain (especially without scaling solution)
- Performance overhead — resource-intensive dApp can overload nodes (not a big concern for PoS blockchains)
Obviously, the most important thing is to write contracts/dApps in a secure and bug-free manner, because you cannot easily patch them. There might also be other reasons to change the dApp code (e.g., blockchain upgrade). Solutions exist and ideally verify in advance what options are possible on the blockchain you choose for your dApp.
Decentralize Exchanges (DEX)
Decentralized Exchanges are open markets for tokens or blockchain-based assets. They directly connect buyers and sellers without an intermediary. They use their code to safeguard transactions, so just when both sides comply, the transactions are completed.
The typical use case is buying/selling tokens. You will store tokens/assets in DEX and make an offer. Buyers will store their tokens/assets in DEX and make a bid. In the case of a successful deal, tokens/assets are transferred from one side to the other. If not, funds are returned to their owners. Nobody sits between them, and everything is secured by smart contract code. Fair deal.
You don’t need any middleman/trader/bank or own node on blockchain to buy/exchange/trade crypto. This is important to understand.
- Key algorithm of DEX must exist as a smart contract/dApp on the blockchain.
Many services call themselves DEX, but they don’t have a single line of code executed from the blockchain. In such a case, it has nothing to do with decentralization.
You can call DEX as part of DeFi, but I treat it separately as DEX provides liquidity to DeFi.
Decentralized Finance (DeFi)
DeFi is another service provided by dApp/contract. DeFi provides access to decentralized banking and financial services for anyone.
Typical services are lending and borrowing, insurance, trading synthetic assets, prediction markets, etc. As a reward for deposited currency are typically given DeFi platform tokens (yield farming, liquidity mining), which you can on top use on some platforms as governance token and vote on the future of the platform.
If you are holding cryptocurrency and are not planning to sell it anytime soon, it is a good option for passive income.
Oracle is a form of dApp/contract that provides a link between external (off-chain) data and blockchain data. When your dApp needs external data (stock price, date/time, election results, …anything available outside blockchain…) because it’s simply a condition for a contract, you need to use data Oracle because smart contracts alone are not able to do that.
Imagine that my friend and I will bet on who will be a winner of a football match. We both lock our funds in a smart contract, and the logic of the contract will simply release all funds to the winner. The contract will call via API Data Oracle to gather information from the Internet about football match results.
Data Oracle can be centralized (controlled by a single entity) or decentralized. In the case of decentralized Oracle, there can be queried multiple oracles and multiple sources of information and results compared to assure the information’s validity. Distributed Oracles does not eliminate trust but rather distribute it between many participants. Do not trust Oracles that are not transparent.
Digital Identity Management
Digital Identity and Verification are some of the most promising capabilities of blockchain. You can use it as proof of your identity, authenticate into dApps, and in the future will also come KYC services. Validation of your digital identity can be achieved by, e.g., trusted authorities managing their own nodes on the blockchain network, which will sign/cast a vote on your identity. The authenticity of this transaction will also be verifiable and stored in the blockchain.
You can then use your wallet as the authentication token to any other service, smart contract, dApp, ..etc.
With current progress on the adoption of the BankID model, it might be soon easy to have trusted confirmation of your identity by your bank, which can be used in the public sector and eGovernment.
One of the current pain-point from a user experience perspective is blockchains address format, which is more a cryptographic hash or UUID in a database than anything that can be called an “address”.
Some platforms use BSN (Blockchain Name Service) as aliases, which are then linked to an address. Having the same service running on other blockchains (via smart contract) allows you to have one name for multiple different blockchains. Instead of you typing an IP address into a browser, you also use a domain name, which is then on the backend translated into IP address.
Similar problems are with bank accounts. For international transfers, it’s even more complicated (IBAN/BIC, SWIFT + bank name/address/…). Checking all of those details to ensure you will not send money to someone else is a bad user experience.
Bank (international transfer — SEPA)
Blockchain (international transfer)
Both options are far from good.
BUT what if your address/name can be something like:
…and in one place, you can heave linked all your wallets (accepted coins/currency) from all other blockchains or bank accounts, verified identity by other platforms or bank directly, and all of this information is stored in a blockchain where you are the only one holding the key to perform changes.
This page shows information written in the blockchain, where even my profile picture is stored in distributed storage (IPFS).
An obvious and valid concern is that if you link all your accounts you’re using, anyone can see your account’s balance because blockchain transactions are open to anyone. Without a privacy layer, it’s like having a webpage where is your bank account balance, and with all transactions, you made in the past.
Ethereum co-founder learned that hard way when he sent 92 000 ETH from his ENS (Ethereum Name Service) associated address to Kraken exchange 😯
Starname roadmap item provides different addresses for each crypto-payment, so soon, this will not be a concern anymore for this service. It might be an issue for ENS though, due to Ethereum limitations and the cost of executing the smart contract.
Even though blockchains are public, distributed, open, and verifiable to everyone, in many cases, you don’t want to expose your data publicly. Some dApps you will be using can be handling your PII or Sensitive information, and you probably don’t want to have this information written in blockchain for eternity.
In such situations, some chains can provide you data privacy layer, sometimes called secret contracts. They can support privacy-preserving asset transfers, DeFi services, Data Sharing, and more. Your data will be encrypted in blockchain, or it will not even get stored there.
This does require node operators to run, e.g., specialized HW or code execution within secure enclaves (TEE), so even system admins or adversaries will not be able to access raw information.
Here is one example of how Secret Network achieves this
Distributed Cloud Storage
Generally speaking, writing files directly into a blockchain is a bad practice.
Google Drive, OneDrive, iCloud, Dropbox, and others. We all know and use those daily, but there are valid use-cases for distributed data storage. It works pretty much in the same way as P2P/Bittorent networks, where one file is seeded to clients, who are then seeding them as well. The difference here is an incentive mechanism to store those files, to re-seed them, and stay online 24/7.
- No central authority can delete, change or censor your data
- Data is distributed to multiple independent network nodes
- You can download file chunks from multiple nodes (as in p2p)
- Files are given unique fingerprint (hash)
- Decentralized Storage keeps a version history for every file.
- Reduces network congestion and data loss
- Data in distributed storage can be used by smart contracts or by dApps in the same decentralized and distributed matter as they are
We use distributed cloud storage like IPFS, Sia, Storj, and others for those and other use-cases.
Distributed Cloud Computing (DeCloud)
Are you interested in computing power for a fraction of the price? That is the primary goal of cloud computing chains. In this scenario, you have clients who need computing resources and providers with the computing power to lease. It can be any private HW with spare resources or dedicated machines in data centers or cloud environments (AWS, GCP, Azure, …).
With a few clicks, you can deploy your web server, database, blog platform, application, own DeFi, … So far, from what I have seen, you can use anything which is in the form of a docker container.
DeClouds are in the early stages, but even today, you can deploy any dockerized application within few minutes, as in AWS, GCP, or Azure. I hope that soon will be added more infrastructure-related and security-related services as docker has a much larger attack surface than VM. I do believe soon will come specialized OSes with hardened hypervisors that will cope with this problem.
In case you want to give it a try, here is a useful guide from Wilson Louie on how to run applications in DeCloud.
On-chain Governance / Voting / Proposals
Governance in blockchains allows token/stakeholders to vote on proposals that will shape the blockchain platform’s future and act as a signal for the next steps.
Those can be related to the release of funds on new projects, implementation of new chain upgrades, or modification of blockchain parameters that can even happen dynamically without any code change.
Stakeholder’s votes/decisions are recorded in the blockchain and immutable.
Interoperability allows blockchains build on the same SDK to communicate with each other clone of the same blockchain. It’s like the IP protocol used on the Internet, which is a set of standards that allow various devices to communicate with each other, exchange data, and utilize their services.
Cross-chain communication allows even more. Blockchains having cross-blockchain capability can communicate with almost any other public blockchain (some conditions must be met). You shouldn’t confuse this with bridges, which are custom for each chain-to-chain connection, so the number of those bridges grows geometrically.
Cosmos Hub can communicate and exchange data between Bitcoin and Ethereum, or any others, even though those blockchains are very different and alone do not have such a capability. Independent blockchains are connected to Cosmos Hub by Peg Zones. So any other blockchain connected to Cosmos Hub can communicate by single protocol (IBC) with all other interoperable blockchains or cross-chains.
I’m using Cosmos as an example because it’s the only working implementation of such a concept at this moment.
This is one of the most important capabilities as it connects independent blockchains that can not normally talk to each other due to different algorithms, block composition, guarantee mechanism, and consensus.
Scalability is a problem for most chains as each network’s total capacity is limited, and as network transactions grow, you are closer to reach its limits.
- Increasing Block size — larger block can accommodate more transactions, but this is not an ideal solution.
- Lightning network (layer 2) — limited use-cases, more of a workaround for specific needs. You are establishing a channel between two entities and taking data off-chain (concerning). When the channel is closed, you will write the final state into a blockchain.
- Sharding — splitting the blockchain into individual shards. Normally each node on the network stores all states, which considerably slows transaction. Sharding allows that some specific addresses will be stored only in the specific group of nodes (shards), and so those states do not need to be stored on all nodes. It is the same approach that is used in database optimization.
- * Sharding can be a high-security risk for PoW chains. 51% attack in the chain with 10 shards actually cause that you need to control only 5.1% of node power to perform the attack (within one shard).
- Segmentation/Zoning — through interoperability, you will offload key services or resource/transaction-intensive parts into a separate chain, which is connected to your main chain. It’s like having a Web, Application, and Database layer on separate servers instead of having all roles on one machine (main chain). If you need to scale, you will build another zone/machine.
- * Zoning does not damage security
- * Zones can scale horizontally
- * You can build custom, mission-specific zones and connect them to the main chain
- * Connected zones can keep their own state, which does not need to be stored on the main chain
Chains Security Model
As we are comparing only Cosmos and Polkadot on this level, I will explain the difference between them.
- Polkadot is using a shared security model.
- Parachains have sovereignty over their machine state, but security is controlled by the Relay chain.
- Validators in the Relay chain have the final say over state changes in all parachains
- Security of parachains is dependent on the security of the Relay chain, which can impact all other parachains in the ecosystem.
- Zones are independent and are securing themselves.
- They run their own consensus, and validators are responsible for security, which gives the zones full control 👍
- They can communicate (using IBC protocol) with each other over Hub or directly.
- Security of the zones is allowed to fail without it affecting every other blockchain in the ecosystem 👍
- Small projects, which are fine with the shared security model, can prepare themselves for the new shared chain planned in Q4 2021
Slashing represents an incentive to act properly and behave honestly within the blockchain ecosystem. If an adversary will violate rules or jeopardize other participants’ safety, it will result in a loss of adversary stake percentage. It also works as a measure to prevent nothing at stake problem.
In simple words, if you act maliciously, you will automatically lose a portion of your funds, which is an effective countermeasure.
Cosmos slashing is a part of a chain protocol, and historically there was one event where it shows its effectiveness. The technical issue of one validator caused an unintentional double signing. Stakes were automatically slashed by 5%, and the node was removed from the active validator set.
Polkadot’s slashing mechanism is a bit more complicated. You have in chain collators, validators, nominators (delegators), and fisherman nodes. Polkadot assumes that fisherman will identify compromised blocks and slash validators that are misbehaving. Unfortunately fisherman incentive model works in a way that it gets rewarded only in a case when it finds misbehavior. This business model is not profitable in the honest network. If there will not be enough fisherman nodes in the network, there is a higher chance of a successful attack when a compromised parachain block is overseen and written on-chain. I hope this model will change.
Blockchain Platforms Comparison (BPC)
Ethereum 2.0 hasn’t been considered yet, due to an early-stage project.
I plan to update the table on yearly basis, so you can bookmark this page or follow me on Twitter.
Missing some platform? Vote for it here: BPC Poll
Response on feedback from the community
Feedback: Your comparison seems to be slightly biased against Bitcoin, maybe you can add a column about immutability and maturity.
Response: I fully respect Bitcoin, as it was the first cryptocurrency and first mass decentralized network using PoW. That’s where my sympathy ends, as the data in the table are real and unbiased. It does really consume as much energy as the Czech Republic, and If you will add 10x more resources it will consume even 10x more energy (due to the internal algorithm which increases difficulty). The maturity factor is not important in my opinion, or do you think the maturity of e.g. Ford does matter in comparison with Tesla? Bitcoin was first, that is the only reason why so many people are involved in it, but just because they didn’t read about others from newspapers.
Feedback: Cardano vs Polkadot comparison — Cardano also plans to provide smart contracts, but it’s treated differently in the table.
Response: The condition for all chains was if a smart contract exists, other capabilities dependent on the smart contract can be in a “Planned” state if the plan is to deliver them within 1/2 year. Unfortunately, Cardano is promising those features for the last few years and it seems that even Goguen might not deliver full framework/EVM. Polkadot promised to deliver other “Planned” capabilities by March 2021, if not, I will change them to “No” as well.
Feedback: According to a Twitter post Polkadot can handle 1 million transactions.
Response: This is misleading information. The Relay can handle 1,000 TPS (as stated in the table), so this post tried to say that if you will have 1,000x parachains, you can have (1000×1000) 1,000,000 TPS in total, which is the wrong calculation. This is not how it works and especially not in Polkadot architecture where Relay is controlling the security of each parachain (effectively a bottleneck).
Feedback: You are missing there Kyber and Uniswap
Response: No, it’s there. Both are ERC-20 tokens, so they run on Ethereum. There is nothing special about them.
- DONT trust anyone who is giving you advice on “best crypto”, the crypto segment is full of scammers and fraudsters
- DONT invest in coins or hype. Invest rather in good technology with potential
- DONT take any investment advice from strangers, especially not on channels where is allowed price discussion/speculation
- DONT forget that the interest of the advisor biases any advice
- DONT invest/speculate during a bull run when the market is highly volatile, and DONT panic
- DONT trust anything that promises high returns (you are the sheep in this game)
- DONT trust any stranger who contacted you via direct message (DM)
- DONT believe in price predictions from price predictors/prophets, they are all wrong
- DONT keep your coins on a centralized exchange (not your keys, not your coins)
- DONT give anyone your private personal information
- DONT tell anyone how many coins you have
- — — — —
- DO use critical thinking
- DO your own due diligence and stay vigilant
- DO read high-quality information only from trusted sources
- DO read platform-specific information only from official channels/websites
- DO use multi-factor authentication (2FA/MFA) for every service. Generated OTP codes or U2F is superior to SMS codes.
- DO keep your private keys/pass/seed phrase in a secure place, ideally use hardware wallets like Ledger, so your keys will not be stored in your computer or mobile phone (Ledger do support FIDO U2F)
- DO use good endpoint protection on your computer and mobile phone to eliminate some attack vectors against you (phishing, drive-by, ransomware, vishing, banking malware, crypto wallet stealers, …)
This is not investment nor speculation advice. Always do your own due diligence, stay vigilant, and don’t trust strangers.
Documentation of some projects is poor. If you spot some wrong or misleading information in my article or comparison table, please let me know. I’m available on Twitter, here on Linkedin or just leave me a comment here.
Thank you for reading