Recreating Bitcoin 18:Proof of Work(Part I)
In the previous chapter, Bitcoin’s peer-to-peer network evolved into a autonomous swarm system.
In this chapter, we will solve the final problem of Bitcoin. That is the single-point failure problem of the ledger-writing task assignment: Timestamp Server.
The Last Single-Point - Timestamp Server
Early in the morning, Satoshi and Gilfoyle arrived at the cafe. Bitcoin’s accounting network had evolved into a swarm system in its true sense of word. This made them very excited. They wanted to take advantage of the success and solve the issue of the last single point in the system:
Timestamp Server, which is responsible for allocating ledger-writing author.“
“This last solution is so important that if it is not well designed, all our previous efforts will be wasted,” Satoshi said.
“Yes,” says Gilfoyle, “It determines if the system will break or live!”
Though Satoshi had a hunch that the problem would be difficult, he didn’t expect it to be so difficult that he was entering a land of despair.
Bob watched the two arrive in the morning, discussed the day, drank a lot of coffee, and left in the evening feeling blue. This went on for a whole week.
That day, Satoshi lost his mind and fell asleep on the table.
The Network World in an Ideal World
Satoshi saw himself creating the Bitcoin world in an ideal setting. In the ideal world, Satoshi was the creator. He found that node called Little Boy. He zoomed in and discovered that Little Boy was having an infused conversation with a peer node called Tauren.
Little Boy was infuriated, “Tauren, I found out about this node called Greedy Wolf that was cheating. After he got the ledger-writing assignment, he changed the block reward from 50 Bitcoin to 500 Bitcoin and received 450 Bitcoin more than otherwise established. I only found out about this after looking through his block data. We have to do something.”
“Really? Hold on. Let me check my ledger here,” Tauren went on to look through the block data.
“You’re absolutely right. He did change the block reward.” Tauren said, “But who should we tell? Our peer nodes? Let’s say even if they knew about this, there’d be nothing they could do. The block had been produced and the data were fixed.”
“What about the Timestamp Server? From now on Greedy Wolf won’t get the ledger-writing right anymore,” offered Little Boy.
“It sounds alright. But that won’t repair the damage already done,” Tauren countered.
“But what else can we do?” asked the Little Boy.
“Hm. If we want to fundamentally solve the problem, we must change the way ledger-writing assignment works. The problem didn’t originate from Greedy Wolf, but the centralization of the authority in the Timestamp Server,” Tauren said in a serious tone.
“That’s a bold move. You’re not afraid of the Timestamp Server blacklisting you if you started to change it?” Little Boy asked Tauren.
“No, I’m not at all. All I would need to do in that case would be change my IP and use another address,” Tauren replied confidently.
“What you are saying makes total sense. Although claiming to be random in assignment, it’s usually Node 3 that gets the ledger-writing task and the block reward the most. I doubt Timestamp Server is really upholding the randomness principle in distribution,” Little Boy concurred.
He went on to add, “Also, this mechanism is fundamentally flawed in itself for its single point failure risk. We need competition in choice.”
“What do you mean by taking the right to book from the timestamp server and letting all our nodes decide the right to distribute?” Tauren asked.
“Yes, as long as the right is in the hands of a single point, justice can’t be guaranteed. Even if this single point is not evil, it will give the nodes like the Greedy Wolf a chance.” Little boy said.
Little boy continued, “If the ledger-writing authority were up to all the nodes, there would be two ways.”
"The first way is that the minority is subordinate to the majority, which means that every ten minutes everyone votes and whoever gets the most votes gets the authority to write the ledger.
"The second way is free competition, where all nodes can volunteer to answer a question and whoever comes up with the answer first gets the authority to account.”
The single point distribution of the ledger-writing task corresponds to collectivism: the resources concentrate on the hands of a few to maximize social well-being, planned economy being an example.
Minority obeying the majority corresponds to state absolutism. This model could easily spiral into anarchism. More strangely, anarchism could morph into collectivism.
Free market competition, in this case, corresponds to lawful liberalism. There are boundaries to individual freedom, everyone cares about their own interests and competes within lawful boundaries, and society progresses towards the better, capitalism being an example in this.
Collectivism and liberalism differ from each other in the sense that they have fundamentally different understanding in how the world works.
Collectivism sees the world as a clockwork system and future as calculable. It focuses more on the elite than on the average individual, as the elite have more power over calculating and predicting the future.
Liberalism sees the world as a complex system and future as undetermined. It focuses on individuals and is suspicious of elite design, as individual freedom and improvisation give fertile grounds for creative production.
Little Boy said, “Comparing these two models, I choose the latter, as in free competition for the ledger task.”
“You won’t choose minority obeying the majority? It looks more democratic,” Tauren questioned.
“Don’t blindly believe in that. It has several risks,” said Little Boy:
First, the mob mentality could give rise to bad decision making.
Second, who gets to define 10 minutes.
Third, we don’t want the selection of nodes to be a reality TV show.
“In my view, free competition is better, for a few reasons,” Little Boy continued:
First, the work you put in the competition is something tangible.
The essence of competition is to work. If there is one thing in the world that can justify its existence, it is work.
If you are faced with a group of strange suitors and you have to choose one person to marry, what factors would you consider?
Who has more money? Money only represents the past, does not prove how capable he is now and does not prove that his money is clean (POS mechanism).
Other people’s opinions? Opinions are also a past tense. Besides, how do you know that other people’s opinions are not bought or cheated? (DPOS mechanism)
Then, the only way to judge them is by how they pursue you, who puts in the most effort, and who is the most honest.
Labor is a kind of proof that the pursuer is worthwhile.
We can call this system Proof of Work, abbreviated as POW.
Proof of work does not guarantee that he is a good man, but it is the most rational way to judge.
If we don’t work, how do we live in peace?
Second, competition defines time.
We can design the difficulty of the question to be closer to ten minutes, so that we don’t need a centralized single point to define the time.
Who is qualified to define time? How do you prove that your watch’s time is objective, and if not your watch, who defines the time for your reference? Some say computer’s time is reliable, but what’s the computer time reference? Step by step, we find that the definition of time in our world ultimately depends on a single point.
Third, competition leads to the ability to choose.
Because competition is open to everyone, multiple nodes can join the attempt to answer and broadcast. If someone acts maliciously, we can choose to abandon the wrongful block and know which one is legitimate.
Selecting the fastest and the correct block for synchronization is essentially casting your vote in this sense. This could nullify what Greedy Wolf did and the change he made.
In short, although Greedy Wolf did produce work, because of competition and the ability to choose, his competitors chose the correct block to synchronize, not his.
“I see! The key point is how to design such a crown-level question to express the Proof of Work.” Satoshi finally figured it out.
This chapter located the problem of single point failure in the Timestamp Server and gave the solution: free market competition.
At the end, the focus was on a specific point: design a problem that can be used in node competition.
The actual design will be shown in the next chapter.
Next chapter ：Recreating Bitcoin 19:Proof of Work (Part II)
Recreating Bitcoin:A Fictional Story of Why Bitcoin was Designed This Way
Part one : Transactions
Recreating Bitcoin 1:Start over with a Simple Web Transaction System
Recreating Bitcoin 2:First Version is Online!
Recreating Bitcoin 3:Getting Rid of the Account Model
Recreating Bitcoin 4:Digital Signature
Recreating Bitcoin 5:Public Key and Private Key
Recreating Bitcoin 6:Version 0.0.2 is Online!
Recreating Bitcoin 7:UTXO
Recreating Bitcoin 8:System Refactoring Based on UTXO
Recreating Bitcoin 9:Everything is Transaction
Recreating Bitcoin 10:Transaction Script
Part Two : Swarm System
Recreating Bitcoin 11:Swarm System (Part I)
Recreating Bitcoin 12:Swarm System (Part II)
Recreating Bitcoin 13:P2P Network
Recreating Bitcoin 14:Synchronizing Transactions
Recreating Bitcoin 15:Synchronizing Ledger
Recreating Bitcoin 16:Block chain
Recreating Bitcoin 17:Network Flexibility
Recreating Bitcoin 18:Proof of Work (Part I)
Recreating Bitcoin 19:Proof of Work (Part II)
Recreating Bitcoin 20:The Reorganization and Division of
Complete book selling at Amazon( > US > UK > CA > JP > DE > FR > ES > IT) #
©2019 - Recreating.org all rights reserved