The advent of the Ethereum platform in 2015 has worked to provide virtual computing infrastructure for running applications on the blockchain. This new form of program is called a distributed application or DAPP for short. Ethereum was the first developer platform for building distributed applications. It was a foundational, general-purpose blockchain-based platform that is a Turing-complete virtual machine, meaning that it can run any computer code. Although Ethereum was the first and still the largest platform for building distributed applications, others such as Blockstack or EOS provided the underlining infrastructure for building DAPPs.
Our working definition of a DAPP is an application that runs on a network in a distributed fashion, with participant information securely protected and operations executed in a decentralized fashion across a network of nodes. DAPPs use open source code, operate autonomously, with data and records cryptographically stored on a blockchain. On a technical level, a DAPP is very much like a normal web application, except unlike with the normal web application where the backend code is running on a centralized server, a DAPP has its code running on a distributed peer-to-peer network. A DAPP can have frontend code and user interfaces written in any language just like a normal application; as such, DAPPs will often look and feel very much like regular applications, and people will soon be using them in the coming decade without even realizing them.
Like all applications, DAPPs perform specific functions. Just as Bitcoin is the decentralized value exchange, a decentralized application aims to achieve functionality beyond transactions, and they merely exchange value. Many types of decentralized apps are starting to emerge as the underlining technology continues to progress. Already we can see many DAPPs present alternatives to the existing popular web applications. Probably the most successful DAPP to date is Steemit. Steemit is a blogging and social networking website on top of the Steemit blockchain database. The general concept is similar to other blogging websites or social news sites like Reddit, but the text content is saved in a blockchain. Using a blockchain enables rewarding comments and posts with secure tokens of value. In this way, users can earn currencies for their posts and comments.
Likewise, for existing marketplace applications like eBay and Craigslist, we have the decentralized version Openbazaar. Openbazaar is an open-source project developing a protocol for e-commerce transactions in a fully decentralized marketplace. Because the application connects people directly via a peer-to-peer network, it costs nothing to download and use. Unlike sites like eBay or Amazon, there are no fees to list items and no fees when an item is sold. Openbazaar is not a company like eBay but an open-source project. Each user contributes to the network equally and is in control of their own storage and private data.
Another example is Storj.IO, which is a decentralized cloud storage application like Dropbox. Storj is based on blockchain technology and peer-to-peer protocols to provide a secure, private and efficient cloud storage system. The application incentivizes storage providers and connects them with those who require it. Each file saved on the application is shredded, encrypted, and spread across the network until you’re ready to use it again. The keys to the database remain with the owners, meaning the data is not accessible by a centralized cloud provider.
There are many other examples of DAPPs, but the general concepts can be applied to any area that requires secure records and benefits from decentralization. These applications are automated, which means they can operate at very low or even zero cost. Because of this, DAPPs may be used to disrupt the existing platform economy, as whole platforms like Uber or Airbnb may eventually be converted into DAPPs that run automatically, without the need for a centralized platform. The advantages of DAPPs are that they’re fully automated, have superior fault tolerance, and trustless execution. These decentralized apps potentially represent the next generation of computing.