Learning Objectives – after this chapter you will be able to:
  • Define a decentralized application (dApp).
  • Distinguish between “distributed” and “decentralized”.
  • Describe the building blocks of a dApp: smart contracts, front end, wallet, node/RPC and storage.
  • Evaluate the advantages and limitations of dApps compared with centralized apps.
Decentralized Applications
  • Distributed means the computation is spread across multiple nodes instead of just one.
  • Decentralized means no single node (or owner) instructs the other nodes what to do; decisions follow shared rules.
  • A decentralized application (dApp) is an application whose back-end logic runs as smart contracts on a peer-to-peer blockchain network. No single node has control over the dApp.
  • Depending on its purpose, a dApp may use different data structures to store application data. Bitcoin, for example, uses a blockchain ledger of transactions; Ethereum dApps keep their state in smart-contract storage on the Ethereum blockchain.
  • Once deployed, the contract code is public and executed identically by every node, so users can verify exactly how the application behaves.
Architecture of a dApp
Front EndWebsite or app (HTML/JS, React …) – can be hosted anywhere, including decentralized storage.
WalletHolds the user’s keys and signs transactions (e.g. a browser wallet).
Node / RPCLibrary such as Web3.js sends JSON-RPC requests to an Ethereum node.
Smart ContractsBack-end logic and state stored on the blockchain.
  • Smart contracts replace the traditional back end and database.
  • Wallets replace username/password logins: the user proves identity by signing with a private key.
  • Decentralized storage such as IPFS is often used for large files (images, documents) because storing them on-chain is expensive.
Centralized App vs dApp
BasisCentralized ApplicationDecentralized Application (dApp)
Back endCompany serversSmart contracts on a blockchain
DataCentral database owned by the companyBlockchain state, replicated on every node
LoginUsername/password or social loginWallet signature with a private key
Code visibilityUsually closedContract code is public and verifiable
DowntimeFails if the central server failsRuns as long as the network runs
Cost to userUsually free per actionEach state-changing action costs gas
UpdatesChanged any time by the ownerContract code is immutable unless an upgrade mechanism is built in
Advantages and Limitations of dApps
Advantages
  • Censorship resistance – no single party can block a valid transaction.
  • Zero downtime for the back end once deployed.
  • Transparency – rules are visible in the contract code.
  • User ownership of assets through their own keys.
Limitations
  • Transaction fees (gas) for every state change.
  • Slower confirmation than central servers.
  • Hard to fix bugs – deployed code cannot simply be patched.
  • User experience – managing keys and wallets is unfamiliar to many users.

Common dApp categories include decentralized exchanges, lending platforms, NFT marketplaces, DAOs, games and identity solutions.

Key Takeaways
  • A dApp = front end + smart-contract back end running on a peer-to-peer blockchain.
  • Users interact through wallets that sign transactions; no central server is required for the core logic.
  • dApps gain transparency and censorship resistance but pay with fees, speed and upgrade difficulty.
Question / Answer (15 questions)

Answer : A dApp is an application whose core back-end logic runs as smart contracts on a peer-to-peer blockchain network, so no single node or company controls it. Users usually interact with it through a front end and a wallet.

Answer : Distributed describes where computation happens – across many nodes instead of one. Decentralized describes who controls it – no single node or owner gives orders; all nodes follow shared rules. A system can be distributed but still centrally controlled.

Answer : Smart contracts deployed on a blockchain (the back end) and a front end (user interface) that interacts with those contracts. In practice a wallet is also needed to sign transactions.

Answer : Instead of a username and password, the user connects a wallet. The wallet proves control of an address by signing messages or transactions with the user’s private key.

Answer : Web3.js is a JavaScript library that lets the front end communicate with an Ethereum node using JSON-RPC – for example to read contract data, estimate gas or send signed transactions.

Answer : Storing data on-chain is expensive because every node must store it and every byte costs gas. IPFS stores files off-chain by content hash, and only the small hash is stored on-chain.

Answer : Once a smart contract is deployed, it lives on every node of the network. As long as the blockchain is running, the contract can be called, even if the original developer’s servers are offline.

Answer : Deployed contract code is immutable. Developers must deploy a new contract and migrate users and data, or design an upgrade mechanism (such as a proxy pattern) in advance.

Answer : Each state change is a transaction that every node must execute and store. Gas fees pay for that computation and storage and protect the network from spam.

Answer : Decentralized exchanges (DEXs), lending and borrowing platforms, NFT marketplaces and DAOs (governance applications). Games and identity applications are other examples.

Answer : Valid transactions are processed by a decentralized network following public rules. There is no central operator who can block a particular user or transaction from interacting with the contract.

Answer : No. Many dApp front ends are hosted on ordinary web servers controlled by a team. Only the smart-contract back end is guaranteed to be decentralized; front ends can be decentralized by hosting them on networks such as IPFS.

Answer : Centralized apps offer familiar logins, password recovery and free actions. dApps require users to manage keys, pay fees and wait for confirmations, which many users find harder, although newer wallet technologies are improving this.

Answer : The user, through the private key that controls their address. The dApp contract enforces rules, but no company can move a user’s assets without a valid signature or a rule written into the contract.

Answer : The contract code and every transaction are publicly visible on the blockchain, so anyone can audit how the application works and verify that it follows its stated rules.
MCQ Test : Check Your Understanding (5 questions)

Select an option and press Check Answer, or answer all questions and press Submit Test to see your score. Each answer comes with an explanation.

Q1. In a dApp, what replaces the traditional back-end server?

Show Answer

Correct Answer : C. Smart contracts on a blockchain
The back-end logic of a dApp is implemented as smart contracts running on the blockchain.

Q2. How does a user typically authenticate to a dApp?

Show Answer

Correct Answer : A. By signing with a wallet’s private key
Wallet signatures prove control of an address; no password database is needed.

Q3. “No single node instructs other nodes what to do” describes:

Show Answer

Correct Answer : D. Decentralization
Decentralization is about the absence of a single point of control.

Q4. Why are large files usually stored off-chain (e.g. on IPFS)?

Show Answer

Correct Answer : B. On-chain storage is very expensive
Every node stores on-chain data and every byte costs gas, so large files are kept off-chain with only their hash on-chain.

Q5. Which is a LIMITATION of dApps?

Show Answer

Correct Answer : C. Difficulty fixing bugs after deployment
Deployed contract code is immutable, so bugs are hard to fix unless an upgrade pattern was planned.

Bibliography/References

The notes, questions and MCQs on this page are original explanations written for this course. The works listed below were consulted and are cited for attribution and further reading. Product names, logos and trademarks belong to their respective owners. Short quotations, where used, are marked and attributed.

  1. GeeksforGeeks. (n.d.). Centralized vs. Decentralized Applications. https://www.geeksforgeeks.org/centralized-vs-decentralized-applications/
  2. ethereum.org. (n.d.). Introduction to dapps. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/dapps/
  3. ethereum.org. (n.d.). Web2 vs Web3. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/web2-vs-web3/
  4. ethereum.org. (n.d.). Introduction to smart contracts. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/smart-contracts/
  5. IPFS Documentation. (n.d.). What is IPFS? https://docs.ipfs.tech/concepts/what-is-ipfs/
  6. Antonopoulos, A. M., & Wood, G. (2018). Mastering Ethereum: Building Smart Contracts and DApps. O’Reilly Media.