Babbitt Column | The Essence of Blockchain: The Essence of Computation and Consensus

Blockchain essence

Blockchain is a good thing for everyone to pay attention to, but it is very unwilling to see all kinds of blockchain projects blindly launched, resulting in waste of various social resources. The blockchain technology itself is still in the development stage, and there are still many core technical issues to be broken. The nature of the blockchain technology is still full of different understandings. We will share with you the computational nature of the blockchain, technical difficulties, business adjustment, and social impact.

(1) Calculation paradigm

The essence of the blockchain is that the von Neumann computing system no longer relies on specific computing physical facilities, so that its computational process and related storage and communication are no longer unilaterally controlled, but are controlled by multiple participants in multiple time divisions. This is a new computing paradigm, the blockchain computing paradigm, the so-called non-tamperable database, is only a part of the extension of this connotation. Consensus algorithm, distributed network is an important technical means to achieve this computing paradigm. These are the technical nature of the blockchain.

What does it mean? All previous information systems, such as payment, search, and recommendation, are all owned by a single enterprise. The data is good, the calculation code is good, and the input/output of the calculation is completely controlled by a single enterprise. If this calculation is for large-scale public service, then the company can arbitrarily manipulate the calculation process, arbitrarily modify the data and status, limit and discriminate input from the outside, and thus seek high profits and even cause serious social problems (this Class problems have been highlighted in the search field). At the same time, enterprises also have to bear huge responsibility to protect the data and computing process of this information system, otherwise it will lead to serious large-scale data leakage problems (such as the often heard of drag-and-drop events, resulting in the theft of personal data of millions of users. Take, even as open house records, etc.).


Blockchain calculation paradigm, where multiple parties use time to control the computational process, rather than a single party

In the blockchain calculation paradigm, there will be multiple companies and institutions that jointly control this calculation process. This calculation is done on one company's computer, and the next calculation is done on another organization's computer. In each relay computing process, if any organization tampers with the calculation logic or maliciously modifies the data, it will immediately be discovered by the next computing company and rolled back to the correct calculation step in the previous step. Once this calculation logic and rules are preset, no company can tamper with it, and no company can manipulate this calculation process.

One of the core advantages of doing this is that in the blockchain computing paradigm, of course, the so-called no evil like Google is no longer a slogan, but a proof that can be verified. That is to say, the fundamental advantages of the blockchain calculation paradigm are:

In the context of the formalization of all business information, this computing system can be self-certified.

This is something that the Internet technology stack could not achieve before, and it is also the fundamental new technical support brought by the future blockchain computing paradigm to the actual business. Because of this technical support, Bitcoin can be implemented, no one can manipulate the established distribution rules and transfer rules of the Bitcoin system, although this network allows anyone to participate in its relay calculation process anonymously, that is, out of the block. We usually say that the non-tamperable database is also derived from this technical support. We initially agreed that the data cannot be tampered with and can only be appended. Under the blockchain calculation paradigm, this convention can be strictly enforced and will not be manipulated. The real challenge here is not to establish a rule that cannot be tampered with, but how to make this rule strictly enforced. This is the core competence of the blockchain.

(2) Consensus mechanism

Referring to the blockchain, Consensus is one of the most important concepts to be translated into a consensus mechanism, or a consensus algorithm, or a consensus protocol. What the hell is this thing? The essence of the consensus mechanism is a solution. When there is an inconsistency in a distributed system, how do we finally decide a uniquely accepted result and dissolve the inconsistency? Note that the consensus here only refers to an algorithmic scheme in a distributed system, and our general sense of public opinion, social identity, organizational relationship, nothing, just like Lei Feng and Lei Feng Tower. Don't be fooled…

Why does the blockchain need a consensus mechanism? The root of the blockchain is derived from the computational nature of the blockchain.

Because in the blockchain system, the calculation is done by all the parties in the whole network. In the decentralized blockchain network, there is no general commander to assign this relay process, so even if there is no malicious attack, it will inevitably be The situation in which oneself competes for the relay occurs, resulting in multiple inconsistent relay results in the entire system. The role of the consensus mechanism is to finally determine at this time which results should be left behind, and then follow this and go; which results will be abandoned.

For this problem, very early in the field of distributed systems, in order to solve the problem of fault tolerance, there is an answer, and it is summarized as a The Byzantine Generals Problem, and its corresponding effective solution becomes Byzantine Fault Tolerance. ), is the BFT that is often heard. As early as 2007, this problem has an efficient algorithm (PBFT), but why did the end-of-2008 design of the Bitcoin system published by Nakamoto to adopt a completely different design without using the BFT algorithm?

Let us first look at what is fault tolerance? Suppose there are 100 sensors that are observing, for example, whether the machine is functioning properly. Then if some of the sensors are broken and given incorrect observations, how do we finally infer the correct observations? This is fault tolerance. Of course, the logical solution is as you think directly now, and the minority obeys the majority, and in fact it is so simple. Of course, in the actual algorithm, the final result (based on digital signature) should be passed and iterated, and the time limit for the result determination (so-called epoch) should be limited, and the majority should not be dealt with.

As you can see from the above example, in BFT, the number of minority-subjected numbers is derived from how many consensus participants. This participant must always be pre-set. This means that who is the participant, there must be a process of pre-negotiation and setting. In the blockchain system, there is a name called a coalition chain or a permissioning blockchain system. This is why it is called the Byzantine General. Because you have to be a general first, then the question is coming. Who will approve you to become a general?

This is the essential reason why the Bitcoin system did not use the BFT algorithm at first. In the Bitcoin system, there is no approval process for a participant, and anyone can directly participate in this consensus process, the so-called public chain or the permissionless blockchain system. This is how do we use the minority to obey the majority? We don't even know how many participants there are. This part is the most dazzling part of the Bitcoin system design. Many people don't understand this thing, they feel that the Bitcoin system seems to be a pile of existing technology, no technical content.

In the Bitcoin system, the minority obeys the majority, which is no longer a consensus participant, but the result of the hash collision. Then combine the longest chain rule to form a consensus, the so-called Proof-of-Work. From here you can see that the workload proof program solves a problem that is more difficult and more challenging than the Byzantine general problem, that is, the consensus of the consensus is achieved in the case where the set of participants is unknown. Of course, there are still a lot of details about the specific implementation of the algorithm, the difficulty of the proof of work, the longest chain principle of consistency, and the principle of the most subtree that is improved later.

Then there is the so-called Proof-of-Stake consensus system, which uses the number of assets to define this minority-submissive number. The preset number of participants required in the BFT consensus algorithm is defined first by the number of assets. In this way, it is also possible to implement a chain without a license. It's also a good idea, but where did the initial assets come from?

Finally, mention the performance, that is, the throughput. For a long time, everyone thought that the throughput was determined by the consensus algorithm, and then it was not. The centralized consensus algorithm mentioned above can set arbitrary block size and outbound interval to realistically require throughput and block acknowledgement delay. As long as the entire underlying network has enough bandwidth.

Next, we will focus on this matter.