For Web2 developers looking to get started in Web3 building a decentralized application (or DApp), it is helpful to have an overview of the decentralized technology stack so you can understand how it works. It is also helpful to know what providers and services are available in this space so you can narrow your search and understand what you need to build versus what is already available.
With that in mind, I’ve created a schematic and overview of each layer of the decentralized tech stack to help developers get started.
The tech stack for a Decentralized Application (DApp)
The decentralized (or Web3) technology stack has some of the same elements of Web2 from access and identity management through to storage—it just accomplishes these things differently. Some of the key components of Web3 technology are:
- P2P communication
- Strong encryption
- Portable execution (containers, WASM, EVM)
- IPFS or other content-addressed storage routing
- Low/zero-trust environments
- Blockchains (but not always!)
The schematic below represents how these elements come together to create the architecture for a Web3 or decentralized application, also known as DApp. Following the schematic, the purpose of each layer is defined.
Access and Identity Management
Users of Web3 applications will access the decentralized app via a mobile app or web browser just like they would any Web2 application. Confirming user identity and managing access is handled by Web3 identity and access management (IAM) providers. Many of these providers started as cryptocurrency wallets that allow users to interact with the Ethereum blockchain, but have evolved to allow users to interact with decentralized applications.
Blockchain API Providers
Blockchain API is an interface that communicates with a blockchain node or a client network directly or through another service. An example of a blockchain API is an interface between a cryptocurrency exchange and a Web3 application that gathers data from it. Developers typically choose a blockchain API provider based on the cryptocurrencies they support, transactional performance, and ease of use.
There is a whole set of decentralized services and plugins that enable Web3 applications to be more rich and useful. These services range from data query to video transcoding and more continue to be developed to help enhance decentralized applications.
The blockchain is a decentralized, distributed ledger that records the creation of a digital asset. The key blockchain components are the blockchain state and smart contracts. The blockchain state is also called state channels and refers to the process for users to transact with one another outside of the blockchain in order to minimize on-chain interactions. Smart contracts are self-executing contracts that dictate the terms of a buyer-seller agreement and are inscribed directly into lines of code. Smart contracts make transactions traceable, transparent, and completely irreversible.
With a decentralized application, storing everything on the blockchain would get really expensive, really fast. The user pays every time they add new data to the blockchain and asking users to pay extra for using your DApp at each transaction is not a good user experience. A decentralized storage layer is needed that can be used for storing front end code, as well as storing and accessing application data.
There are two separate functions within Web3 storage—content addressing and data storage. IPFS is the most common content addressing protocol. IPFS creates a “fingerprint” of the content using a cryptographic hash called a CID that will allow developers to store and retrieve that data. IPFS does not provide storage, nor is it a necessary function for every Web3 app, but there are many decentralized storage providers that have IPFS integrations for use cases like NFTs.
Web3 decentralized cloud storage stores data across a large network of thousands of storage nodes run by unique entities that have no visibility into what is stored on their hardware. It’s a distributed model that has only become possible at a global scale in the last decade thanks to improvements in bandwidth speed and availability.
There are a wide range of decentralized storage providers, but the key attributes needed for Web3 apps are a storage network that is globally distributed, highly performant and secure, with high availability that results in cost efficiencies.
Building a DApp makes sense for the future
Some developers get involved in Web3 because it's the latest innovation, but others are more interested in the clear benefits over applications built in Web2. Having data control and privacy and big drivers, but there are many other benefits to building decentralized applications.
Most common reasons developers build DApps
- Ownership - From social media groups and communities to data privacy issues, businesses and their end users have been burned by not having complete control of their data. Whether their Facebook community was shut down or they're just scared of it happening, many of these organizations are moving to decentralized data storage so they can truly own what they are creating.
- Monetization - Instead of funding applications with advertising like in Web2, DApps can self-fund with token launch activities, initial coin offerings, donations, and transaction fees. This makes for a cleaner, ad-free user experience and less hassle for all involved.
- Security - Many DApps started out using AWS, but quickly realized that this wasn’t a secure way to store their data. Moving to decentralized cloud storage with erasure coding and encryption standard helps businesses fulfill the promise of Web3.
- Sustainability - Developers are looking for the Airbnb and Uber business model where existing capacity is better utilized. Decentralized cloud storage fits this model by utilizing unused storage capacity in existing computers and servers. Lowering the carbon footprint of their tech stack is a big driver for eco-friendly businesses.
- Performance - Video is everywhere, but performant video isn’t. The nature of Web2 centralization makes performance at the edge for large files an issue. DApps solve that with decentralized storage that beats out hyperscale cloud storage in any geography.
- Cost - You can get data ownership in Web2, but it involves building and hosting everything yourself and it just gets too expensive to manage. Decentralized storage allows organizations to get the ownership they desire, but at 1/10th to 1/40th the cost of centralized data storage.
- Innovation - The DApp tech stack opens up new possibilities to developers for things like play-to-earn games, more video streaming at the edge, and new ways to build out metaverses and alternative ecosystems. If you’re pushing the envelope in technology, it just makes sense to be working in Web3.
Want to learn more about Storj and Web3?
If you are interested in hooking the only enterprise-grade decentralized storage into your DApp, Storj can help. Here are some great resources to learn more about Web3 or start building with Storj.