What Network to Choose?
It’s the question everyone will ask you if you tell them you’re building a dapp: what network are you building on? There are pros and cons, user experience and developer support, and the underlying dynamics of where a network falls on the blockchain trilemma.
The answer to this question is, at the end of the day, one you and your team have to make. The good news is that no matter the path you take, there’s a toolset for you within the Consensys stack. Let’s take a look at the way the decision tree branches out from this node:
Genesis Decision: Other People’s Networks, or Roll Your Own?
This is the nexus of the issue: do you want to launch your application on an existing public blockchain network, or do you have a use case that requires you to launch on a private, permissioned, or otherwise customized implementation of blockchain architecture?
When we talk about these networks, we’re referring to smart contract-enabled blockchains; after all, that’s how your dapp has the functionality you want it to. If you’re thinking about integrating with a blockchain that doesn’t have that functionality, that’s still something the Consensys stack can help with–and you can read more about that in the Snaps section below.
Many projects that are launching a consumer- or end user-focused app choose to launch on public networks: after all, that’s where the users already are, and that’s where money and development time is being spent in creating and improving UX. But which one is the best fit?
It can be hard to parse through the marketing pitches of different blockchain networks and understand their different offerings at a technical level. This Infura blog post on the topic should be your next stop along this decision path.
Once you’ve made the decision, though, the public network path is well-paved for devs with Infura’s connectivity and features, and for users with MetaMask’s security and innovation.
It may be, though, that you’re concerned about privacy, transaction speed, or unreliable gas costs on public networks. These reasons, amongst others, lead teams to look towards a more customized solution that remains interoperable.
A lot of the headlines about web3 tech center around the drama that takes place on public chains, from the early days of ICOs to DeFi and NFTs. But what the technology itself enables is more subtle, and in some ways, more revolutionary: an immutable ledger shared between parties whose interests may or may not align offers a foundation for "objective trust", far surpassing traditional siloed databases.
The implementation options for this type of network are largely determined by your needs; specifically, are you launching a single application, or a number of them? Would you describe your project as a monolithic UX, or an ecosystem of different, inter-related applications?
If your answer to that question was ‘just one app’, rather than ‘an ecosystem’, then looking into the option of appchains is a good next step. If you need a deeper sense of what this looks like in practice, Infura’s got a blog post walking you through some of the ways that projects have approached building a blockchain environment tailored to their app’s needs.
Another way of doing this is by building a Layer 2 or Layer 3 network, also known as a "rollup". The implementation details of this option are diverse, but essentially it consists of creating a network that optimizes for the execution of your application, and relies on regular submission of transactions from your network to Ethereum to ensure the validity of those transactions. You might hear people talk about "Focusing on execution, and rolling up for security", or "modular blockchain architecture"; this is what they're referring to. By breaking up the blockchain's functions into separate networks that sync state information back and forth, developers are able to optimize for the functionality and UX they're looking for.
And to be clear, a Layer 2 chain rolls up to an L1, which in this context is necessarily a monolithic blockchain, one that includes both security and execution functions; an L3 would roll up to an L2, likely to benefit from further cost reduction.
Do you have a vision for a whole class of applications that share a common substrate? That’s possible with blockchains, and is the draw for many to the option of building a custom sidechain. It’s more flexible than an app-specific chain, but requires more thought regarding consensus and security.
This, too, is an area where an Layer 2 or Layer 3 network could be a beneficial, and alternate, solution. If the environment you're looking for doesn't require, say, a type of cryptography that makes the transaction data incomprehensible to the L1 when you roll it up, the options with rollups are quite broad. Consider ETHStorage and AliceNet, both of which are L2s without an EVM at all, and are focusing on providing data storage capabilities to the Ethereum ecosystem.
MetaMask, Truffle, and the rest of the Consensys stack were originally built for the Ethereum blockchain and those compatible with it: Ethereum Virtual Machine, or EVM, compatible chains. EVM architecture is used broadly throughout web3: Polygon, Arbitrum, Optimism, Avalanche, and the Binance Smart Chain have established user bases with heavy traffic on a daily basis. Users interact on these chains using out-of-the-box MetaMask functionality.
What about non-EVM chains, though? What about Algorand, or Solana, or the Polkadot network? What about StarkNet, which is actually an Ethereum L2, but not EVM-compatible? What about Bitcoin?
Starting in 2021, the gap between these networks got a lot smaller; jump to our article on MetaMask Snaps to see how you can bring any cryptography you want to the most popular web3 wallet.
Crossing the branches: Rollups
As indicated above, one solution that is becoming more popular is that of a rollup. The technology isn't "new", if you're counting in crypto time; in December 2021, Mastercard partnered with Consensys to create a bespoke, privacy-focused blockchain environment that rolled up to Ethereum. The following spring, Arbitrum and Optimism were the first two large-scale "L2s", or Layer 2, networks to launch with the express purpose of scaling Ethereum.
It didn't take developers long to realize the advantages not just of an L2, but of building application-specific Layer 3 networks that roll up to those Layer 2s.
Suffice to say that at Linea, we're very excited to see how this trend develops; keep an eye on this space for more information.