Chapter 0 IntroductionDo you know what the 5 in HTML5 stands for? The answer is that it is a version number. HTML is called Hypertext Markup Language, and it has gone through versions 2.0, 3.2, 4.0, 4.01 and 5. Bitcoin's code also has a version number, which is currently version 1, the same as when Satoshi Nakamoto developed it. Chapter 1. Version Numbers in Bitcoin Transaction Data StructuresWe have to bring out the Bitcoin block data structure and transaction data structure again. Please see the picture. This diagram is the transaction data structure of Bitcoin. The fields in bold red in the diagram are the codes that identify the transaction version, similar to the 5 in HTML5. From the time Satoshi Nakamoto developed it to the present, the transaction version number has not changed, but the block version number has changed several times. (Author's note: The block version number has changed, and is currently Vision 5) Chapter 2 What is the Bitcoin transaction version number used for ?These two version numbers are used to identify the reference rules. This is the same as HTML5, which also uses a field to identify the rules for propagating data references. Because it is software, it definitely needs to evolve and add new features. Bitcoin has been around for almost 8 years, and the data structure of transactions and blocks has actually changed a lot. There have been many soft forks and hard forks, but the version number has never been modified. The transaction version number of the entire blockchain is the same, which means that at the software level they think everyone is the same. If we make major changes to the transaction rules, do we need to change the version number? The general practice in the software industry is to modify it, just like HTML, because this means that the rules of the entire network have changed. If you modify the data structure but do not tell the previous blocks and transactions, you will need a more complex design to get away with it. Different versions of data structures require different codes to parse. When our developers decide to significantly modify transactions, the wise thing to do is to modify the version number to make it clear that the rules of this code upgrade are changing. Then when the upgrade is activated on the Bitcoin network, the Bitcoin network needs to freeze the software that parses the old version number and require them to upgrade to the latest code in order to parse the new blocks and new transaction data structures. This upgrade method is clear and everyone has the same goal, rather than requiring the new and old software to deceive each other. This upgrade method is also called a hard fork. Satoshi Nakamoto left behind this version number design, which means that Satoshi Nakamoto wanted to upgrade the software through a hard fork. However, our Core Dev, the core development team, violated Satoshi Nakamoto's design intention and violated the common design specifications of the software industry. They used a soft fork every time they modified the code. A soft fork does not modify the transaction version number, but modifies the transaction data structure. Because the version number is not modified, the old node software will also try to parse the modified transaction. In order to enable the old node to parse the modified data structure, the entire modification is very complicated. This complexity brings technical debt. Chapter 3: Segregated Witness Soft Fork Will Create Endless Technical DebtThe Segregated Witness soft fork significantly modifies the Bitcoin transaction data structure and block data structure. The unlocking script field in the transaction data structure is directly moved out of the transaction data structure, and also out of the block data structure. Such a large-scale modification, but the transaction version number is not modified, which means that the segregated witness does not intend to tell the old nodes that it has modified the blocks and transactions, but a scheme to hide the modified code and let the old nodes assume that this is a parsable code. Of course, the actual operation is very complex. Check the segregated witness document, it has made a total of 11 modifications to the Bitcoin transaction and block data structure. How scary is this? Satoshi Nakamoto published the Bitcoin white paper in 2008, and completed the development of the first version of Bitcoin software in early 2009, and released it to the network to mine the genesis block. It seems that the entire development process took no more than a year. And we all believe that Satoshi Nakamoto was the only one developing it. But what about Segregated Witness? From the time Peter Wuille proposed the Segregated Witness solution at the Hong Kong Scaling Conference in December 2015, it is now October 2016. Segregated Witness has been under development for almost a year. But it is not over yet. You should know that the development strength of the Core Dev team, whether in terms of manpower, material resources or financial resources, far exceeds that of Satoshi Nakamoto fighting alone at the time. But they spent more time to make a modification based on the Bitcoin developed by Satoshi Nakamoto than the entire Bitcoin project developed by Satoshi Nakamoto. This shows how complex the segregated witness is. Complexity brings insecurity. What’s even more terrifying is that when SegWit is activated, if there are any problems, we have no plan to deal with them. There is even no way to deal with such a complex code. At least the core development team has not mentioned this matter yet. This is very irresponsible. Chapter 4: Bitcoin Classic developers’ proposal for upgrading the Bitcoin protocolHere is a short video of Bitcoin Classic developer Tom Zander talking about Bitcoin protocol upgrades. Tom started with the traditional software industry practices and talked about the simple way to upgrade the Bitcoin protocol. He especially commented on the issue of segregated witness. Let's end this article with a video. I added Chinese subtitles. Chapter 5 Conclusioneverything should be made as simple as possible but no simpler - Einstein. |
<<: The first practical application based on ETC, how does ETCWin plan to build the ETC ecosystem?
>>: MCG to use Bitcoin blockchain to sequence DNA of medicinal marijuana
If a woman has a rough fate, then what are these ...
There are more or less moles on the face, and mol...
1. Prefer to sleep on your stomach People with th...
Professionalism and focus, win-win cooperation Co...
The position of the Yin Tang is between the two e...
According to the Shanghai Securities News, the Mi...
summary In mid-November, FTX International was ac...
In fact, sometimes, there are some similar facial...
By Jack Chervinsky, Legal Director at Compound Tr...
For a person, the information contained in facial...
Whether boys or girls, they all hope that there i...
When choosing a partner, people often don't j...
Many people have heard of phoenix eyes, but few h...
How to interpret moles on men’s faces? Everyone h...
The facial features of a philandering woman It is...