The Layers of Web3
Jacob Stein

Jacob Stein

Sep 08, 2022

The Layers of Web3

Note: This article is based on a from the Coinbase blog. This article redundantly repeats information from the Coinbase post, and I take no credit for providing original information. Writing this was an understanding exercise for me.

Prior to the creation of the Ethereum blockchain, the versatility of the platform was highly limited. Only when Buterin implemented the potential to secure programmable scripts on the blockchain did Web3 sprawl into what it is today. The Ethereum blockchain was released over seven years ago from the time of this writing. In spite of this, only a neglible portion of software engineers worldwide are specializing in Web3.

There are a few explanations for this, and one or some combination of them is likely the most accurate answer. In its early stages, Web3 developers could only work on token projects or software projects that had no ostensible long-term stability. Traditional software engineering provides a comfortable salary, hours, and job security. There is no reason to bet such security on what was considered an unsustainable trend at the time. For the brave developers who accepted that risk, there were few tools to make their lives any easier. Traditional development environments provide libraries, applications, and supplements that can be used to simplify and expedite the process. Such tools do not exist for Web3 developers. The necessary skill upscaling and time commitment makes Web3 developing generally very difficult.

Now, the story is a little different. Those risk-takers have been working on projects so simplify the journey for the rest of us. There is now a plethora of tools for us to use, so let's explore them and their relevance.

The on shared quality between Web3 and web2 is front-end interfaces. In both cases, user-facing applications are built with the same web development frameworks, like React, and there is no noticeable difference in interface organization. See the Uniswap inteface below as an example:

uniswap inteface.png

Recall that Web3 is built on the tenets of decentralizaiton and data self-ownership. Therefore, the greatest difference in Web3 development has to do with databases and the back-end. Web2 applications are built on centralized databases owned by companies and organizations, with a back-end tying together the data with the front-end and adding functionality.

Web3 applications are instead built upon decentralized databases (blockchains) and thus require different tools and back-end structures to function. As discussed earlier, the development tools for creating these frameworks are underdeveloped, forcing specialized developers to perform redundant tasks. Nonetheless, teams are building the infrastructure that will make Web3 development as seamless as web2 development.

Recall the graphic from Coinbase at the start of this article. It breaks down existing development tools into several categories, which we will now cover.

Layers of Web3.png

The Protocol Layer

A Web3 developer must first decide on which blockchain they intend to build. Ethereum is the most commonly-built upon blockchain, and will continue to be following The Merge, a pending upgrade to the protocol reducing environmental costs and increasing processing speed.

Developers may also choose to build upon a Laery 2 solution for specialized programs or for reduced processing costs and higher speed. Bridges also enable cross-chain functionality, making them an attractive tool for interoperable applications.

Infrastructure Primitives

Once a blockchain is chosen, the developer must delineate how the blockchain will be connected to the application.

Node Infrastructure - Nodes are computers within the network responsible for adding and updating information on the blockchain. Applications must interact with nodes to update information after user interaction. Tools such as Infura simplify the process of setting up, connecting with, or accessing blockchain nodes.

Wallet and Key Management - Tools like MetaMask helps users store their private keys that allow them to interact with the blockchain within the application. Other tools can be used to assist in attaching wallets to applications, enabling full interaction with the blockchain.

Identity - Users within Web3 are fully anonymous, only identifiable by pseudonymous private keys that provide no indication of their real life holder. Tools like Ethereum Name Service (ENS) allow users to create a human-readable Web3 address for themselves, enabling identity or pseudo-identity when desired. The creator of Ethereum, for example, goes by vitalik.eth rather than an indecipherable string of letters and numbers. On a related note, there are protocols to enable compatibility between Web3 applications and pseudoynmous identities.

Decentralized Compute - Running an applications requires the completion of computational tasks. Such tasks in turn require compute resources, which are mostly provided now by centralized web services, such as AWS. Tools exist now that provide compute resources in a permissionless manner from community-owned networks. There are now companies that provide peer-to-peer compute resources that are optimized for blockchain applications.

Decentralized Storage - Storing all application data directly on the blockchain can become very expensive, so Web3 developers can instead use peer-to-peer data storage protocols. Many token projects use the popular storage procotol IPFS to hold their data.

Oracles - Blockchains store transaction history and other state variables, such as smart contracts and balances. They do not, however, store data from external sources or other blockchains. They must instead import oracles that connect the blockchain in use to data held on other blockchains or off-chain storage. Chainlink is a well-know oracle.

Interoperability - Most blockchains can not share information across different chains. There are now protocols that can be used to enable cross-chain applications that can communicate with various sources with APIs.

Developer Tools

The developer tools allow Web3 developers to more easily interact with the infrastructure primitives mentioned above.

Frameworks and IDEs - Frameworks are all the libraries that have been created so that developers do not need to redundantly hard-code an entire application when some of the work has already been done. Developers can borrow code frome existing smart contracts to avoid repetition. They also assist in the testing and deployment of applications. IDEs are code editors and debuggers all in one interface, making coding less of a headache.

Low code/No Code - These are interfaces that allow users to create smart contracts and applications with little or no coding. These are typically drag-and-drop intefaces that make use of templates to simplify the development process.

Index and Query - The Google search engine is the most popular data querying tool in Web2, returning results from across the Internet in less than a second. Different services now provide APIs to pull data from decentralized storage mechanisms. Decentralized indexing essentially allows for the efficieny querying of blockchain data.

Test, Simulate, and Monitor - Every developer (and everyone else) knows that you need to check your work before you submit it. Several companies now provide testing environments and tools that allow Web3 developers to simulate the deployment of their smart contract, and then receive analytics on its performance before on-chain deployment.

Security and Audit - Leaving a potential exploit in a smart contract can result in losses of millions of dollars (which has historically happened several times). Developers need tools to automatically monitor developing applications for potential loopholes, so they can be closed before deployment. Several companies now provide tools with this necessary service.

Messaging - Applications need to send messages to users as part of their functionality. Several projects now provide secure messaging protocols to build communications capabilities within the application itself.

Analytics - Developers need to make their decisions informed by data. Analytics tools can now pull information from blockchains and provide statistical and visual analyses. APIs and reporting capabilities alsl allow for the construction of analytics tools within applications.

App Enablement Layer

Expectedly, application enablements tools depend on what you want to build. Several tools exist for building common applications, like NFT projects, DAOs, DeFi programs, and gaming platforms. Before beginning a project, make sure you look for existing enablement tools that may prevent you from reinventing the wheel.

Jacob Stein

Jacob Stein

Hello! I'm a junior at Boston University studying computer science and political science. I have a strong interest in blockchain technology use-cases and implementation. This blog is just meant to document and explore my areas of interests. Feel free to comment, or contact me at jmstein@bu.edu.

Leave a Reply

Related Posts