Chapter 0 Introduction
The concept of Dapp is widely spread in the chain, but it is unclear. This is a trick.
- Research | Domestic encryption algorithm combat government affairs alliance chain Can they replace mainstream public chain algorithms?
- Focus on KeyShard PlatON algorithm scientist Xie Xiang live premiere
Chapter 1 Data Addition Algorithm
The definition of the messy Dapp on the Internet, what runs on the blockchain, and what can't be closed is too difficult to understand. Let's define it from another angle.
Dapp is "data + algorithm", as long as you distinguish between what the data is and what the algorithm is, you can define a Dapp.
The essence of the blockchain is to change the originally disordered data (transaction) into ordered data through a specific algorithm, and become irreversible data.
Dapp also uses specific algorithms (transactions), through the blockchain itself algorithm, and then with Dapp's algorithm to get some more specific data than the block data.
Where does the data come from in Chapter 2 ?
Dapp's data, by reason, should come from the block. But now some Dapps on the market don't strictly take data from the blockchain.
Many Dapps have been built on the BCH and BSV chains, and the compliance data is taken from the blockchain.
For example, memo.cash, this is a decentralized Weibo. All transactions sent through the Dapp specification according to memo.cash are a 100% BCH/BSV compliant transaction with an Op_return output. All of these transactions are 100% stored on the BCH/BSV blockchain. Memo.cash does not take any data from the blockchain. Memo.cash parses these transactions, which can be their own algorithms, into a microblog, and presents them to the user.
Many Dapps on ETH, the data is also taken from the ETH blockchain. For example, the famous crypto cat, all data is constructed by transactions conforming to the ETH protocol and stored in the block. Encrypting the cat's dapp algorithm reads these transactions on the blockchain and parses them into pictures of the various colored cats that the user sees.
Many of ETH's Dapp data comes from extra-chain data.
The vast majority of Dapps on EOS, the data is partially part of the blockchain and part of the chain. For example, most gaming games on EOS have a critical data – random numbers, from the server, this data is not constructed according to the EOS protocol.
What is the difference between data from the chain and outside the chain?
The data comes from the chain, which means that the data can not be deleted and can not be tampered with, which is the key to Dapp really decentralized operation. If the key data of Dapp runs from the outside of the chain, the result of this operation is greatly affected by the data outside the chain, and the data outside the chain does not have the characteristics of the blockchain.
However, the data is only taken from the blockchain, and the application scenario is quite limited. Because the ability to trade structured data is limited by blockchain protocol restrictions, the performance of the blockchain also limits the amount of data available. This is why there are not many Dapps on the market that strictly follow the data only from the chain. Most of them take a compromise. Some of the data comes from the chain. For example, the data related to the currency is on the chain. The rich feature data comes from the central server.
Chapter 3 Where is the algorithm?
Dapp's algorithm is the part of the program that processes the data. We need to see where these algorithms are stored and what physical hardware is running.
The algorithm of Dapp on BCH/BSV may only be run by an out-of-chain server. The code of the algorithm can be stored in the chain, or it can be stored only on the server, or partially on the chain, and some servers exist.
The Dapp and algorithm on the BCH/BSV are basically impossible to run by the blockchain, ie it is completely impossible for the miners to run these Dapps. Because the computing power of the Bitcoin system is a scripting engine, the programmability is much smaller than that of a virtual machine.
For example, the recently popular BitDb series Dapp on the BSV, the algorithms are running on the designer's server.
Many of the Dapp algorithms on ETH run directly on the blockchain. It is the calculation of the algorithm performed by the miner. Because the virtual machine is deployed on the ETH system, it can provide a complete computer function. Programmers can write a program that runs entirely on the ETH system without any external server.
This is the case with the most famous Fomo3D, where all data and algorithms are 100% running on the ETH blockchain.
There are also a large number of Dapp algorithms on ETH that are partially on the chain, partly outside the chain, or completely outside the chain. The decentralized exchange on Ethereum is that the account system is on the chain, and the recharge is on the chain, but the engine is outside the chain, and the withdrawal is also carried out from the chain.
Dapp on EOS is similar to Ethereum, which can run 100% on the chain, outside the chain, or both.
What does the algorithm mean on the chain or out of the chain?
The algorithm code is stored in the chain, and the algorithm is still running on the chain, which means that the inevitable modification of the algorithm is guaranteed. But it also means that the algorithm itself cannot update the iteration. Like WP and part of DOS for EOS. The most classic is Fomo3D, the algorithm and data are protected by the Ethereum blockchain. This means that Dapp's rules will not change.
If the algorithm just stores the code on the chain, it runs out of the chain. The user needs to do an extra operation to compare whether the actual running algorithm is consistent with the code stored in the chain. In order to ensure the irreversible modification of the algorithm. At the same time, this algorithm running outside the chain can be upgraded.
If the algorithm is not stored in the chain, it only runs out of the chain. The algorithm variability is more flexible.
Chapter 4 Algorithm Open Source Provides Credibility
The main purpose of the algorithm to store and run on the blockchain is to increase credibility. But most software, it is best to update, only the underlying protocol does not need to be updated. And if you run the algorithm on the chain, you lose the ability to update.
Here to talk about EOS, the contract on EOS can be overwritten, this is the setting of the EOS system. The algorithm of Dapp running on the chain on EOS can also be updated.
Is there a way to increase the credibility of the algorithm and get an algorithm update? This is open source. But this trustworthiness still depends on the review of professionals, ordinary users do not have this ability.
Chapter 5 Blockchain Performance
Running the algorithm on the blockchain is really cool, and does not require the developer to have a server, 100% to the miners on the blockchain. But there is a very cruel fact that the blockchain can't run a lot of algorithms at the same time. The current blockchain performance does not support the running of many Dapps at the same time.
The parallel computing power of blockchains is quite limited. This is the consensus of all distributed nodes in the blockchain, which is determined by this feature.
Ether Square runs the Dapp, a Dapp. When it was hot, it caused the entire network of Ethereum to be congested.
This involves a key concept of scalability. The scheme of running the algorithm on the blockchain will hurt the scalability of the blockchain, and such a Dapp design is not scalable. Running the algorithm on the chain does not hurt the scalability of the blockchain.
Chapter 6 Dapp Design Principles
Now we know, Dapp = data + algorithm.
The data can all come from the blockchain or partly from the blockchain.
The algorithm can run entirely in the blockchain or on an out-of-chain server.
Data 100% of the Dapp in the chain can get the decentralization, non-tampering and non-deletable features of the blockchain . Otherwise, it is better to use the centralized server APP to design. It is not necessary to use the blockchain.
100% of the data is stored on the blockchain, and the algorithm runs 100% on the blockchain. This Dapp will definitely not go out of business. As long as it is designed, it can survive forever.
The data is stored on the blockchain and the algorithm is running out of the chain. It can also guarantee that Dapp will not close down. Even if the current developers don't do it, the server is shut down, and other developers can redesign the algorithm to take the data out of the blockchain and run it.
As long as the key data is not stored in the blockchain, then this Dapp can be closed down, and other developers can't recover.
The algorithm runs 100% on the blockchain. This design makes the blockchain non-extendable. Only when the algorithm is run to the chain, a large number of Dapps can run in parallel on one chain.
So I think the reasonable Dapp design principle is: 100% of the data is on the chain, and the algorithm is 100% running outside the chain.
Chapter 7 Conclusion
I accidentally blown the simple design of Bitcoin (BTC/BCH/BSV).