There are new terms in Ethereum like smart contract. What is a DApp and how is it different from smart contracts?
DApp is an abbreviated form for decentralized application.
A DApp has its backend code running on a decentralized peer-to-peer network. Contrast this with an app where the backend code is running on centralized servers.
A DApp can have frontend code and user interfaces written in any language (just like an app) that can make calls to its backend. Furthermore, its frontend can be hosted on decentralized storage such as Swarm or IPFS.
If an app=frontend+server, since Ethereum contracts are code that runs on the global Ethereum decentralized peer-to-peer network, then:
DApp = frontend + contracts
Illustration of a DApp that uses a blockchain with smart contracts combined with the pillars of Swarm and Whisper:
A good Blog post by Vitalik Buterin goes through and the concept of a Dapp and other related concepts such as smart contract, Decentralised Autonomous Organisation, Decentraclised Corporation ect..
Here is the link with the Blog Post: DAOs, DACs, DAs and More: An Incomplete Terminology Guide
Find below a definition of DApp written in this doc called "The General Theory of Decentralized Applications, Dapps".
For an application to be considered a Dapp (pronounced Dee-app, similar to Email) it must meet the following criteria:
The application must be completely open-source, it must operate autonomously, and with no entity controlling the majority of its tokens. The application may adapt its protocol in response to proposed improvements and market feedback but all changes must be decided by consensus of its users.
The application's data and records of operation must be cryptographically stored in a public, decentralized blockchain in order to avoid any central points of failure.
The application must use a cryptographic token (bitcoin or a token native to its system) which is necessary for access to the application and any contribution of value from (miners / farmers) should be rewarded in the application’s tokens.
The application must generate tokens according to a standard crytptographic algorithm acting as a proof of the value nodes are contributing to the application (Bitcoin uses the Proof of Work Algorithm).
Clarification related to the terms you use in your question:
- Ethereum is a DApp, it tick all the boxes from the criterias listed in the above definition
- Smart contracts: don't have to be Open Source, do they? so no, smart contracts are not a DApp. Unless I miss something.
- Bitcoin is a DApp, it tick all the boxes from the criterias listed in the above definition
Dapp abbreviate as Decentralized Application used to Developed Applications using Front-end(HTML+CSS+JS) Web page + Back-end(Solidity Smart contract) Programming code + Server(TestRPC) Private Blockchain/Dummy Network in Ethereum platform
protected by eth♦ Mar 26 '18 at 0:50
Thank you for your interest in this question.
Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).
Would you like to answer one of these unanswered questions instead?