Blockchain is a popular new concept that contains two concepts: technology and finance. From a technical perspective, it is a distributed database that sacrifices consistency efficiency and guarantees final consistency, which is of course one-sided. From an economic perspective, this highly fault-tolerant peer-to-peer network meets one of the essential requirements of the sharing economy: a low-cost trusted environment. This time, I will talk about blockchain technology, the current blockchain technology architecture, and introduce the value Internet. Since blockchain is an emerging technology concept, all views in this article represent personal opinions only and may not be entirely correct. #1. The correct attitude of technical personnel towards blockchainAlthough blockchain is an emerging concept, the technology it relies on is not new at all, such as asymmetric encryption technology, P2P network protocol, etc. It is like Lego blocks, the blocks are limited, but different combinations can produce very interesting things. I have met some engineers who, when they first came into contact with blockchain, all said the same thing: it is a mature technology, isn't it just distributed storage? From the perspective of an engineer, it is natural to first map this new concept into their own knowledge framework. However, upon closer examination, it is found that this one-sided understanding may lead to a misunderstanding of blockchain, that is, as a technician, they ignore the economic characteristics of blockchain - a decentralized and completely autonomous system. Blockchain is essentially a value transfer protocol based on P2P. We cannot only see P2P but not the value transfer. Similarly, we cannot only see the value transfer but not the underlying technology of blockchain. It can be said that blockchain is more like an interdisciplinary subject, combining P2P network technology, asymmetric encryption technology, macroeconomics, economic game theory and other knowledge to construct a new field - the exploration of the value Internet. So what is the Internet of Value? The Internet of Value can be the payment business derived from the current booming e-commerce. But is it really just the payment field? Obviously, this is not enough. The primary capital market, the confirmation and transfer of physical assets, the registration and delivery of securities, the certification and anti-fraud. Let's think about it carefully. Are there not enough professional bad reviewers on our major e-commerce platforms who maliciously fake orders? In today's financial sector, apart from the convenience of payment, in most other businesses, we are like walking in chains. We repeatedly confirm, review, and supervise. We repeatedly build large and small high-availability clusters to ensure the reliability and continuity of online services. We hire security engineers and deliver penetration testing projects. Why? Because the cost of cheating is too low, so low that you can withdraw millions of funds by just changing a row of records in the database. The powerful Internet has provided us with a high-speed information transmission channel at almost zero cost, but it does not have a low-cost, reliable, high-speed value transmission channel. This is what blockchain is about to bring. Blockchain is a public distributed ledger. Here is a brief introduction from a technical perspective:
Blockchain is essentially a technical solution to solve the second situation mentioned above. To be more precise, it should be called a distributed redundant chain ledger solution. I have summarized some elements of blockchain in my previous articles:
Therefore, as a technician, you should not only see the technology that blockchain relies on, but also pay attention to the points and aspects beyond blockchain. Overall, blockchain will be much more interesting. #2. Introduction to the general architecture of blockchainThere is a lot of information on the development history of blockchain itself on the Internet, so this article will not go into details. As for the introduction of blockchain technology, there is detailed information in the communities of various blockchain platforms, but the summary of this information and the abstract introduction of common concepts are still rare. This article attempts to summarize it. Before the introduction, I would like to briefly introduce the concepts of public chain and consortium chain. These concepts were proposed by Vitalik, the founder of Ethereum. I have done some research based on these concepts. In fact, it is very simple to distinguish between public chains and consortium chains. Just look at the access rights of the blockchain. If access to the blockchain requires permission from the nodes on the chain, then it is a consortium chain, otherwise it is a public chain. Based on the name, we can also "take the words literally". Public means a completely open network, and alliance means a semi-open network that is shared among members. Non-members do not have free access rights, so we also call the alliance chain a permissioned chain. Let’s take a look at several mainstream blockchain platforms (public chains, all open source):
I usually jokingly call them the "Big Three". From an ecological perspective, Bitcoin is the most mature and stable, Ethereum is more like a warrior rushing in the front, and BitShares' ecosystem is much smaller than the first two, but from an innovation perspective, it is no less than the first two. Many other projects are derived from these three blockchains, so based on these three, you can basically understand the blockchain. Another project that must be mentioned is the Linux Foundation project - the HyperLedger project (focusing on consortium chain, open source), which is also aimed at creating a universal blockchain technology. However, I think it is still under development and there are no specific application cases, so I will not talk about it for now. There are also some interesting alliance chain projects - R3 CEV project (alliance chain, closed source), and China's R3 project - ChinaLedger (alliance chain, closed source). Of course, these are not open source, and I cannot obtain useful information for analysis, so I will not expand on them. From a technical point of view, different business scenarios have different requirements for blockchain. For example, real-time settlement business requires blockchain to provide delivery in seconds, which corresponds to the requirement of block speed. Too fast block speed will often lead to blockchain fork, forming orphan chain. Orphan chain is invalid, so the transaction will be invalidated, affecting the final consistency of the blockchain. If frequent forks cause a considerable proportion of user transactions to fail, the system can be considered unreliable. If we place this kind of business with high real-time requirements into the consortium chain, we can control the risks and avoid the above problems by adjusting the consensus algorithm and using the fast consensus model. Although it is not as robust as the public chain, it is sufficient for some special scenarios. Therefore, at the architectural level, the technologies of public chains and consortium chains should be treated differently. However, there are some common concepts in the overall design of the client, as shown below: (Figure 1) A blockchain is divided into at least three layers. The bottom layer is some common basic modules, such as basic encryption algorithms, network communication libraries, stream processing, thread encapsulation, message encapsulation and decoding, system time, etc. The middle layer is the core module of the blockchain, which generally includes the main logic of the blockchain, such as P2P network protocol, consensus module, transaction processing module, transaction pool module, simple contract or smart contract module, embedded database processing module, wallet module, etc. The top layer is often an interactive module based on Json Standard RPC. Based on Json-RPC, we can also make a better UI interface, or it can be a web-service. If the blockchain supports smart contracts, it may be divided into more layers, such as adding a BaaS layer. Smart contracts on the blockchain provide autonomous services, such as the following Ethereum architecture diagram (from Google, for reference only): (Figure 2) This stratification focuses more on the stratification of the blockchain itself, that is, the business perspective, rather than being entirely technical. Let’s turn to the design of Bitcoin: (Figure 3) The coupling between several modules of Bitcoin is actually quite high, and there are many historical burdens. When developing Bitcoin, the inventor of Bitcoin, Satoshi Nakamoto, used VC++, but the sstream stream processing performance in the standard library of VC++ was very impressive, so he had to give up and implement a stream processing container based on vector<char>. With the launch of c++11 and the update and iteration of the standard library, the performance is incomparable. From the whole picture, we can see that Bitcoin has relatively few modules and is relatively simple. Chain-paramters describes the parameter settings of the entire blockchain, wallet is related to address/encryption and storage, and mem-pool is the unconfirmed transaction pool. Thanks to the immortal contributions of Bitcoin core developers, the quality of Bitcoin code is now quite good compared to the Bitcoin code in the Satoshi era. Regardless of the above design, it generally starts from the P2P network protocol. As a P2P wallet, it must provide both Service and Client. As a Service, it relies on the P2P network protocol, and as a Client, it relies on Json-RPC. It should be pointed out that the account models currently used by the "Big Three" are different (the so-called account model refers to the account accounting method). Bitcoin uses the UXTO model, while Ethereum and BitShares use the account balance model. UXTO model (Unspent Transaction Outputs (UTXOs)): This model expresses a concept of transfer, that is, any new currency generated will only be transferred and not destroyed in its subsequent life cycle. The transfer is essentially controlled by the signature and verification of the encryption algorithm: (Figure 4) Account balance model: The account balance model abandons this strongly verified account model, that is, the account balance returns to digital addition and subtraction, which improves transaction efficiency. #3. Consensus Algorithm and DistributionFinally, we have come to the point. Each section of this article can actually be expanded into an independent article. Due to limited content, I will just keep it brief. The so-called blockchain consensus process, as mentioned above, refers to the process of objectively recording the transaction data of the entire network and making it unchangeable. Currently, the "Big Three" use different consensus algorithms. Bitcoin uses Proof of Work (PoW), Ethereum is about to switch to Proof of Stake (PoS), and BitShares uses Delegated Proof of Stake (DPoS). I call the above algorithms "economic" algorithms. The so-called economic algorithms make the cost of cheating calculable and the cost of cheating often far greater than the benefits of cheating, that is, cheating is not profitable. Through this idea, an algorithm for the game between nodes is constructed and it is made to tend to a stable balance. Correspondingly, we also have distributed consistency algorithms in the computer field, such as Paxos and Raft, which I also call traditional distributed consistency algorithms. The biggest difference between them is the reliability of the system in the Byzantine Generals Problem scenario, that is, Byzantine fault tolerance (PBFT algorithm supports Byzantine fault tolerance). However, both Paxos and Raft algorithms may theoretically enter an infinite loop where the vote cannot be passed (although the probability is actually very low), but they both meet the safety requirement, but relax the liveness requirement, and the same is true for PBFT. Here are some similarities and differences between traditional distributed consensus algorithms and the blockchain consensus process: Similarities:
Differences:
Considering the above differences and combining the characteristics of public chains and consortium chains, we have:
Due to the semi-closed and semi-open nature of the alliance industry chain, it is feasible to use Delegated Proof of XXX. It is also possible to consider adding Byzantine fault tolerance/security protection mechanisms based on traditional consistency algorithms for improvement. For public chains, "economic" algorithms such as PoW/Pos/DPos may be the optimal algorithms. Technically, for the different consensus algorithms mentioned above, many of our newly developed blockchains support a corresponding feature: the consensus module is pluggable to meet the requirements of different scenarios. The following figure is a schematic diagram of the future blockchain ecosystem: (Figure 5) The public chain provides a trusted and reliable value transfer network, on which you can continue to build decentralized applications (DAPP) or deploy alliance chains, or even traditional databases, and build C-end applications on the upper layer. ref1: A brief discussion on blockchain consensus mechanism and distributed consistency algorithm – blockchaindev.org ref2: From Paxos to Byzantine Fault Tolerance, and the Consensus Protocol of Blockchain (Reposted) – blockchaindev.org #4. Digital assets and value circulation networkHere is a picture: ref: Metaverse White Paper - CN (Summary) Therefore, blockchain is still a growing teenager. Combined with Figure 5, we still need to make tremendous efforts to build a value transmission network with complete infrastructure and a blockchain ecosystem with rich upper-level applications. The next goal is to digitize assets (similar to asset securitization). For example, we can digitize rare items (artworks/antiques), intellectual property rights, and income rights such as bill funds. This will greatly improve the efficiency of market operations. Equipped with smart contracts and even artificial intelligence, a programmable society is no longer a dream. ——————————– Q: I still feel it is too abstract. I still cannot understand the blockchain concretely, and I haven’t found a concrete explanation. It’s confusing??? A: Just like the term blockchain, it was created and there is no previous concept that can be mapped to it, so it is easy to understand. Let's not talk about this concept, we just need to think about what else our Internet needs. As mentioned in the Bitcoin white paper, a peer-to-peer cash system has very low prerequisites for use. It does not require registration or a mobile phone number. It is a peer-to-peer network. As long as you use a device to access it, you can use it. The concept of blockchain is the same. The purpose is to build a peer-to-peer ecosystem and deconstruct the asymmetry brought about by power. It is just a shared general ledger, which is different from the multiple nodes in the network that keep accounts and reconcile them by themselves, which disintegrates the central power. Q: How is blockchain technology applied in Internet identity authentication? A: This is a good question. The blockchain project I am currently working on covers this concept, which is what you call Internet identity authentication. We believe it is a necessary link to connect blockchain to real business. In our concept, what is identity? Identity is not just an ID number or a password, but a set of operation records of a user. The code of this record set is the identity. Just like when an account is lost and an appeal is made, the content of the appeal is the real location of you. The same is true for blockchain. It needs an ID, and it also needs to automatically verify the legitimacy of your historical records. At present, Internet identity authentication relies on the public security system. The simplest solution is to map the identity system in the public security system to the blockchain. Another solution is to use a user-defined record set to verify the identity based on the transaction history. Of course, in the more distant future, combined with artificial intelligence, blockchain may perform better. Q: If the real-time delivery data is placed in the alliance chain, should the data of the alliance chain be synchronized to the public chain in the end? According to the sharing, the data of the alliance chain is not trustworthy to the public chain. What is the relationship between the data in the alliance chain and the public chain? I don’t understand this. Thank you for sharing! A: I think it is impossible for all institutions to be willing to put their assets on the public chain. There will definitely be a coexistence phenomenon. The ideal situation is of course to use the public chain to build decentralized applications. The data between the alliance chain and the public chain is a simple reference relationship. I think that open key data sets, such as user identities, should be deposited in the public chain for users to manage themselves, while the key data that is more private to the institution should be isolated from the public chain using access rights. Therefore, I think the data of the alliance chain and the data of the public chain are complementary. In other words, whether the data of the alliance chain should be synchronized to the public chain depends on the needs of the institution itself. In addition, the external data reference of the public chain, which we call data-feed, will introduce human factors. For example, legal affairs, lawyers, government agencies, etc., will help to quote data as an arbitrator. The market can evaluate the credit of the good or bad, just like rating an institution. If this is the case, it will be very transparent and open. Q: There are some very interesting physical projects such as smart door locks and unmanned car rentals. These are offline projects. How do you achieve interconnection? A: First of all, blockchain projects are cross-platform, which means that embedded devices can rely on the low credit cost advantage of blockchain to automatically keep accounts. It can be a consortium chain or a DAPP directly based on a public chain. These ledgers are shared, and when a reference relationship occurs, these data can enter the public chain channel to connect the two. Secondly, any specific blockchain project needs to rely on a public chain, just as many current projects are based on the "Big Three". However, there is currently no standard that satisfies everyone and makes everyone accept it, so we still have to wait and see. Q: Thank you for sharing. Can you talk about the possible impact of the various stages of blockchain development in the last picture on the traditional financial industry, especially the banking industry? A: I think the impact on the banking industry is not significant at this stage, especially in China. This depends on the development of blockchain. As far as I know, the central bank has already started working on its own digital currency. For banks, this is at most another IT architecture upgrade, which can help the banking industry reduce IT costs and facilitate enhanced supervision. But in the more distant future, banks may not be particularly closed and become proxy nodes of some blockchains, and will be supervised by everyone, rather than a few special institutions. Q: If the public chain can record all history, is there any technology that can destroy or ban it? Will there be a day when life ends? A: There is a little technical risk. When general quantum computing is commercialized, many current encryption technologies will become invalid, and the blockchain based on cryptography will be the most affected (of course, the current centralized architecture will also be affected). This depends on the results of theoretical research. If new cryptographic theories emerge that can resist quantum computing, there will be no problem. From the perspective of P2P networks, no organization or individual can ban it. As long as there are two nodes that can still make transactions and keep accounts, the blockchain is alive. From an economic perspective, the life and death of a blockchain does not depend primarily on whether the encryption technology is hacked, but rather on how much wealth and profit is accumulated on the chain and how valuable the data on the chain is. If it has no value, the chain will naturally die. On the contrary, if it is hacked, it is nothing more than a fork or waiting for a new encryption algorithm to come out before migrating data. This is not much different from restoring a centralized database backup. |
<<: Why I’m against editable blockchains
>>: JPMorgan Chase Joins Ethereum (Fork) to Develop Private Blockchain 'Quorum'
Wu Shuo Author | Tan Shu Editor of this issue | C...
Every man hopes to find a partner who can help im...
1. Hands with no flesh and visible veins <br /...
There is a proverb that goes, "A gentleman i...
It is true that women will never lose to men when...
The RMB has been depreciating against the US doll...
In life, many people believe in face reading. If ...
If there is a mole on the right corner of the eye...
On Tuesday, Bitmain, a well-known cryptocurrency ...
Based on palmistry, we can infer whether a person...
The nose can easily reveal a person's charact...
In fact, being good at communication is really an...
How much wealth you will have in this life can be...
Sometimes, some people's love luck makes peop...
Filfox browser data shows that the current block ...