Decentralized Applications-Harnessing Bitcoin’s Blockchain Technology Noted
What’s Dapps (Decentralized Applications)
Take advantage of Bitcoin’s underlying technology, the blockchain, to build massively scalable, decentralized applications known as dapps.
You’ll learn how the blockchain’s cryptographically stored ledger, scarce-asset model, and peer-to-peer(P2P) technology provide a more flexible, better-incentivized structure than current software models.
Table of Content
1. What is a Decentralized Application
2. A Flourishing Dapp Ecosystem
3. Building Your First Dapp
1. What is a Decentralized Application
Author stated that a new model for building massively scalable and profitable applications is emerging. Bitcoin paved the way with its cryptographically stored ledger, scarce-asset model, and peer-to-peer technology. These features provide a starting point for building a new type of software called decentralized applications, or dapps.
Before author get into the details of Dapps, he go through the Bitcoin. The blockchain is a massively replicated database of all transactions in the Bitcoin network. It uses a consensus mechanism called proof-of-work which prevents double-spending in the network — a problem that had plagued cryptographic researchers for decades.
Author also explain why the blockchain is decentralized and distributed. Bitcoin is distributed because its timestamped public ledger, the blockchain, resides on multiple computers. It’s also decentralized because if one node failed, the network is still able to operate. That means any app that a blockchain alongside other peer-to-peer tools can be distributed and decentralized.
A decentralized application has four features :
- Open Source
- Internal Currency
- Decentralized Consensus
- No Central Point of Failure.
1. Open source: A decentralized application require users to trust so a decentralized application should open their source code and let people to validate whether code has problem. However, open sourcing code means any competitor could take all of work or create a similar product or services. Bitcoin is a good example of an open-source dapps. Most cryptocurrencies is based on bitcoin concept to be created.
2.Internal Currency : If you open source your dapp, how ae you supposed to make money? We can think about this question. A dapp application must be to provide a service or solve a question but a dapp developer also want to make money from his application.
Author provide his answers. The answer is to use appcoin. Users need this appcoin to use the network. Owners of scarce resource or services get paid in appcoin. In the Bitcoin network, the owners (miners) of the scarce resource (computing power) are paid with transaction fees directly from the users so they can use the service (transfer service)
3.Decentralized Consensus : nothing to note
4. No central Point of Failure : Dapps can’t be shut down, because there is no server to take down. Data in a dapp is decentralized across all of its nodes. Each node is independent; if one fails, the others are still able to run on the network.
2. A Flourishing Dapp Ecosystem
In this chapter, author describe what a flourishing dapp ecosystem would look lik and also discusss the technical requirements to make a dapp and what is possible.
Blockchain 1.0 is currency.
Blockchain 2.0 adds in contracts (stocks, bonds, financial assets)
Blockchain 3.0 encompasses applications beyond pure finance in areas like governance and health(Dapps)
As a dapp developer, you just want one thing: the right tools to make your dapp secure, robust, and profitable.
There are four concepts in web applications that have traditionally been in the domain of centralized control: identity, wealth, data, and computing. Each of these requires trust in a provider — a trust that can be betrayed. How to domain these four concepts with the Dapp?
Decentralized Data :
Option 1 : Storing Data directly in the bitcoin blockchain.
Storing data on the blockchain is not short-term solution but also not a long term solution. The bitcoin blockchain’s design purpose is storing simple transaction logs. Even so bitcoin blockchain has grown to 159.6 GB (https://charts.bitcoin.com/chart/blockchain-size) . How long do it download a bitcoin blockchain? It must take up to a week. It is not efficient.
Option 2 : Storing Data in a Distributed Hash Table.
Decentralized Wealth :
Author explains what coin has real value and good purpose. Bitcoin was the first successful decentralized store of wealth. Bitcoin allowed for decentralized value transfer and fulfills the need for decentralized payments in a dapp. The litecoin creator wanted faster payments than Bitcoin so he forked Bitcoin, added some speedy code, and Litecoin was born. Litecoin is a rare example that server a good purpose — faster payments. But most altcoins don’t.
What is identity? Who owns identity? How should identity look on the Internet?
Actually, the centralized identity already is used in a wide variety of applications like Facebook, Google+ and so on. We already login many application by these identity.
To implement the identity, people would be willing to store a private key safely, identity will be decentralized and provided by trusted providers. OpenID is a good example. OpenID is a decentralized identity protocol that takes advantage of existing web protocols like HTTP, SSL, and URI. OpenID abstracts the need to store your identity with the service provider so that you can only use a trusted source and that your identity will be carried around the multiple providers. A decentralized identity must has three attributes (human-meaningful, decentralized, and secure).
Decentralized Computing :
When we can store coin and identity on blockchain, where host the source code? Ethereum is a good example. Ethereum’s blockchain differs in many ways from the Bitcoin blockchain. Ethereum’s own EVM (Ethereum virtual machine). But we cannot put all source code on Ethereum’s blockchain. So using the blockchain alone as a complete VM is not a good idea.
nothing to be noted.
Decentralized Architecture: Introduction to IPFS
Centralized architecture : REST , CRUD and MVC but how to apply these in a decentralized architecture.
What about smart contracts? What role do they play in MVC?
In a dapp, there are certain elements that need consensus via smart contract that would usually require a server. Smart contracts are technically “models” and user can feed data into them via transaction but they are not the “model” in MVC architecture. They can work alongside your existing models but their utility really applies in special scenarios.
OpenBazaar, Lighthouse and La’Zooz
Author introduces how many Dapps work and its flaw in detail.
OpenBazaar is a platform that lets buyers and sellers connect directly to sell their goods without involving a third party to host the data and charge a transaction fee. Developers don’t really profit from OpenBazaar and they receive funds in the form of donations from people.
However, OpenBazaar has a major flaw: no incentivizing network member. Author suggests that OpenBazaar should issue its own currency that would be used to make purchases inside the dapp. But if they issue their own currency whether OpenBazaar can keep growing. Second issue author mention is data storage model. OpenBazaar store data in a local SQLite datastore with no redundancy or replication. Author suggests that they should use IPFS for data storage. The more people can visit the store.
Lighthouse aims to decentralize crowdfunding and attempt to cut out the middleman so that fundraisers can get all of the money their supporters intend to give them.