How do I define dApps?
--
Everyone may have different definitions of dApps. Some people may say any apps using crypto as payment are considered dApps. Others may say it has to have a smart contract logic running in the blockchain. Well, I have a different definition. I think a dApps have to
- Pure serverless. All code can be run on any qualified nodes.
- No single point failure
- Resistant to any control from anyone, including powerful central authority or even inventor himself.
Based on my definition, most of the existing dApps probably have to be kicked out. Because most of them have to be deployed to a server or so-called “serverless” cloud services. If the server is blocked or the owner was forced to shut down the service, the dApp won’t run any more.
Someone may say, come on, in this case, there won’t be any dApp left! This is not true, I can give you two good examples: Bitcoin and IPFS.
Two Example Real dApps: Bitcoin and IPFS
There is no specific bitcoin server. Bitcoin code runs on any bitcoin mining machine. If you want, you can run one yourself, just not likely profitable. Since the first day, Bitcoin fought with all kind of resistance from many governments. It has been banned by many countries, but it is still alive. No one, including Satoshi, its inventor, cannot shut it down.
Bitcoin is based on blockchain technology, but IPFS has nothing to do with blockchain. The common concept between Bitcoin and IPFS is “Decentralization”. Similar to Bitcoin, IPFS code can run on any IPFS node. When you upload a file to an IPFS node, it actually stays “anywhere” in the IPFS’ p2p network. As long as there is more than one node “pined” your file, you can find it anytime later from any running IPFS node. Permanently remove a file from IPFS is as hard as shutting down Bitcoin. Since the decentralized design is so robust and endurance, you have to force to simultaneously shut down all running nodes, without a single node escape. And make sure all history records are wiped clearly, otherwise, any node may just restore all the history once restart.
Shutdown Bitcoin and IPFS are very hard, alter the data are hard too. You do not need a powerful miner machine, any computational device to validate the data. Technically, there is no way to alter the historical data as long as it is recorded. Everything is Permanent stored.