LoginSign Up
Decentralized application (dApp)

Decentralized application (dApp)

A decentralized application (dApp) is a service that provides direct interaction between end users and providers typically through a blockchain or distributed ledger technology.

Introduction

A decentralized application (Dapp) is a service that provides direct interaction between end users and providers typically through a blockchain or distributed ledger technology.

A decentralized application is a service that runs on a peer-to-peer network of computers providing direct interaction between users and providers. As opposed to traditional centralized applications where code is run on centralized servers, decentralized applications are intended to operate in a manner not controlled by a single trusted entity. These properties make decentralized applications inherently more difficult to hack or coerce.

History

Decentralized applications exist in a variety of forms prior to blockchain such as BitTorrent and Tor. However, blockchain technology has dramatically increased the scope and attention of the potential of decentralized applications. Ethereum has provided a general purpose blockchain designed to facilitate the development of Dapps, resulting in an dramatic increase in the number of Dapps being developed.

Characteristics

The precise definition of a decentralized applications is not agreed upon in this actively developing field. However any application which is not completely open source and transparent is not considered a decentralized application as it reinstates the trust requirements around execution of code.

Dapps software enables users to transfer some sort of transactional data of value, these scarce resources could be cryptocurrency coins, storage space, image, video or many others.

Dapp development ecosystem

The resources for building decentralized applications have been rapidly advancing. Dapps have both front end (visible elements of an application) and back end (internal logic components).

Front end of Dapps can consist of the usual HTML, CSS, or any other elements of traditional applications. Decentralized solutions for storing and sharing files are being developed such as IPFS/Filecoin, Storj, Siacoin, Maidsafe and others.

Smart contracts provide a method for decentralized applications to interact with blockchains. Blockchain platforms such as Ethereum, Bitcoin’s rootstock, Lisk, Tezos, NEO, EOS and others provide support for smart contracts capable of executing arbitrarily complex business logic allowing for almost any range of possible decentralized applications.

External data

Decentralized applications also require some form of external data which informs the execution of the internal logic of the application. Oracles are in development which provide decentralized means of accessing external data without relying on trusted 3rd parties. Prediction markets in development such as Augur and Gnosis are examples of Oracles.

Timeline

People

Name
Role
Related Golden topics

Further reading

Title
Author
Link
Type

The Shared Data Layer of The Blockchain Application Stack

Joel Monegro

Documentaries, videos and podcasts

Title
Date
Link

Companies

Company
CEO
Location
Products/Services