TL;DR - Avalanche Pros and Cons Summary
This one’s pretty long, so I’ll start with the TL;DR:
Pros:
Low transaction costs. It's cheaper than Ethereum and even a little cheaper than most L2s, but it's more expensive than cheapest blockchains like Polygon, Solana, and Algorand. And it can get considerably expensive when congested.
Very-fast Deterministic Finality: 2s, which ties for the fastest
C-Chain is EVM-compatible: So it's super easy for other EVM/Solidity devs to move to Avalanche.
X-Chain is orders of magnitude faster and more efficient than Bitcoin, though that's not much of an accomplishment nowadays since everything is technologically better than Bitcoin.
High fault tolerance: Avalanche consensus has high fault tolerance. Avalanche Consensus makes it practically impossible for malicious transactions to happen on-chain unless ~80% of validators are malicious.
Warp Messaging: This is a recently-released cross-chain messaging protocol inspired by Polkadot's XCMP and Cosmos Hub's IBC. But unlike the others, it can be used to send ANY type of message, with the downside that it's not entirely trustless.
DeFi Kingdoms: Avalanche has 1 blockbuster app, DeFi Kingdoms (DFK), which migrated from Harmony One in May 2022. It accounts for 90% of the total activity on the Avalanche ecosystem.
Cons:
The X and P Chains are barely used, add extra complexity to the ecosystem, but required by protocol. They get 0.1 TPS of activity combined. Non-Avalanche wallets don't support them.
Moderate throughput: 70 TPS (gas target is 15M gas per 10s moving-window) for the smart contract C-Chain compared to 60 TPS for Ethereum L1. So it's only marginally faster than Ethereum and much slower than Polygon PoS (300+ TPS). The marketing saying that Avalanche is 4500 TPS is misleading because that only applies to the P and X chains, but everyone uses the C-Chain.
Subnets have incredibly-bad incentives: Subnets are neither L2s nor sidechains. Subnets help the security of the primary network, but get nothing in return. The economic incentive is completely backwards. You have to pay 2000 AVAX to set up a validator to provide security to the primary network. The only benefit of building a subnet is that you get to rent Avalanche's existing validators, but no one is doing that. In fact, it's a security risk. There are backwards economic and security incentives to join as a subnet vs building your own separate network. Subnets would be better off building on Ethereum, Polkadot, and Cosmos.
Consensus protocol is complex and likely inefficient compared to BFT: Avalanche Consensus was designed for DAGs, but they forced a variation of it (Snowman) on the linear C and P chains. It requires 20 rounds of back-and-forth messages between nodes compared to 1 round for classical BFT. It's needlessly complex for a linear blockchain.
Very low adoption and usage: C-Chain currently gets 1/6 of the daily transaction count of L1 Ethereum, and it would be worse if Ethereum wasn't already hitting its gas target.
Low Liveness: Avalanche has high security at the sacrifices of liveness. The Liveness threshold for stopping the network is 20% bad validators. It only takes a single organization to take down the entire network (though it would be economic self-sabotage). Ava Labs by itself owns 20% of the total stake while all the German validators own 40%.
Poor tokenomics that are unsustainable in the long-run: The AVAX token is very inflationary (220% in 2021, 27% in 2022). It’ll eventually hit the supply cap and will need to survive on insufficient transaction fees. The burn amount needs to be 1-2 orders of magnitude greater to offset issuance if it wants to maintain a supply cap without greatly reducing token issuance.
Too many competitors: Avalanche's C-Chain was often marketed as an L1 "Ethereum killer", and its subnet ecosystem is sometimes marketed as a Cosmos Hub and Polkadot parachain competitor. However, they're already way ahead of Avalanche in terms of adoption and marketcap, and Avalanche doesn't do noticeably better than any of them.
Avalanche is a Jack of some trades, Master of none. It's not enough to stand out in an already-crowded market.
End TL;DR
Avalanche Deep Dive
Avalanche is blockchain ecosystem that consists of 3 built-in chains (C-Chain, X-Chain, P-Chain) and several independent subnets (currently 3). When people talk about the Avalanche blockchain, they most often mean just its smart contract C-Chain.
Currently, Avalanche is mainly used for DeFi Kingdoms, which accounts for over 90% of all daily transactions on the entire Avalanche ecosystem.
The 3 Primary Network Chains
Avalanche's primary network is divided into 3 built-in chains and does not include the subnets.
If you're using Metamask, any EVM-compatible wallet, or any exchange, you're using the C-Chain. In fact, most people don't realize the P and X chains even exist.
C-Chain - Contract chain:
This is the main chain everyone thinks about when they talk about Avalanche.
It's responsible for 95% of Avalanche primary network's daily transactions
Linear Chain with account transactions like Ethereum
Uses Snowman consensus
Used for EVM-compatible smart contracts and DeFi apps.
Compatible with most EVM wallets
P-Chain - Platform chain:
Linear chain with UTXO-like transactions
Uses Snowman consensus
Used for staking, validators, and managing subnets.
Only accessible with Avalanche wallets.
X-Chain - Transaction chain:
DAG structure with UTXO-like transactions
Uses Avalanche consensus
Used for sending and receiving assets.
Only accessible with Avalanche wallets.
Fast and uses AVM.
Orders of magnitude faster and more efficient than other UTXO DLTs like Bitcoin and Cardano
AVAX: All 3 built-in chains use AVAX as their native currency token.
Poor Wallet support: The C-Chain is compatible with all EVM wallets, but the X and P chains aren't. You have to the use an Avalanche wallet to move tokens between the 3 chains because other wallets won't recognize the X and P chains. But native Avalanche wallets are pretty bad in that you can't generate additional accounts with them. You have to switch to an EVM-compatible wallet to generate additional addresses from the seed.
Consensus Protocols
Avalanche Consensus (X-Chain)
Complex Protocol: Avalanche consensus is very complex. If you really want to understand it, watch the 40-minute video in the link (possibly multiple times).
ELI-12 explanation: Each node picks a random set of validators (based on staking power) and asks them whether to include a transaction (technically vertices) into the DAG. If a quorum (14/20) validators agree to that transaction, a consecutive counter is increased. Each transaction needs 20 consecutive above-quorum (70% agreement) rounds in order to be added.
Works well with high fault tolerance when there are no conflicts and very few transactions: As long as there are no conflicting transactions, consensus will take ~20 or more rounds for each transaction. If there is a conflicting transaction, the consecutive counter starts all over. If there are a lot of conflicts, Avalanche becomes extremely inefficient and could lose liveness. Fortunately, the X-Chain is dead and currently gets 1 transaction every 2 minutes, so it doesn't have to worry about conflicts.
Needs higher percent of honest validators: Avalanche Consensus normally needs a high percent of honest validators who don't submit conflicting transactions: ~80%. Otherwise, it can fail liveness due to too many conflicts.
Snowman Consensus (C-Chain and P-Chain)
The C and P Chains use Snowman Consensus, a variation of Avalanche consensus built for their linear, non-DAG blockchains.
Uses blocks instead of a DAG: The main difference is that conflict sets are based on blocks instead of individual transactions. They also use mempools to organize transactions in their blocks. It uses Snowman++ to help avoid conflicting block proposals.
Likely inefficient compared to BFT: Avalanche Consensus is a complex protocol that was designed for DAGs, not blockchains, so it's not likely to be efficient for the C-Chain. It takes a minimum of 20 rounds of back-and-forth messages between nodes to reach consensus. And if there is a conflict on the 19th round, it starts all over. Classical BFT uses larger committees but it only has 1 round, so it should be much faster. Classical BFT is also much more straight-forward in design.
Validators
Validator Count: Avalanche has 1200 active validators (Feb 2023)
Reward requirements: There is no slashing, but there is an 80% uptime requirement to get rewards
Unknown Identities: It's hard to tell their identities because they have no names (aside from the 'Genesis Entities', which belong to Ava Labs).
High security, but low liveness: It's pretty hard to calculate the Nakamoto Coefficient because we don't know the identities of the validators. They spin up a new validator every 3M AVAX (staking limit). The total stake is 216K, and it needs 20% to compromise liveness (percent of malicious actors needed to stop a network) and 80% to compromise fault tolerance (percent of malicious actors needed to produce bad transactions).
A single entity could take down the entire network: Despite having 1200 validators, the largest validator organization (Ava Labs) could single-handedly compromise liveness of the network. Back in 2021, Ava Labs held 46% of validator staking power, making it completely centralized. This is now down to 20%, which is still a very large proportion. Of course, they wouldn't sabotage their own network. Of the remaining 50 largest validators, about half of them are located in just 3 German cities. This is very unusual considering that Germany only accounts for 6% of Ethereum validators. So the German validators combined could easily take down the Avalanche network too. But there isn't any obvious economic incentive to do so given how much they're staking.
Fast 2s finality for built-in blockchains
All 3 Avalanche networks have a fast 2 sec irreversible finality.
So in terms of block times, it's as fast as Polygon PoS, but without the reorgs. And it's 6x as fast as Ethereum. That makes it one of the fastest blockchains in terms of finality.
Maximum throughput analysis
Throughput: 71 TPS
Calculations: I'll be basing throughput measurements on basic 21K-gas transfers. This is so that I can make an equivalent comparison with other networks.
C-Chain - 71 TPS: This is the important one because 95% of Avalanche transactions are on the C-chain and most users only ever touch the C-Chain. The C-Chain's 2-sec blocks have an 8M gas limit. With 21K gas transactions, that means a theoretical max throughput of 190 TPS (compared to 119 TPS for Ethereum). However, that's unsustainable due to EIP-1559 gas prices, which keeps its throughput artificially low. C-Chain's modified version of EIP-1559 where its gas target 15M gas every 10s. This means its actual max throughput for basic transfers is 71 TPS (compared to 60 TPS for Ethereum). This is noticeably slower than Polygon, which can do ~350 TPS at its own EIP-1559 gas target.
X-Chain - 7000 TPS: Uses Avalanche VM. In ideal test situations (150 nodes, 10kb blocks), the X-Chain can get up to 7000 TPS. Even when you increase the number of validators to 2000 (it currently has 1200, about the same number as Algorand), it still gets around 6900 TPS due to the DAG network structure. This chain is only seeing under 2000 transactions a day, so it's only using 0.0001% of its capacity.
P-Chain - 4500 TPS: Its purpose is for governance, staking, validators, and subnet management, so it'll probably never get near 0.01% of its 4500 TPS limit.
Combined throughput: The stats dashboard often shows TPS in the low hundreds, but this is also misleading because it's actually the combined throughput of all Avalanche networks and its subnets. And it's mainly from the subnets. When I report Ethereum throughput, I don't add throughput from the Polygon and BSC networks.
Misleading throughput marketing: Any marketing where you see Avalanche being advertised as a 500+ TPS network (I see 4500 being the most-quoted number) is extremely misleading. Those high figures are only for the X and P networks, which really don't matter at all since they're both under 0.01% of their usage limit. They will never hit that limit since C-Chain is what everyone is using, and it’s the bottleneck.
The best way to describe Avalanche's throughput is that it's only 20% faster than Ethereum L1 on average, but it can burst up to 60% faster than Ethereum for brief moments before gas price starts skyrocketing due to its own version of EIP-1559.
Very little actual activity
C-Chain: 150K daily transactions (1.5 TPS of actual activity)
X-Chain: 1K daily transactions (0.01 TPS of actual activity)
P-Chain: 10K daily transactions (0.1 TPS of actual activity)
Only the C-Chain gets any noticeable activity. People make fun of Cardano for only having 60M transactions since its genesis, which is the equivalent of just 2 months of Ethereum transactions. Well the P and X chains combined have only had 6M transactions, the equivalent of 1 week of Ethereum transactions.
Avalanche would've done better if it had dropped the P and X chains and focused only on the C-Chain. The P & X chains add so much additional complexity. Only Avalanche wallets recognize those networks. I have to use separate blockchain explorers to view transactions on them. It's unnecessary complexity that no one is benefitting from. But I suppose if Subnets and Warp Messages become very popular, then the P chain would be useful to offload activity to it.
The same could be said for subnets, which I'll get to later.
Subnets
Subnets are the crappier version of Polkadot Parachains and Cosmos Hub with negative benefits.
Up until Warp Messages were introduced in Dec 2022, there were only negligible benefits for building Subnets.
What is a subnet (without the marketing BS)?
Originally, Avalanche "Subnets" referred to independent groups of validators, but that was confusing as hell. To make things even worse, Avalanche documentation often switches between definitions and uses it to refer to the independent blockchains matched with those validator sets. Thus, it would mean either.
Subnets are sovereign/independent blockchains, mainly used for application-specific purposes. They are not Layer 2 despite all misleading marketing documentation suggesting that they are. They're not even sidechains. Polygon PoS at least uses Ethereum for its MATIC contract, has a dozen contracts on Ethereum required for the security of its own blockchain, has staking on Ethereum, and has 30-45 minute checkpoints on Ethereum. It needs Ethereum for its security model. Subnets are not like that.
Subnets can rent Avalanche primary network's validator sets. But in reality, this doesn't happen. Instead, all subnets do is allow their own validators to validate Avalanche's primary network, which benefits the primary network but not the subnets.
The only real benefit Avalanche provides for subnets is its recently-released Warp Messaging, which is somewhat similar to Cosmos's IBC and Polkadot's XCMP. There are a few differences, which I'll cover below.
There are currently only 3 live subnets (DeFi Kingdoms, Swimmer, and Dexalot. Loco Legends has no activity.) They each have 8-10 validators and do not share any validators.
Incredibly bad incentives for building subnets
Backwards financial incentive: It costs 2000 AVAX to set up each subnet's validator set, which is about $400K USD for the 10-validator subnet commonly-used. $400K isn't expensive for a validator set, but the economic incentive is backwards. If I'm setting up validators, why am I paying you? Shouldn't you be paying me to use my validators if I'm providing you additional security?
Backwards security incentive: Subnets provide additional security for Avalanche, but they get nothing in return. They're not rollups or sidechains. All they get in return are shared development and blockchain explorer tools, which are really weak incentives. They have to use off-chain bridges to connect back to Avalanche's C-Chain.
Low interoperability: Subnets are completely independent from each other and don't share execution protocols, storage, or networking. There's no requirement for them to be interoperable or use the same gas tokens. For all practical purposes, they're completely independent.
Subnets aren't sharing validators. Using other people's validators is a security risk.: Validators from other subnets can validate each other's blockchains but none of the 3 subnets are doing this. You can look at their subnet pages and compare the validators there with their own blockchain explorer validators. You'll find that there are no extra validators from other subnets. This makes sense since there is no financial or security incentive to use other organization's validators. Plus, it's a security risk. What is their incentive to be honest? There is nothing at stake for them to be honest for us. I can create an off-chain incentive, but this is really roundabout when I can just acquire my own validators without needing Avalanche.
Warp Messaging: Warp Messaging, just released in Dec 2022 in GoAvalanche 1.9.5, is the only significant benefit of subnets. It's a cross-messaging protocol inspired by Polkadot's XCM and Cosmos's IBC protocols. You can use it to send any type of message between subnets using the P-Chain. This allows for more-secure cross-chain bridges and more-efficient oracle blockchains (like what Cosmos and Polkadot already have). You can send any non-standard bytedata over Warp Messaging, not just valid messages, so there is still trust involved. The biggest weakness is that you still have to trust that 1) the messages being sent are correct (requires immutable, bugless contracts) and that 2) the validators on the other subnet are signing correct messages and not losing any of them.
The 3 Subnet blockchains:
DeFi Kingdoms (DFK) launched an Avalanche subnet in March 2022 and had $150M in assets in the PoA/PoS subnet. It's currently seeing about 18 TPS of activity and has 5K active addresses. It uses a bridge to move AVAX to the DFK chain. DFK is the most important dApp on Avalanche. In fact, the DFK subnet accounts for 90% of the activity on the entire Avalanche ecosystem.
Crabada is a decentralized game in which every action was published to the Avalanche network. It was currently eating up 30% of Avalanche transactions at its peak, and each action cost ~$1. It eventually oved to its own subnet, Swimmer, where it now has 0.2 TPS of activity and 370 active addresses.
Dexalot is a very basic DEX which only has 6 trading pairs.
Tokenomics
Transaction costs are cheap, but subsidized
X-Chain and P-Chain ($0.02) transaction fees are fixed at a low 0.001 AVAX, which are currently $0.02 USD (Feb 2023). During the peak of the bull run, it was 20x more expensive.
C-Chain ($0.02) currently has a 25 nAVAX minimum gas price. So basic transfers are in the $0.01-$0.03 range, making them a little cheaper than most Ethereum L2s. In the past while Crabada was still active on mainnet, basic transactions (e.g. transfers/swaps) were between $0.30 to $1.5. When Crabada moved to its own subnet, alleviating congestion, transaction prices quickly fell to around $0.05 on the C-Chain.
Currently, this is cheaper than most Ethereum L2s ($0.05 to 0.10 range) but more expensive than Polygon PoS and Arbitrum Nova (both ~$0.01).
Costs are subsidized: Note that transaction fees are kept low because validators are paid by staking rewards, which creates high inflation (over 10%) on the circulating supply.
Tx Fee Burns: The entire transaction fee is burned, but the current burn is not enough to offset inflation due to lack of activity.
Poor tokenomics and high circulating supply inflation
The Avalanche’s security is currently sustained by high inflation. It pays its validators through staking. Eventually, it will hit its 720M supply cap around July 2030, at which point all subsequent fees will need to be paid through transaction fees. The problem is that transactions fees are nowhere near enough to sustain its current security budget.
Supply inflation: Circulating supply of the AVAX token has increased by 220% in 2021, followed by a 27% increase in 2022 ($3.5B).
The circulating supply is currently only about 45% of its maximum supply cap. The AVAX can dilute its supply by another 120%. Validators are paid by staking rewards, and those staking rewards account for a HUGE amount of annual inflation.
Burn rate is 500x lower than issuance rate: Transaction fees are burned, but the transactions fees are so low that the burnt amount is unnoticeable. Burns are in the millions of dollars while issuance is 500x greater in the billions of dollars. Compare this to Ethereum, which has a small amount of deflation.
Estimated Supply Growth: AVAX issues 45M tokens per year starting at 2025, which means that it will reach its 720M max supply in Apr 2030. Unless fees magically grow 100x higher by 2030, AVAX's supply distribution model is going to break, or its security budget will need to decrease significantly. Most likely, it’ll be the latter.
If you spot any errors: Please let me know, and I'll review them.