Subnets: The Secret Weapon of Avax Scaling
Subnets (short for “subnetworks") are a feature on Avalanche that allows anyone to create their own L1 blockchain (or DAG) which can also operate as a L2 for new usecases. A subnetwork can be a single customized blockchain, or a group of customized blockchains that are validated together. The “default subnet" is the base layer of Avalanche, and includes the P-Chain which manages subnetwork topology, the X-Chain which is the UTXO-powered high-scaling exchange chain, and the C-Chain which is a EVM-powered contract chain.
The History of Scaling
Bitcoin was the first cryptocurrency to become successful, and started out with predictable block times and low fees. This all came to an end however once the block size limit was exceeded. There was a debate on whether or not to increase this limit, and if so then by how much, and the Bitcoin community decided not to, leading to the creation of Bitcoin Cash. Before the creation of Bitcoin Cash, a previous remnant of the Bitcoin community broke off to start Ethereum, which would include new features that the Bitcoin developers would not allow, such as complex smart contracts.
The majority of the Bitcoin community decided that the best way to scale the blockchain was with L2s, so they invested into the long and ongoing process of creating and implementing the Lightning Network, while Blockstream created L2s with federated setups. The Lightning Network is far from perfect or complete, and it works decent for simple payments, but has failed to attract any significant form of adoption above on-chain bitcoin payments.
The Bitcoin Cash community increased their block size limit to 32 megabytes (instead of 1 megabyte), and has had mixed success. Initial stress tests implied that there were network difficulties with scaling to 32 mb, and later more experimental stress tests concluded much higher possible scaling. Adoption of Bitcoin Cash has been successful as a payment alternative to Bitcoin along with Litecoin, and its transaction volume is about the same as Bitcoin’s transaction volume. Fees on the network have stayed low, but true stress on the network has yet to be fully seen.
The Ethereum community uses more complex L2s for scaling, and uses a wide range of different solutions. None of these L2 solutions have made Ethereum fees cheap, the fees are still sometimes dozens to hundreds of dollars for simple payments. Ethereum also sometimes increases on-chain capacity, but this area has slowed down as the costs to nodes are large compared to the benefit to users.
Other cryptocurrencies, such as XRP, have experimented with Classical Consensus to try to scale their blockchain. While some improvements have been made in terms of throughput, the ability to scale the number of nodes is usually lost.
Scaling With Subnets
Subnetworks offer a new form of scaling previously untouched by prior blockchain experiments. A subnetwork works kind of like a L2, but is a lot more robust, feature-rich, and decentralized. Subnetworks are also similar to sharding, as they create new separate but connected instances of the same blockchain. The difference between sharding and subnetworks however is that subnetworks are algorithmically generated and utilized, and subnetworks are launched customly by users as needed.
Subnetworks do multiple things for scaling. The first thing they do is allow competing ideas to coexist for a single cryptocurrency. For example, say you have a couple sharding ideas, but they are incompatible. You could implement two different subnets with different sharding schemes, or a single subnet with two different subchains that each try a sharding scheme (so that a common validator set validates both). You can also launch a subnet for raw on-chain scaling and larger nodes, or other experimental schemes.
The second thing subnetworks do is allow for unlimited chain creation for different niche usecases. The second one chain gets used up, you can just launch another one. Different validators can validate different subnets, while they all validate the default subnet. The only scaling concern here is scaling the ability to make cross-chain transfers managed on the P-Chain, which operates efficiently at thousands of transactions per second. Subnets could also launch their own sub-subnets, using the same design principles, if necessary.
The great thing about subnets is you never run out of them. You can just keep creating new subnets every time a scaling limit is reached. There is no real disadvantage to doing so aside from convenience. Security is maintained by subnets having their own token that must be staked in conjunction with AVAX, otherwise they are just marginally less secure than the default subnet. Each subnet with a unique token offers a yield farming DEFI opportunity to validators with stronger nodes, as they can buy tokens to stake and accrue additional interest from subnet fees.
The Best Of All Worlds
Subnets may not be a simple magic bullet for scaling once and forever, but it represents the unification of all cryptocurrency scaling ideas combined into one grand interoperable ecosystem.
On the default subnet we’ve optimized for decentralization while having a good scaling starting point. The X-Chain offers about 4500 tps and the C-Chain about 1000 tps, which is a lot higher than 7 tps for Bitcoin and 15 tps for Ethereum.
On future subnets we can try sharding schemes as well as on-chain scaling. Sharding optimizes for scaling at the expense of some security, and on-chain scaling optimizes for scaling at the expense of some decentralization. The expenses here aren’t always so bad if implemented correctly, and are plenty safe for day-to-day payments.
There can also be federated (centralized) chains which distribute trust among a few members and give high scalability in return for legal compliance and legal protections, perhaps things similar to XRP or Libra.
Another subnet scaling idea could include subnets that move transactional throughput off the consensus layer and on to a purely cryptographic layer with simple network-gossiping, where for example double spends are prevented by burning coins where a double spend is non repudiably attempted, and then the chain is “settled up" every so often. This would optimize for scaling, and could even optimize it in a very major way, at the temporary expense of finality.
Or perhaps scaling comes in the form of many niche subnets that have no intention for scaling everybody, but scaling becomes the emergent quality of having variety. All of these ideas can and will be tried simultaneously, and the best ideas will win out over time. But we don’t need separate blockchain ecosystems to try these ideas, we can try them all on Avalanche and experience the best of all worlds.
Regardless of what your favorite blockchain scaling strategy is, Avalanche has you covered. A lightweight and decentralized base layer is maintained, and there will be subnets for sharding, on-chain scaling, and enterprise usecases. Anyone can launch their own subnet, and because there can always be another subnet, there can always be more scale.
L2s are not necessary on Avalanche because subnets are a functionally superior alternative to L2s with all the benefits and none of the centralization, but certain niche L2s are already launching support for Avalanche, including implementations of ZK Rollups and blockchain startups such as Cartesi who provide a programmable data layer.
Avalanche allows for the scaling strategies of every different cryptocurrency in unified simultaneity. There is no need for heated debates about what kind of long term scaling solution is best, because you can just use or launch whatever you want and switch whenever you want, using the same coin and having the same network effect.
Avalanche is the protocol that allows simultaneous scaling of both transactional throughput and nodes, and subnetworks are the protocol of bridging all scaling solutions and niche usecases into a single interoperable ecosystem. Together, its the best shot decentralized cryptocurrency will ever have at scaling.
Avalanche is an open-source platform for launching decentralized finance applications and enterprise blockchain deployments in one interoperable, highly scalable ecosystem. Developers who build on Avalanche can easily create powerful, reliable, and secure applications and custom blockchain networks with complex rulesets or build on existing private or public subnets.