Is Ethereum's Move to PoS Really an Upgrade?
I am doubtful.
According to eth.wiki, “Proof of Stake (PoS) is a category of consensus algorithms for public blockchains that depend on a validator’s economic stake in the network…From an algorithmic perspective, there are two major types: chain-based proof of stake and BFT-style proof of stake”.
The fundamental problem in a distributed system or network
The fundamental problem in a distributed system or network is to make a consensus in an environment where failures may abound. The network should be fault-tolerant. Otherwise, it is useless in the real world and its applications are seriously limited. This problem is formalized by computer scientists such as Leslie Lamport, in 1982 and described as "Byzantine Generals’ Problem".
To tackle Byzantine Generals’ Problem, a few solutions were proposed and were dubbed Byzantine fault tolerance (BFT). Those Byzantine fault tolerance algorithms have strong conditions and rely on the number of honest nodes in the network. Generally speaking, the progress of BFT revolves around how to reduce the number of honest nodes and the solution coupled with node numbers. When the node number grows, a new level of complexity is reached, which is the key problem large scale applications of distributed systems or networks run into and software developers are trying to address.
Proof-of-work (PoW) chain is a solution to the Byzantine Generals' Problem
In a classic dialog, James A. Donald wrote:
It is not sufficient that everyone knows X. We also need everyone to know that everyone knows X, and that everyone knows that everyone knows that everyone knows X- which, as in the Byzantine Generals problem, is the classic hard problem of distributed data processing.
Satoshi, the creator of Bitcoin, answered:
The proof-of-work chain is a solution to the Byzantine Generals' Problem.
I'll try to rephrase it in that context. A number of Byzantine Generals each have a computer and want to attack the King's wi-fi by brute forcing the password, which they've learned is a certain number of characters in length. Once they stimulate the network to generate a packet, they must crack the password within a limited time to break in and erase the logs, otherwise they will be discovered and get in trouble. They only have enough CPU power to crack it fast enough if a majority of them attack at the same time.
They don't particularly care when the attack will be, just that they all agree. It has been decided that anyone who feels like it will announce a time, and whatever time is heard first will be the official attack time. The problem is that the network is not instantaneous, and if two generals announce different attack times at close to the same time, some may hear one first and others hear the other first.
They use a proof-of-work chain to solve the problem. Once each general receives whatever attack time he hears first, he sets his computer to solve an extremely difficult proof-of-work problem that includes the attack time in its hash. The proof-of-work is so difficult, it's expected to take 10 minutes of them all working at once before one of them finds a solution. Once one of the generals finds a proof-of-work, he broadcasts it to the network, and everyone changes their current proof-of-work computation to include that proof-of-work in the hash they're working on. If anyone was working on a different attack time, they switch to this one, because its proof-of-work chain is now longer.
After two hours, one attack time should be hashed by a chain of 12 proofs-of-work. Every general, just by verifying the difficulty of the proof-of-work chain, can estimate how much parallel CPU power per hour was expended on it and see that it must have required the majority of the computers to produce that much proof-of-work in the allotted time. They had to all have seen it because the proof-of-work is proof that they worked on it. If the CPU power exhibited by the proof-of-work chain is sufficient to crack the password, they can safely attack at the agreed time.
The proof-of-work chain is how all the synchronisation, distributed database and global view problems you've asked about are solved.
Satoshi has solved the Byzantine Generals’ Problem with PoW consensus. PoW is a probabilistic solution to Byzantine Generals’ Problem. To be specific, the Byzantine Generals’ Problem is reduced through PoW to a new problem space, where the solution is irrelevant to node numbers.
What is fundamentally different from traditional BFT is that PoW is able to decouple from node and node status, meaning that a PoW solution is independent of node numbers. Also, growth in node numbers does not necessarily increase complexity.
PoW is like a constant competition for blockchains operating with that consensus like an archery competition. With some luck, the one with the best performance wins, no matter how many competitors there are. On the other hand, PoS is more similar to a voting process. Although it has several variations and steps, it essentially couples with node numbers.
PoS - hot upgrade or downgrade?
Since Bitcoin, there have been many projects that have claimed breakthroughs on consensus. PoS and its variations like DPoS became sensations in the blockchain and crypto space, but with PoS, the crypto community is actually just going back to a problem Satoshi already managed to solve. Ethereum 2.0 is an upgrade? No, it is a downgrade.
Image source: Shutterstock