A Dapp (or a decentralised application) is a software application that is built on top of smart contracts that reside on a decentralised public network such as the Ethereum blockchain. Dapps work by publishing a smart contract on the blockchain which contains all of the logic of their business processes, and then creating a front-end (i.e. that which users can touch and feel) which sits on top of the contracts and serves the experience.
A traditional app has a front-end which is connected to private, centralised servers stored on the cloud, which are in complete control of the developing parties. The activities on these servers are hidden from public view, and it’s anyone’s guess as to how information is really being processed inside of them.
A dapp, on the other hand, offers radical transparency over how its back-end works (i.e. the smart contract, as opposed to private servers). This ensures that users know exactly what they are signing up for. Once a dapp developer publishes their smart contract, it is also accessible by anyone, given the open nature of the blockchain. This means that other developers are free to create their own front-ends and improve or modify upon the experience served by the original dapp’s smart contract.
Dapps also offer great benefits in privacy (as no user is required to share their real identity) and censorship resistance (no entity on the network can block the dapp for others). All of these benefits, however, do come with a serious tradeoff. Dapps are limited in terms of their network performance by the rest of the blockchain, which moves much slower than centralised networks due to its decentralised design.