Blockchain is a hot new concept at the moment and contains two layers of technology and finance. From a technical point of view, this is a distributed database that sacrifices consistency efficiency and guarantees eventual consistency. Of course, this is one-sided. From the perspective of economics, this kind of peer-to-peer network with strong fault-tolerance capability exactly meets a necessary requirement of the shared economy—a low-cost, trusted environment.
The Technician Looks at the Correct Posture of the Blockchain
Although the blockchain is an emerging concept, the technology it relies on is not new at all, such as asymmetric encryption and P2P network protocols. Like LEGO bricks, blocks are limited, but different combinations can produce very interesting things.
When I contacted some engineers, when I contacted the blockchain for the first time, I spontaneously expressed that they are mature technologies, not distributed storage. From an engineer’s point of view, it is natural for the first reaction to map this new concept into its own knowledge framework. However, after careful investigation, it is found that this kind of one-sided understanding may bring the understanding of the blockchain into a misunderstanding. That is, as a technician, it ignores the economics of the blockchain – a system that is decentralized and completely autonomous.
The blockchain is essentially a P2P-based value transfer protocol. We can’t just see P2P, we can’t see the value transmission. In the same way, you can’t just see the value transmission, you can’t see the underlying technology of the blockchain.
It can be said that the blockchain is more like a cross-discipline, combining P2P network technology, asymmetric encryption technology, macroeconomics, economics, game, and so on, to build a new field – the exploration of the value of the Internet.
What is the value of the Internet ?
The value Internet can be a payment service derived from the e-commerce of the moment. But is it really just the payment area? Obviously this is not enough, the first-tier capital market, real property rights and transfer, securities registration and settlement, credit investigation and anti-fraud. Let’s think about it again.
Are the professional bad reviewers of our major e-commerce platforms maliciously paying too little?
In today’s financial sector, besides paying more convenience, in most other businesses, we are just like being chained. We repeatedly confirm, review repeatedly, and repeatedly monitor, we repeatedly construct one large size after another. Small high-availability clusters ensure the reliability and continuity of online services.
We employ one after another security engineer to deliver one after another penetration testing project. why?
Because the cost of cheating is too low, you can extract millions of dollars as long as you change your database record.
The powerful Internet gives us high-speed information transmission channels with almost zero cost. However, there is not a low-cost and reliable high-speed value transmission channel. This is what the blockchain is about to bring.
The Blockchain is a Public Distributed Ledger
Here’s a brief introduction from a technical point of view: Imagine a 100-piece distributed database cluster. The current situation is that the actual owner of the 100 nodes is an organization, and all the nodes are in the organization’s internal network, so the organization wants to make the 100 database nodes. Why do you do this? In other words, the 100 nodes are in a trusted environment and controlled by an entity that has absolute arbitration rights.
The other situation is this: Imagine that the 100 nodes are owned by different people, and each person’s node data is the same, that is, completely redundant, and all the nodes are in the wide area network. In other words, this is There is no trust between 100 nodes and there is no one entity. It has absolute arbitration rights.
Now consider the second case, what kind of algorithm (consensus model) is used to provide a trusted environment so that:
- The data exchange process of each node is not tampered with; exchange history records cannot be tampered with;
- The data of each node will be synchronized to the latest data, and the latest consensus data will be acknowledged;
- Based on the principle of the minority obeying the majority, the data maintained by the overall node objectively reflects the exchange history.
The blockchain is essentially a technical solution to solve the above second case. More specifically, it should be called a distributed, redundant, chained general ledger solution. Some elements of the blockchain have been summarized in my previous articles:
- Contains a distributed database
- The distributed database is the physical carrier of the blockchain. The blockchain is the logical carrier of the transaction. All core nodes should contain the full copy of the blockchain data.
- The blockchain serializes the blocks by time, and the blockchain is the only main body of the entire network transaction data.
- Blockchain is only valid for additions and not valid for other operations
- Asymmetric encryption based public and private key verification
- The billing node requires that the Byzantine issue be solvable/avoided
- Consensus progress is evolutionary and stable. That is, contradictory data of a certain number of different nodes will not collapse.
- Consensus process solves double-spending problem
Therefore, as a technician, one should not only see the technology that the blockchain relies on, but also focus on the points and faces outside the blockchain. In general, the blockchain will be much more interesting.
Introduction to the General Architecture of the Blockchain
Regarding the history of the development of the blockchain itself, there is more information on the network. This article will not repeat them.
The introduction of blockchain technology has detailed information in the communities of various blockchain platforms. However, the summary of these data and the introduction of abstract concepts are still rare, and this article attempts to summarize them.
Before the introduction, I would like to introduce the concepts of public chains and alliance chains. These concepts were put forward by Vitalik, the founder of Taifang. I have done some research based on these concepts.
In fact, the distinction between public and alliance chains is very simple. Just look at the access rights of this blockchain. If accessing the blockchain requires permission from the nodes on the chain, then this is a federation chain, otherwise it is a public chain.
According to the name, we can also “look at the meaning of the text.” The public represents a completely open network. The alliance represents a semi-open network, members are shared, and non-membership has no free access. Therefore, we also call the alliance chain Licensing chain.
Let’s take a look at some of the more mainstream blockchain platforms (public chains, both open source):
- Bitcoin Bitcoin
- Ethereum/Ethereum Classic Ethereum Classic
- BitShares BitShares
I generally call it the “Big Three”. From an ecological point of view, Bitcoin is the most mature and stable, and Ethereum is more like a warrior in front. Bit stocks are much smaller than the first two, but they are innovative. The angle is no less than the first two.
Many other projects are derived from these three blockchains, so based on these three, you can basically get rid of the blockchain.
I have to mention Linux Foundation project HyperLedger project (mainly alliance chain, open source), but also to create a common blockchain technology, but I think it is still in the development iteration, there is no specific application case , press not speak.
There are also some alliances between bank oligarchs – R3 CEV project (alliance chain, closed source), and China R3 project – ChinaLedger (alliance chain, closed source). Of course these are not open source and I cannot get useful data is analyzed, so it will not be developed.
From a technical point of view, for different business scenarios, there are different requirements for the blockchain, such as real-time settlement services, which require the blockchain to provide second-level delivery. The corresponding requirement is the speed of block-out, and the block-out speed is too fast. It often leads to blockchain fork, forming an orphan chain, and the orphan chain is invalid, then the transaction is invalidated, and the eventual consistency of the blockchain is affected.
If frequent bifurcations cause a significant percentage of user transactions to fail, then the system can be considered unreliable.
If we put this kind of business with high real-time requirements into the alliance chain, we can control the risk, adjust the consensus algorithm, and use the Consensus Model to avoid the above problems. Although not as robust as the public chain, It is enough for some special scenes.
Therefore, at the architectural level, the technologies of public and alliance chains must be treated differently.
However, the overall design of the client still has some common concepts, as shown below:
A blockchain is divided into at least three layers. The bottom layer is some common basic modules, such as basic encryption algorithm, network communication library, stream processing, thread encapsulation, message encapsulation and decoding, system time, etc.
The middle layer is the core module of the blockchain and generally contains 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, and embedded database processing module. Wallet module and so on;
The top layer is often based on the interactive module of 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, there may be more layers to be added, such as adding BaaS layers, smart contracts on the blockchain to provide autonomous services, such as the following Ethereum architecture diagram.
This layering is more concerned with the layering of the blockchain itself, that is, from a business perspective, not entirely technical.
We turn to Bitcoin’s design:
The coupling between several modules of Bitcoin is actually quite high, and there are many historical burdens. The inventor of Bitcoin, Nakamoto, used Bitcoin to develop using VC++, and VC++’s standard library’s sstream. Stream processing performance is very moving, had to give up, self-realization of vector-based stream processing container. With the introduction of c++11 and the update of the standard library, the performance can not be the same.
From the entire map we can see that Bitcoin’s modules are relatively few and relatively simple. Chain-parameters describes the parameter settings for the entire blockchain. The wallet is associated with the address/encryption and storage.
The mem-pool is an unconfirmed transaction pool. Thanks to the immortal contribution of Bitcoin core developers, the bitcoin code quality is now quite good compared to the Bitcoin code of the Nakamoto Satoshi era.
Regardless of the above design, generally speaking, the P2P network protocol is used as a cut-in. As a P2P wallet, it is necessary to provide both a Service and a Client. As a Service, the P2P network protocol is used as the Client and the Json-RPC is used as the client.
It should be pointed out that the current account model used by the “Big Three” is different (the so-called account model refers to the account accounting method), Bitcoin uses the UXTO model, and Ethereum and BitShares use the account balance model.
UXTO model (Unspent Transaction Outputs (UTXOs)): This model expresses a concept of transference, that is, any new coin that is generated, in the subsequent life cycle, only metastasis, no extinction, transfer is essentially signed by the encryption algorithm With verification control:
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 increases the efficiency of the transaction.
Consensus Algorithm and Distribution
It has finally come to the point. In fact, each section of this article can be developed into an independent article.
The so-called blockchain consensus process, mentioned above, refers to the process of how to record the entire network transaction data objectively and cannot be tampered with. Currently, the “Big Three” use different Consensus Algorithm, Bitcoin use proof PoW (Proof of Work), Ethereum is about to convert to Proof of Stake, and Bit Stock Use Rights proves DPoS (Delegated Proof of Stake).
These algorithms, which I call “economics”, and economics, mean that the cost of cheating can be calculated, and the cost of cheating is often much greater than the benefit of cheating. That is, cheating is unprofitable. The idea is to construct an algorithm for the game between nodes and make it toward a stable balance.
Correspondingly, we also have distributed consensus algorithms in the computer field, such as Paxos and Raft. I also call it the traditional distributed consensus algorithm.
The biggest difference between them is the reliability of the system under the Byzantine Generals Problem scenario, which is Byzantine fault tolerance (the PBFT algorithm supports Byzantine fault tolerance).
However, either the Paxos or the Raft algorithm may theoretically enter an infinite loop that cannot be passed through (although the probability is actually very, very low), but they all satisfy safety, but relax the requirements of liveness, as does the PBFT.
The following are the similarities and differences between some traditional distributed consensus algorithms and the blockchain consensus process. Let’s look at the same point first:
- Append only
- Emphasize serialization
- The minority obeys most principles
- Separation coverage problems: long-chain coverage of short-chain blocks, multiple nodes covering a small number of node logs
This is different:
- Most traditional distributed consistency algorithms do not consider Byzantine fault tolerance (except Byzanetine Paxos), that is, all nodes only assume non-human problems such as downtime and network failure, and do not consider the problem of malicious nodes tampering with data.
- The traditional distributed consensus algorithm is log-oriented (database), that is, a more general case, and the blockchain consensus model is transaction-oriented, so strictly speaking, the traditional distributed consensus algorithm should be under the blockchain consensus model. layer.
Considering the differences above, combining the characteristics of public and alliance chains, we have:
- Alliance Chain: A semi-enclosed ecological value network with peer-to-peer untrusted nodes, such as between certain members of the association.
- Public chain: Open ecological value network, this layer is mainly to provide global trading network for industry chain and private chain.
Due to the semi-enclosed and semi-open nature of the alliance industry chain, using Delegated Proof of XXX is feasible, and it is possible to consider adding traditional Byzantine fault tolerance/security protection mechanisms as the basis for improvement.
For public chains, PoW/Pos/DPos and other “economics” algorithms may be the best algorithms.
Technically, with the above different consensus algorithms, many of our newly developed blockchains support one feature: The consensus module is pluggable to meet the requirements of different scenarios.
The public chain provides a trusted and reliable value transmission network. It can continue to build decentralized applications (DAPP) or deploy alliance chains, and even traditional databases can be used to build C-side applications at the upper layer.
Digital Assets and Value Distribution Network
In the “big three”, Bitcoin is at the “digital currency”, bit stocks are near the “decentralized exchange”, and Ethereum is at the “decentralized organization.” In fact, the contact point between blockchain and reality is still in the illustrated position.
Therefore, the blockchain is still a growing thing. Since 2007, the demand for blockchain developers is at an all-time high. The client demand for blockchain engineers has grown up by 500%. But the Blockchain expertise has shot up by more than 500%. This is the right time to invest your time in learning Blockchain and becoming a specialist with related technologies and tools. The application of a rich blockchain ecology at the upper level still requires enormous efforts.
The next step is to digitize the assets (similar to asset securitization). For example, we can digitize the digitization of rare items (artwork/antiques), digitization of intellectual property rights, bill funds, etc., which will greatly increase the efficiency of market operations. Smart contracts, even artificial intelligence, programmable society is no longer a dream.
The author has an experience of more than 6 years of corporate experience in various technology platforms such as Big Data, AWS, Data Science, Machine Learning, Blockchain, Python, SQL, JAVA, Oracle, Digital Marketing etc. He is a technology nerd and loves contributing to various open platforms through blogging. He is currently in association with a leading professional training provider, Mindmajix Technologies INC. and strives to provide knowledge to aspirants and professionals through personal blogs, research, and innovative ideas. You can reach him at: Linkedin or Email.