This article was written on October 8, 2017, so some non-technical arguments may differ from current developments.
After the bitcoin is finished, it is natural to write Ethereum.
- Perspectives | Two Sides of Ethereum
- Should blockchain transactions be rolled back? Vitalik's small investigation sparked a big discussion
- Babbitt column | Future thinking: Who will beat Ethereum?
- The future of Ethereum determines the future of the blockchain?
- Opinion: The future of the blockchain client will be in full bloom
- Research: Over the past ten years, 24 crypto networks have processed more than 3.1 billion transactions and transferred funds of $ 4.6 trillion
However, like Bitcoin, this time I talk about Ethereum, I will also choose an alternative, other perspectives that introduce Ethereum's articles will not be used – I will not analyze how to fire Ethereum, how to mine, Ethereum Will not go up, nor how to write smart contracts, how to do applications on EVM. The core of this is – what is Ethereum, what is the smart contract, and the problems that Ethereum still has to solve.
If the Bitcoin system has made many people feel unintelligible, the concept of Ethereum is much more complicated than Bitcoin. So, before we introduce the concept of Ethereum and smart contracts, let's review Bitcoin.
In the previous article, I mainly talked about two things:
1. What is Bitcoin: Bitcoin is all the attempts of humans to replicate the most primitive currency transactions in the digital world. So far, the first one that is close to success and the only one that is close to success.
2. What is the value of Bitcoin: The value of Bitcoin depends on the smaller of the volume of transactions and the value of the mining company.
However, these two points are for those who want to know about Bitcoin.
And if you want to learn more about blockchain technology, let's take a different look at Bitcoin –
The essence of Bitcoin is a book in which a record is transferred between each other in a network where there is a malicious node.
Then, in order to ensure that the records are not tampered with, a chain structure is adopted.
To simplify transaction verification, the data takes the UTXO structure.
In order to improve the efficiency of reaching consensus in the big network, work proof was adopted.
In order to compensate for the cost of the work certificate, a mining award was introduced.
For simplicity and systematic self-consistency, the values and mining awards are unified into a token and sent to miners in the form of additional issuance.
This is bitcoin.
Maybe someone thinks that I am squatting again –
Haven't these been said again?
Yes, but the first concept that you must understand when you want to understand blockchain technology is – don't believe that many propaganda and Copley say, it seems that bitcoin has never been seen before. Each of the above is not a matter of course and cannot be changed.
Chain structure is not necessary, and the chain structure is better for blockchains with a network-wide consensus. For blockchains without a consensus across the network, DAG (directed acyclic graphs) is also possible.
The UTXO structure is not required. Changing the UTXO structure in Bitcoin to a state library structure does not have a direct impact on security. More specifically, the UTXO architecture is an optimization of the state library for this particular application of digital currency.
Proof of work is not required. Proof of work is just one of many consensus algorithms. Even in the non-licensed chain, proof of work is not the only way. POS is now fully available.
Mining rewards are not required, mining incentives are just a concept introduced in the “rational node” model applicable in the non-licensed chain, and if you want to introduce more complex mechanisms, even in the non-licensed chain, mining rewards Can be replaced.
Tokens are not required. The introduction of tokens is only because the nature of Bitcoin is a numerical exchange system. As for scarcity, it is just a gimmick that people think that this thing will not be indefinitely devalued.
If you want to understand the blockchain, the first thing is to modularize the structure of Bitcoin –
Which of them are part of the blockchain and which are not part of the blockchain.
Bitcoin, in terms of function, is just a set of numerical exchange systems, or a reliable account book. Everything else is just a means to achieve this system, not an end. Counting hash is not an end. It is not an end to send tokens. The so-called scarcity is not an end.
Of course, there are two levels of means—the means to technically implement the system, and the means to commercially attract others to use the system. Here, we only pay attention to the former, because the misunderstanding of the former is much more than the latter. Many of them see many technical articles that claim to be bitcoin experts as technical means. For example, the ten-minute block interval is considered to make the mine not so fast, and the scarcity is the essence of Bitcoin. The encryption of cryptography is considered to be anonymity. The work proof is the only consensus algorithm. It is indispensable, so it is concluded that tokens are an indispensable part of the blockchain and so on…
So, some people should be confused, isn't the value of Bitcoin anonymous and scarce? If it is just a numerical exchange system, what is its significance?
Then, we use another way to define "value."
Here, we no longer consider the value of Bitcoin, nor the value of the monetary system. Let us consider the value of anything in the world.
In fact, in the final analysis, it is a sentence –
The value of a thing depends on whether it can do things that others can't do.
Numerical exchange system, do people want to do it?
Of course, the so-called "death coin" has been written in the previous article. A secure numerical exchange system can be used as a payment system or a currency system. So, from credit card companies to Alipay to the government, who doesn't want to be a secure numerical exchange system?
However, what did Bitcoin do, did others do it?
There are two answers to this question –
Some people think that they can't do it. Because what can be done at present is a centralized system, and the centralized system is original, and no one can absolutely guarantee that a center will not suddenly collapse.
And I mentioned my point in the previous article – the decentralized system is not naturally safer than the centralized system, so Bitcoin is not currently compared with the mainstream trading system, even with the non-mainstream trading system. More than average. However, bitcoin has a huge advantage over other virtual currencies. Moreover, the guarantee of bitcoin security is at least on the order of billions of dollars.
Therefore, we can say that the biggest value of Bitcoin is to create a decentralized numerical exchange system that needs at least tens of billions of dollars to destroy.
However, the above part is written from the perspective of bitcoin.
The core of Bitcoin is a numerical exchange system. To say more, call a decentralized, secure numerical exchange system. Among them, decentralization means that it does not have a central node, and security means that as long as the malicious node is a minority, the system can work normally.
Others, such as chain structure; UTXO; proof of work; tokens… are replaceable, both means.
However, if you look back?
Can you still use these techniques to replace the value exchange system with something else?
If you have this kind of question, congratulations, you are already getting started with the blockchain.
Indeed, numerical exchange systems are applications.
The decentralized technique of this application, that is, the combination of the previously mentioned series of means, is called the blockchain.
Let's not talk about the blockchain here. Let's discuss the most popular applications in the blockchain field that are thought to change the world –
Many people are wrong with this understanding – they think that a smart contract is an electronic contract, that is, the contract is electronically stored in the blockchain so that it cannot be tampered with.
No, such a contract is not smart at all.
The so-called "smart" contract refers to a contract that can be unilaterally revoked or refuted without the need to enforce the contents of the contract by a third party after the parties have reached an agreement and signed.
Does it sound very illusory?
In fact, not at all, on the contrary, Bitcoin has actually achieved some kind of "smart effect."
First, throwing away the two concepts of decentralization and ledger, Bitcoin is a decentralized trading system – let us just think of the word “system”.
Call it "Intelligent Trading System" and think of it as a given input, giving a black box or a machine that determines the output.
Its function is this:
When the entered transaction signature is correct, the amount is correct, and the input is not used, a new record is printed and the books of these transactions are saved and posted to the Internet.
At the same time, when the input is invalid, you will not do it.
In the centralized scene, the above functions, you can engage in a server and recruit a few programmers to spend 2 or 2 days to write a software.
However, if you want to go to the center to achieve the same function, you have to use a lot of Bitcoin.
So now we have this decentralized "Intelligent Trading System".
Sounds good, but, as I said, this is not the only thing the blockchain can do.
What can the blockchain do?
You heard about Amway, isn’t it right, Turing?
It doesn't matter if you haven't heard of it. Just know, in simple terms, Turing envisioned all the thinking activities of human beings and found that all calculations and all thoughts are nothing more than simple logical actions. So he designed a machine that could simulate all human thinking and computational behavior, called the Turing machine.
In other words, as long as humans can complete the calculations, thinking and logical reasoning, the Turing machine can do it. The simplest thing is that your computer is a Turing machine.
The black box of the blockchain can also be a Turing machine. In other words, you can think of it, the blockchain can do it.
Ethereum is a black box close to the Turing machine.
Now, let's consider a game where two people play chess and have a colorful head. This color head, let us even be the digital currency in this chain.
We can design the black box like this:
Input: 10 digital currencies for each party. Next, each side enters each step of their own step by step.
The function of the black box is very simple. It is a chess program. It rules according to the rules to determine whether each person meets the rules at each step, and when one of the handsome or will be eaten, the system will determine which side is negative (we will not consider giving up Case).
Output: A new ledger, with 20 digital currencies written into the winner's account.
This black box, which is called the "smart chess system", seems to be similar to the previous "Intelligent Trading System", except that the things that need to be determined are not input once, but are entered many times.
Is this a smart contract? It doesn't sound too good!
Indeed, if a blockchain is nothing more than a chess + integration program, then it is not really powerful.
But don't forget that Ethereum is (close to) Turing complete.
In other words, the black box of Ethereum is a computer rather than a chess game console!
What is chess in the computer? It is a software, or a program.
For Ethereum, we can also put the above functions into a program.
In other words, the black box of Ethereum can be played like this:
Input: Chess program.
Input: 10 digital currencies for each party. Next, each side enters each step of their own step by step.
Black box: Read the input of both parties according to the rules specified in the input chess program, determine the legality of the income of both parties, and finally obtain the result, and output according to the rules of the chess program.
Output: Update the ledger and transfer 20 credits to the winner's account.
A Turing-complete black box means you can enter any program for its execution.
So, from this perspective, what is the blockchain?
The blockchain is simply a technology that moves this black box from your home computer or server in a computer room to a central, insecure network. In order for this black box to work in this environment, the blockchain does two things mainly —
1, using cryptography to prevent data in memory from being tampered with.
2, use the formula algorithm to ensure that as long as most of the nodes are good, this black box will work properly.
The blockchain technology is independent of the contents of this black box. In this black box, any single function, such as numerical exchange, can be loaded into a Turing machine that can execute (almost) any program.
This is the reason why blockchain technology has caused such a big upsurge. In the case of a numerical exchange system alone, there is really no excitement. None of the various altcoins behind Bitcoin have entered the mainstream.
I will elaborate on the blockchain technology in the future.
Here, we continue to look at this black box.
The black box of the blockchain, because of its working principle, is very different from the home computer we can imagine.
In a home computer, if the reading speed is no problem, the speed of the output is only related to the operation speed. In other words, no matter what you run, the CPU or GPU is finished, the output will be fine.
However, in the blockchain, the speed of operation is not a bottleneck, and the bottleneck is the output. Because each node of the blockchain calculates the result, all the results require a long network-wide consensus process to be the final output of the system. Therefore, the performance of this black box is very limited. Limited in two ways:
1, first of all, the output speed is limited, it is no longer useful, as long as the resulting data volume is large, or too many nodes, the final output speed will be stuck here.
2, Secondly, if an operation needs to call the result instead of memory, the efficiency will be very low. Because each call is equal to your completion, but you have to wait until everyone else has finished calculating the results before proceeding to the next step.
So, if you are a designer of a blockchain application, what do you do?
You must avoid the call of the result, first put everything in memory. For example, if you want to calculate A+B+C+D, in the blockchain system, first calculate A+B, then all nodes determine the result for the answer, then add C, then the answer, and finally add D, This kind of scheme is obviously the worst. A more efficient approach is to calculate A+B. The result is in memory, then you don't need to add C to the answer, add D, and finally answer the answer once, and get the final result.
The output is the same, however, for some applications, we can't use the latter.
For example, a value exchange system.
In the value exchange system, transactions are interdependent. A gets the salary, withdraws money from the bank, and then orders a takeaway. Then the relationship is that company B pays bank C, then C gives money to A, and A pays to takeaway D. If you want to implement this series of actions most efficiently, of course, each node will generate this transaction record and finally collect it into the ledger. However, this logic is difficult to establish in real life. When D manager A asks for money, he wants to get cash, instead of A saying: "Believe me, I will pay immediately and then I will get from the bank. If you withdraw money, some of the money you withdraw will be yours. In other words, in real life, some payment scenarios can accept the above logic, but more often, the premise of the transaction is to determine the previous transaction. Row.
The above is the first problem faced when designing this black box using blockchain technology – insufficient performance.
The second question is a complex issue that combines technology, law and ethics.
Suppose we have designed a box. However, we found that this box is different from what we want. What should I do?
Then, if the result is a scorpion, who is responsible for it?
Next, if someone uses this scorpion to gain the benefits he should not get according to the design idea, should this behavior be allowed?
From an ideal point of view, the answer is very simple – naturally the designer is responsible, the loss caused by the scorpion, naturally the designer is responsible for compensation, and the benefits of using the vulnerability, should not be considered a crime.
However, reality is much more complicated than ideal.
The most famous example is the DAO event on Ethereum.
DAO is a high-profile establishment of Ethereum at the beginning of its establishment. It believes that decentralization and Ethereum can solve all problems. They are committed to intelligently contracting and coding all things. Then, one time, a problem with a smart contract caused the hacker to use the vulnerability to transfer away 3.6 million Ethereum.
The end result is that Ethereum's hard fork has reversed this result, however, it has led to the Ethereum to become the current Ethereum and Ethereum classics. Here, we don't care about the matter itself, nor evaluate the decision and the right or wrong of several parties. Let's take a look at the problems revealed by this matter –
1. Our society is not composed of code. Even if the law is not composed of code, there is no scope for sentencing, and no court is needed. "Code is the law", it sounds very good, I believe that DAO people think so, and when this happens, the most contradictory is about these people – if the code is law, then the program as a law maker Whether the members can afford the consequences.
Be aware that any program is buggy, and any programmer can make mistakes.
2. No one knows what kind of consequences a bug might have. For example, DAO, it is not the first time that a similar situation occurs. However, the previous problem did not lead to a hard fork, which also indicates the Ethereum community. Attitude – that is, the idealized attitude that was said before. However, DAO's final hard fork decision, and ultimately the result of the Ethereum and Ethereum classics, not only the contradiction of the Ethereum community, but also the contradiction between the entire smart contract and the future blockchain application – there is nothing A versatile solution, when the loss caused by the accident is large enough, the entire community must decide whether to follow the rules of the game, causing the entire system to be unattended; or destroy the rules of the game and destroy the logic of the entire system.
3, DAO's hacker has not been prosecuted, he does not think that he has done the wrong thing – the code is the law, what he does is allowed by the code. However, this is just DAO, an organization that exists in the Ethereum world itself. And if the subject of a smart contract becomes a real-world company and person, and there is a paper version of the same contract in the real world, the question comes – which one has legal effect? If the two are inconsistent due to bugs, which legality should the law protect?
The above three issues are actually the biggest problems facing smart contracts.
Many people are portraying the future of blockchain, and in the future society, everything is done through smart contracts. However, even if blockchain technology advances to that extent, the above challenges will be encountered in smart contracts. 1. A large number of professionals who understand law and programming need to translate real-world contracts into smart contracts; It is necessary to have relevant laws and regulations to solve the problem when the two do not match.
Before these two problems are solved, smart contracts are difficult to solve in real life.
The third issue of smart contracts is the contradiction between private and general.
Back to the black box – we said, the black box can be anything that can be used to solve a specific problem, only limited functionality, but also Turing complete, in other words, you can do it. This is very understandable, we are full of these two kinds of things in our lives, whether it is a chip or a computer or a server, there are dedicated and universal.
As with other dedicated and general-purpose machines, black boxes with blockchain technology have the same advantages and disadvantages—
Dedicated: Doing the same thing is more efficient and the structure is simpler.
General: The structure is more complicated.
But in the world of blockchains, there is another problem –
The blockchain is a decentralized solution. Usually, the value of this black box is not only related to what it can do, but also how reliable it is. And its reliability is tied to the number of people who use it.
So, we found the problem of a dedicated black box in the blockchain application – the digital currency audience may be acceptable, but if you make a blockchain dedicated to house transactions, how to attract enough users to join Making this blockchain of high enough reliability (high enough to guarantee a home transaction) can be a problem.
So now, more blockchain projects want to design this black box as, or, at least, to promote it as generic.
However, the universal black box, aside from all the difficulties in design and implementation, assumes that the code is perfect from ease of use, functionality and efficiency, or has an important problem –
Turing is complete and omnipotent is different.
The Turing machine only said that it can do (almost) everything, but did not say its efficiency.
Home computers and Galaxy Supercomputers are all Turing machines.
This leads to a problem –
If the black box is really a general Turing machine, then no matter what I throw in, as long as it meets the rules, it has to be executed.
Extremely speaking, I threw in an infinite loop and the entire system was stuck.
You can say, "Then we check if your program is an infinite loop," but this is not possible – this is the famous "downtime problem", whether a program will stop or not can not be detected.
Therefore, from this perspective, in the real implementation, this black box can not be complete Turing – otherwise it will face the "downtime problem."
Ethereum has adopted a very clever method – adding "calculation fees" to all operations. For example, to do a multiplication, please pay 5 yuan, do a hash, please pay 100 dollars.
However, this money is paid to the node that packages the program into the block. In other words, the operation that the entire system undertakes is required, and only one person receives the reward.
This is not a big problem when the computational cost is much smaller than the consensus cost we mentioned before—because the current situation is 1, the result is not a problem, and the bottleneck is a consensus. 2. For the foregoing reasons, there is currently no smart contract that requires special complex operations. However, if the blockchain is popularized, the smart contract function is becoming more and more abundant, and the current calculation of the reward distribution of Ethereum is unreasonable.
For example, a super-calculation may feel like adding a contract (program) that takes a long time to calculate a piece of cake, so in his opinion, it is worthwhile to write the contract into the chain to earn rewards; however, when After the contract is added, every time someone executes the contract, all other nodes are forced to run the contract. This will cause the computing burden of the entire network, and eventually the node with low computing power refuses to accept the transaction using the contract, or the node with insufficient computing power exits.
In summary, if the box is versatile, the designer needs to limit the functionality of the box in other ways to prevent downtime and to ensure that the executed contract is within the capabilities of most nodes.
This has led to differences in the development of the blockchain, and it is also the dilemma of the Ethereum-like blockchain.
What do we need is a dedicated blockchain that is designed to meet specific applications, implement specific functions, and provide quantifiable security.
Still a class Turing is complete, but you need to impose various restrictions on the written program, but also face the risk of various program bugs. Do you need to modify the general-purpose blockchain while using it?
There are candidates for both roads, but the latter is easier to get money.
The former requires investment from companies that truly understand the role of blockchain and have decentralized needs. Today, there are few such companies around the world.
The reason why the latter makes money easier is that it can be made into a public chain to issue tokens.
Ethereum chose the latter –
I don't think Ethereum is a perfect system. However, compared to Bitcoin, it has never been advertised as perfect.
Therefore, it will not be trapped in the ideological battle of “decentralization”. vatalik buterin and developers have firmly controlled the decision-making power of Ethereum from beginning to end, without fear of hard forks. resistance.
It will not be shackled by miners and POWs. The calculations have been explained from the outset. The miners will not master Ethereum forever.
It can even disregard the opinions of the community or supporters. It is willing to admit its mistakes, modify its own mistakes, and not be afraid to continue making mistakes, such as DAO: Yes, DAO made a mistake, then it is hard to fork the error back. Rolling – We are not one, and we don't want to be a "book that cannot be tampered with". Our ambition is greater. Therefore, before we realize our ambitions, all mistakes are just the process of our study.
Byzantine hard forks are just around the corner, although the Byzantine upgrades are a far cry from their ideal black box, but, at least, they are not overwhelmed by the high price of the Ethereum, and have not forgotten what they wanted at the beginning.
So even though Ethereum can't achieve any meaningful function right now, even though I think Vitalik Buterin's article can't be read, I still have to say –
Ethereum is on the right path.