A Web 3.0 Survival Guide for the Overwhelmed Dev — Part 1
October 28, 2021 was a special day for many people. For those people on the ‘outside’, Facebook changed its name to Meta and announced that it would be focusing on bringing the ‘metaverse’ to life. Those on the ‘inside’ vented their frustration regarding this announcement on forums like Reddit, claiming that big corporate is trying to destroy the dream of Web 3.0.
I doubt at this point in time that anyone has not heard of cryptocurrency or popular memecoins like Doge or Shiba Inu. You may have even been caught up in the hype and bought some bags of these coins. But, this isn’t what this article is about.
Recently, a very talented developer friend of mine asked me how to approach the Web 3.0 world. What follows is a (much) more organized version of what I shared with him about the current problem areas he can tackle in the exponentially growing world of Web3.0. So if you’re looking to navigate a primer on the tech itself rather than simply trade coins, this is for you.
What is Web 3.0?
Web 3.0 is essentially the next evolution of the current internet with a twist. A big one. The idea behind Web 3.0 is the transfer of ownership and control from corporations to individuals. So rather than companies like Google, Meta(Facebook) and Amazon having your data and finding loopholes in data privacy laws, in Web 3.0 you would have complete ownership of your digital identity, funds and information. The core of Web 3.0 is decentralization, and this decentralization is achieved via blockchain technologies.
Bitcoin, Ethereum, Solana and Cardano are all examples of blockchain technologies. What’s true of all of these blockchain technologies, with Bitcoin as an exception, is that they’re trying to create the infrastructure for Web 3.0. All of these technologies provide a way for users to interact with each other, and to have these interactions recorded in a distributed ledger/database and verified by a consensus mechanism, and this in turn makes them immutable. What some of these technologies then do is build additional logic on top of the infrastructure which allows for more complex transactions to take place. It’s not all butterflies and rainbows though. Early iterations of blockchains encountered a problem that persists to this day.
Problem 1: The Blockchain Trilemma
Decentralization, Scalability and Security. Pick two and compromise on the third. At first glance, it might not seem that these three aspects of a blockchain might be at odds, but let’s look deeper into it.
Decentralization: One of the main concepts behind blockchain. The idea that there exists a ledger containing records and transactions, and that exact copies of this ledger are maintained among different and distributed nodes. The more nodes or players that have copies of this ledger, the more decentralized the system is. Participant nodes agree on the validity of a transaction through what is called a consensus protocol. Most of these are algorithms that attempt to solve issues pertaining to the truthfulness and reliability of information, such as the Byzantine Generals problem. Some of the most popular consensus algorithms out there are Proof of Work, Proof of Stake, Proof of History and there are also some more clandestine ones like Proof of Space and Time. The more decentralized the network, the less corruptible it is and the more reliable the information stored on the network.
Scalability: The issue begins to arise when scalability comes into the fold. Scalability here refers to a blockchain’s ability to handle an increasing volume of transactions over time. The tricky part is that, because each transaction requires all or most nodes to agree on its validity before being committed to the blockchain, transactions tend to take time. Allowing for more throughput would require the agreement of fewer nodes, which reduces decentralization and security. This is because it is easier to corrupt a game played by a smaller number of players than a game played by many players. For reference, Bitcoin currently processes about 5 transactions/second and Ethereum is at about 15 transactions/second. Centralized payment providers like Mastercard and Visa are able to handle a much larger throughput, and a lot of Blockchain devs are hoping to reach the same figures one day.
Security: Out of the three, I would say this is the trickiest, simply because so many factors play into it. Any blockchain inherits the weaknesses of the language it was written in and the scripting languages used to manipulate it. The scripting language used for the Bitcoin network is not Turing complete, making it more secure but much more limited in terms of scalability. On the other hand, Ethereum’s Solidity is Turing complete, but some loopholes in smart contract code in its early days allowed for the siphoning of funds, as in the case of TheDAO. Ultimately, the theft was reversed but at the cost of what some considered to be the integrity and immutability of the blockchain. Another way to ensure a more secure chain is to have more nodes participating in consensus, but this then reduces the scalability, and we’re back to square one.
That said, creating a new blockchain that creates a different balance of the three elements of the trilemma isn’t the only solution. In the next part of this series. I’ll dive into interesting ways developers are handling the scalability limitations of current blockchains.
Stay tuned!