Blockchain applications vs dApps¶
As blockchain applications are also in a sense decentralized applications, you may wonder what is the difference between blockchain applications and dApps, or if there is any difference at all.1
In short, the main difference between dApps and blockchain applications is that blockchain applications each run on their own blockchain/sidechain, while dApps are sharing the blockchain network with other dApps.
dApps are generally constructed as smart contracts, for example on the Ethereum blockchain. The development of blockchain applications is quite different, because it is much more similar to building a normal web application.
Most functionalities of smart contracts can be implemented in blockchain applications much easier and in a more straight forward manner.
However, there is one important difference here to dApps, when it comes to applying new On-chain logic to the application:
- New smart contracts can be directly applied on the running blockchain
- Adding new on-chain logic to blockchain applications always requires a hard fork in the network. Therefore, blockchain applications are less flexible than dApps, when it comes to uploading new logic on the running chain.
If the flexible characteristics of smart contracts are desired inside a blockchain application, it is of course also possible to develop a blockchain application which supports smart contracts. For example, a new module could be added to the application, which accepts smart contracts. This way it is possible to have the best of both worlds combined.
Additionally, smart contracts can reuse an already existing blockchain, which saves time when launching the application, as it is not necessary to take care of setting up an independent blockchain network, finding delegates, etc.
Blockchain applications on the contrary rely on their own blockchain, and therefore also need to take care of maintaining their own network. In the beginning, this will make the launch of the application a little more complex, but having an independent network comes along with numerous benefits, which are covered in the following paragraphs.
The Lisk documentation is referring to applications built with the Lisk SDK as "blockchain applications" and not "dApps", to clarify the difference that applications are not sharing a common blockchain, but instead are each running on their own chain. As a result blockchain applications have the following advantages:
-
Lower transaction fees, as high traffic of one blockchain application has no effect on other blockchain applications.
-
The blockchain for the application can be designed with the optimal characteristics for the specific use case (for example by adjusting the block time or the number of delegates, or even changing the whole consensus algorithm).
-
A much more scalable blockchain, as it only handles the data from one blockchain application. Therefore it is growing much slower in size, and doesn’t suffer so much from potential bottlenecks in the network, which can happen during times of high workload on many different dApps.
-
Interoperability: Register a blockchain application as a sidechain to connect it to the Lisk Mainchain (coming soon). This will provide seamless interoperability to the Lisk Mainchain and all of its' connected sidechains.
Why Interoperability?
Scability:
❌ one blockchain:
- limited processing capacity (transactions per second)
✅ interoperable blockchains:
- allows to scale processing capacity with number of connected chains
Flexibility:
❌ one blockchain:
- only well-suited for limited set of use cases (e.g. payments, storage, smart contracts, ...)
✅ Interoperable blockchains:
- cover wide range of use cases
- can customize and optimize chains for specific use cases (e.g. consensus, block time)
- independent governance making protocol upgrades easier