Loading…

Web3 skeptics and believers both need a reality check

With so much hype and hate around Web3, let's take a measured look at what it is and what it can do.

Article hero image

The potential for Web3 is massive. Web3 is overhyped. These are both true and that’s fine. Cryptocurrency and Web3 have captured the interest of many; is it the future of the web? Maybe. An inspiring story wins people to your cause, while the messy truth is usually found somewhere in the middle.

What is true about these technologies is the interest and possibilities they hold. New open source projects and startups rise everyday to build the next generation of decentralized applications. But thanks to opportunists and scammers, blockchains and Web3 are in danger of becoming more of a meme, and not in a good way.

Determining what’s real about Web3 is hard; so much is hype or FUD. Understanding which is which and what’s genuine can help us move forward as an industry. In this article, we’d like to talk to both the bulls and the bears, and inject a little reality into both of their conversations. To crypto idealists, let’s say good morning to where Web3 is actually today, and for skeptics, let’s take a step back and reassess the FUD.

What is Web3 anyway?

Because there’s so much misinformation around Web3, let’s start with a definition. Web3 was coined by one of the creators of Ethereum in 2014, Gavin Wood. He says, “Web3 is an alternative vision of the web, where the services that we use are not hosted by a single service provider company, but rather they’re purely algorithmic things that are hosted by everybody.”

The promise for Web3 is a user-led internet that isn’t as easily manipulated or controlled by centralized parties. Web2 has been dominated by walled gardens—think massive social networks, operating systems, browsers, and app stores—platforms owned by a few companies that can make changes on a whim, ruining other businesses built on top.

BitTorrent and its peer-to-peer network for file sharing is a good, early example of what Gavin and others support in this space and want to see the proliferation of. Note how this example doesn’t use a blockchain and doesn’t require cryptocurrency or a token. Like most technology decisions, if your use case doesn’t need it, it shouldn’t have it.

Web3 advocates argue crypto and blockchain can be added and layered on applications like BitTorrent to enhance incentives, ownership, and transparency as needed. While losing an mp3 file using a peer-to-peer system like BitTorrent could be acceptable, it’s likely not acceptable for other use cases, like holding your account balance or handling the exchange of valuable assets.

What often gets lost in the conversation of Web3 is that this is an evolution, not a complete rewrite of Web2. For developers especially, it builds upon what we’ve already done and hopefully enhances it in a meaningful way. The frontend will feel very familiar—it will be the same HTML, JavaScript, and CSS the rest of the web uses. And not everything needs to be decentralized; storing data in a traditional database to augment the user experience could make the most sense, although decentralized technologies are hoping to make inroads there, too.

The true challenges of Web3

With any new frontier, market, or technology there are rough edges. Concerning and admittedly entertaining sites like web3isgoinggreat.com exist and cite nearly $10 billion in losses because of crypto’s particularly rough edges.

The vast majority of these ‘losses’ are happening above the underlying infrastructure, or layer 1 network, where consensus and settlement occur. You’ll find most are caused by inexperienced or poor development practices or bad actors that take advantage of unsuspecting victims. To be clear, neither of these are acceptable and we must collectively do better, but there is an important difference between the technology itself being evil and those deploying on it being evil.

Stakes are high

The most popular and innovative decentralized applications available today are in the realm of DeFi, or decentralized finance. Decentralized finance takes aspects of traditional, centralized finance including exchanges, loans, and derivatives to make them run entirely on a public ledger without need for human intervention or interference.

Most of these applications are run by one or more smart contracts communicating across each other. Users interact with them in a self-sovereign way, being responsible for their cryptographic keys to sign the transaction. A majority of funds on a network today—often referred to as total value locked (TVL)—are held in a smart contract. One poorly written smart contract can be responsible for losing millions of dollars or even locking funds into a smart contract unable to ever be withdrawn. This is all too common. As such, new tools, practices, and audits are constantly being introduced to try and overcome these issues.

Due to the nature of these applications and aspects intrinsic to distributed ledgers, users bear more responsibility and thus take on much more complexity than other web technologies. It turns out, being your own bank can be challenging for many today.

It sucks to use

Web2 perfected user flows over trillions of interactions down to the pixel. Web3, being a less mature technology, has not.

If you haven’t done so, I invite you to try to use the technology as an end user. On whichever network you like, attempt to buy a NFT. Don’t worry, you don’t have to really buy it to get enough from this experience. You’ll typically find a flow as follows:

  1. Install a browser extension
  2. Create a wallet account
  3. Save your keys securely
  4. Navigate to a website
  5. Find a NFT you like
  6. Be prompted to sign a transaction
  7. Not have enough funds to sign the transaction
  8. Have to find an exchange

That’s a high barrier to entry to purchase a silly profile picture. Most users don’t want to go through that process; they want a button that says “Buy” and then be done. And we haven’t even begun to talk about performance.

On proof-of-work blockchain based networks, like Ethereum where the majority of NFT transactions are happening today, transaction fees are extremely volatile, expensive when the network is in heavy use, and painfully slow by any modern standards.

Re-centralization

The ethos and benefit of this movement is decentralization. It reduces the power, control, and limits of a centralized entity. A core part of achieving decentralization is through how a network achieves consensus and how it makes decisions through the individuals operating on that network. Depending on your viewpoint, miners have centralized Bitcoin with five mining groups taking up the majority of hash rate. Some argue VCs have already centralized Ethereum, with many projects seeing billions of dollars of traditional Silicon Valley investments.

At the end of the day, if a few parties have still managed to consolidate control, are we progressing and is it worth all of this? All hope is not lost. One potential silver lining is that the transparency with which we understand this is beneficial enough. The public ledger can tell us a lot more than a private CAP table. There are also different models being considered with regards to both consensus and governance throughout the extended ecosystem. For example, some applications are doing a better job of exiting to their community, typically by rewarding tokens directly to its most active users with projects like Ethereum Name Service and Optimism leading the way. Having to have continued and ideally increasing decentralization is a challenge across economics, sociology, and technology. That’s difficult to do well.

Take out the FUD

For the problems above, some can be solved through advancement in the technology, like higher throughput, and some, like poorly written smart contracts or a user losing their keys, reduced through adoption of best practices. These critiques of crypto are absolutely true, widely accepted, and must be improved upon for the technology to be taken seriously.

In addition to these actual problems, there are many misconceptions and much misinformation that creates a seismic amount of fear, uncertainty, and doubt (FUD). When people look down on crypto technologies, they usually think about these things. If there’s anything to take away from this post, it is that these characteristics of a public ledger aren’t entirely true.

Energy use

In 2008, Bitcoin introduced proof of work, a compute and energy intensive way to come to consensus in adversarial environments, and by doing so left a stigma on all crypto technologies. Rightfully so, as Bitcoin consumes more energy than many countries. For a new transaction block to be validated, proof of work requires individuals on the network to competitively decode a hashed value to validate new transactions.

The good news is that since then, the majority of Web3 applications and cryptocurrency use doesn’t require a country-size portion of electricity to exist. Many, including Ethereum, the second largest network in terms of market cap, are moving to proof of stake, which requires only that the validator hold a number of tokens and therefore be directly affected by malicious transactions. This will reduce energy consumption for these transactions by over 90%.

Newer networks (shown in the chart above) reduce energy needs by even more, and layer 2 networks on Ethereum show early promising signs that they can further reduce energy use by bundling transactions together to reduce the number of individual transactions required to settle on Ethereum. Overall, the industry is moving from a single bitcoin transaction taking multiple days of a family home’s energy consumption to modern blockchain networks expending the energy of a web search.

It is 100% true, in my opinion, that crypto networks have collectively spent too much energy getting us this far, but that doesn’t mean we’re stuck here. All new technology shifts take time to be better, more efficient and faster. For public ledgers, there are both changes to existing networks and new, more efficient networks available today to remove us of this stigma.

Inefficient database

Yes, blockchain and public ledgers are inefficient when it comes to general data management. Bitcoin can handle tens of transactions per second, and Ethereum is not too far above that. But distributed ledgers are not meant to be databases. They’re not optimized for storing click data or even general user data, and it's the wrong comparison to make for them. The truth is that some ‘decentralized applications’ still use a traditional database for a large portion of their application.

Distributed ledgers are intended to keep track of the most important and critical data, such as your account balance and identity credentials. Data that we, ideally, wouldn’t want a single centralized entity to control the entire landscape of. These types of use cases don’t require the scalability of Kafka, but for public ledgers to reach success they do require greater than 20 transactions per second; thankfully, that’s already here.

Scalability solutions on top of Ethereum, like Polygon and Optimism, are making some improvements. Newer layer 1 networks like Hedera that don’t use a blockchain at all but an alternative called hashgraph, are able to drastically reduce these performance challenges to already run on par and beyond the speed of the VISA network today.

Nothing is worse than bolting on a technology to a problem that doesn’t exist. We don’t need or want to continue the Uber for X trends with X on Blockchain, so it is critical to understand the actual attributes of a public ledger.

New development principles for Web3

Despite the existing challenges and FUD, Web3 is a promising step towards addressing concerns of excessive control, access, data ownership, and even censorship that exist in Web2 today. As a key enabling component of Web3, crypto networks introduce a new set of principles and tools available for developers to create entirely new applications and enhance existing solutions. Some of the principles being most actively explored are:

  • Immutability
  • Verifiability
  • Programmability
  • Interoperability

These principles can be used individually or come together to build more robust decentralized protocols and applications.

Immutability

A core premise of public ledgers is that the data is append-only and unable to be modified after the fact.

The Hedera network processes the most transactions of any public ledger on a daily basis. A majority of the transactions are from businesses that want to have the highest degree of data integrity for a multiparty process. Often, a developer will have a data feed that they want recorded as an immutable source of truth for a third party to verify. To achieve this, they’ll send a hash of the transaction to the ledger.

When compared to centralized infrastructure, using a public ledger as a neutral actor in the system takes advantage of its true immutability. This has a number of applications ranging from auditable logs to identity credentials.

Verifiability

The transparent nature of a distributed ledger provides stronger guarantees of the information it holds and, in the case of smart contracts, the rules the contracts abide by.

Today this transparency is used to readily verify the uniqueness or rarity of NFT collections today, but could be used for better understanding your government’s spending, voting, or a business’ carbon offsets tomorrow. This degree of total transparency and access to information is not possible in a centralized database.

Programmability

Smart contracts allow us to bring all of these characteristics of our ledger together and add autonomous application logic. Smart contracts are terrific for holding tokens on behalf of a user, for instance to support a collateralized lending protocol.

The majority of smart contract developers today are using Solidity, a Turing complete language initially created for the Ethereum Virtual Machine, which has become a default and expanded to other EVM compatible networks.

Networks like Hedera allow for developers to use Solidity smart contracts when needed, or bypass them, for more efficient messaging or token management in more common programming languages like JavaScript and Java.

Interoperability

By having logic that is immutable, transparent, and atomic, we get the benefit of interoperability and composability. Networks can communicate across each other using standards to frictionlessly move assets or your application can call a smart contract that another developer already deployed to easily tap into the existing ecosystem on a network.

While developers explore this concept in new frontiers like decentralized finance, sometimes referred to as DeFi, there are also more practical use cases to get your footing, too. Take, for example, a loot box. Loot boxes are a common game mechanic where a player receives a box as a reward for achieving a milestone in a game.

Loot box rewards and odds of receiving them are, historically, opaque, although government regulation is beginning to come into view. A better, more equitable implementation for loot boxes could be by using a distributed ledger. The odds of you to receive an item could be transparently defined in a smart contract. The results would be verifiably random. The output could be an NFT to show ownership of your newly earned asset.

Having this process take place on a public ledger unlocks greater assurances for user bases, but also makes it easier for other game developers to reward existing user bases for perhaps a specific item held, and opens up more potential options for secondary markets.

Give Web3 a (grounded) chance

In some ways, web3 is a continuation of open source principles. Core beliefs in collaboration, transparency, community, and freedom of choice moving up the stack.

Web2 built a set of walled gardens owned and controlled by very few. A better way to design these applications going forward may be to break apart the protocol from the user interface. This separation of protocol and client, a digital church and state, is a meaningful difference in how decentralized applications can be designed.

Instead of a developer being able to use a type of database, they’re able to use a specific type of data schema, like an ERC-721 non-fungible token. Instead of a developer being able to move their open source database from using AWS to Google Cloud, end users are able to directly and freely move from client application to application.

The reality is that after we remove the noise, blockchain, crypto, and Web3 is a place that a developer can make an outsized impact. From the outside it can feel like you’re jumping into the Matrix, choosing the pill you want to take, or often don’t (which is ok too!). This doesn’t have to be the case and, on both sides, we need to get better at understanding our faults and misinformation.

If you’re interested in dipping your toes in to Web3, a few good communities to get started are Buildspace and Pointer, free education with welcoming communities. If you’re just looking to get hands-on with Solidity smart contracts, the most popular smart contract language supported by networks like Ethereum and Hedera, CryptoZombie is a fun and easy way to get familiar. Once you’re dangerous enough, hop into Gitcoin to find a grant for some freelance work or find one of the many hackathons in the space for an opportunity to learn and hopefully win.

The Stack Overflow blog is committed to publishing interesting articles by developers, for developers. From time to time that means working with companies that are also clients of Stack Overflow’s through our advertising, talent, or teams business. When we publish work from clients, we’ll identify it as Partner Content with tags and by including this disclaimer at the bottom.

Add to the discussion

Login with your stackoverflow.com account to take part in the discussion.