Decentralized Applications (DApps)

In this chapter we will explore the world of decentralized applications, or DApps. From the early days of Ethereum, the founders’ vision was much broader than “smart contracts”: no less than reinventing the web and creating a new world of DApps, aptly called web3. Smart contracts are a way to decentralize the controlling logic and payment functions of applications. Web3 DApps are about decentralizing all other aspects of an application: storage, messaging, naming, etc. (see Web3: A decentralized web using smart contracts and P2P technologies).

Web3: A decentralized web using smart contracts and P2P Technologies

Figure 1. Web3: A decentralized web using smart contracts and P2P technologies

Warning

While “decentralized apps” are an audacious vision of the future, the term “DApp” is often applied to any smart contract with a web frontend. Some of these so-called DApps are highly centralized applications (CApps?). Beware of false DApps!

In this chapter we will develop and deploy a sample DApp: an auction platform. You can find the source code in the book’s repository under code/auction_dapp. We will look at each aspect of an auction application and see how we can decentralize the application as much as possible. First, though, let’s take a closer look at the defining characteristics and advantages of DApps.