Incomplete history of Bitcoin development

To fully understand the reasons behind the status quo of Bitcoin development, one has to understand some historical events. This article focuses on historical events, software releases, and bug fixes before and after Satoshi Nakamoto left the project; an additional chapter was added to describe the current status of Bitcoin development. The timeline attached to the article provides additional details for each event.

For most of the events here, I am not a witness. So a large part of this timeline is quoted from a lecture entitled “The History and Philosophy of Bitcoin Development” by John Newbery. The title of this article is also very clear, this article does not, and it cannot contain every important event. History is always changing. If you think I missed something, or would like to suggest me to make some changes, please submit an issue in the open source project bitcoin-development-history. This is also the method I use to add more timelines.

While Satoshi Nakamoto was still there

The starting point of this timeline is early 2007. Satoshi Nakamoto began to develop Bitcoin. This peer-to-peer electronic cash system has no place to be trusted. The entire system is completely controlled by the software run by the user.

In the early days, contributors joined Satoshi Nakamoto’s work. In addition to software development, these new contributors also added Linux and maxOS operating system support to the software. By the summer of 2010, Satoshi Nakamoto made some key changes to the software. For example, “checkpoints” are introduced as a security measure to counter attacks that spread low-difficulty chains. Nodes that use these checkpoints will reject chains whose specific height does not match a specific block. The checkpoint is hard-coded by Satoshi Nakamoto alone. In theory, this allows Satoshi Nakamoto to decide which chain the entire network should follow.

A few days after joining the checkpoint, Satoshi Nakamoto released the first consensus mechanism change in version v0.3.3 of the software. Satoshi Nakamoto urges users to upgrade. In the next month, multiple minor version updates were released one after another. One of them fixes a fatal overflow vulnerability. This vulnerability was exploited to create two high-value UTXOs. Satoshi Nakamoto suggested that miners reorganize blocks containing malicious transactions.

A week later, Satoshi Nakamoto joined an alarm system to alert node operators of similar bugs and problems in the network. This alarm system has a safe mode. Once this safe mode is triggered, all RPC methods for currency processing will be disabled for the entire network. Only Satoshi Nakamoto can use a private key signature to create a valid network alert. Some users began to question: if other people, such as a certain government, got the private key, what would the network be like?

At this time, Satoshi Nakamoto has too much power over the Bitcoin network. But the main concern is not that Satoshi Nakamoto will go bad and destroy the entire network, but that there should not be a single point of failure in a decentralized network.

In October 2010, Satoshi Nakamoto published his last post on the bitcointalk forum, announcing the removal of this security mode. Satoshi Nakamoto wrote in one of his last emails: “I am going to other places. With Gavin and everyone, this project will be well maintained.” Some people argued that Satoshi Nakamoto Leaving the Bitcoin world is one of his greatest contributions.

After Satoshi Nakamoto left

At almost the same time, the entire development process was transferred from SVN to GitHub. BlueMatt, sipa, laanwj and gmaxwell joined the project. In mid-2011, the BIP (Bitcoin Upgrade Proposal) process came into being. In the last quarter of 2011 and the first month of 2012, the community discussed multiple proposals that allowed the recipient of the transaction to specify spending conditions. As a result, P2SH transactions introduced Bitcoin.

At the end of 2012, the Bitcoin Foundation was announced. The Bitcoin Foundation imitates the Linux Foundation. Below the announcement post, some people left a message expressing concern that development will become centralized.

Bitcoin v0.8.0 was released in the spring of 2013. Two weeks later, an unexpected hard fork broke out between the upgraded and unupgraded nodes in the network. The hard fork was quickly resolved, and the miners switched their mining power to a chain that was effective for both upgraded and unupgraded nodes.

At the end of 2013, the Bitcoin software was renamed Bitcoin Core. In the next few years, companies including Chaincode and Blockstream were established. Later, the MIT Digital Currency Initiative joined Chaincode and Blockstream to provide remuneration to developers and researchers who developed Bitcoin. In February 2015, Joseph Poon and Tadgw Dryja released the first draft of the Lightning Network white paper.

In the second year, Luke Dashjr revised the BIP process through BIP 2; Bitcoin Core released v0.13.0 and added SegWit as a soft fork. In November 2016, the alert system was completely deprecated. By August 2017, SegWit was activated on the Bitcoin network. In 2019, another company, Square Crypto, began funding bitcoin development. In May 2019, Pieter Wuille proposed BIP taproot.

The current state of Bitcoin development

In the past few years, Bitcoin’s development culture has become increasingly decentralized, clear and strict. There are currently 6 maintainers of the Bitcoin Core code base in three countries. Only they can merge code changes proposed by contributors. However, before the content is merged, the changed content needs to go through a review process, which has become much stricter.

For example, in the early days of Bitcoin, there was a proposal to compete with P2SH called ” OP_EVAL“. A pull request (“Merge Request”) that implemented OP_EVAL was merged into the code base at the end of 2011. Even such a code with major changes to consensus has only one reviewer. Russell O’Connor opened an issue criticizing part of this implementation, and argued that such a large, critical change to consensus should receive more review and testing.

This incident has driven ongoing discussions on how to achieve higher quality code through more testing and review. Today, every merge request has multiple developers to review. If a change touches a critical part of security or even consensus, the review process needs to be reviewed by more auditors, requires a lot of testing, and usually takes several months of events. John Newbery, an active Bitcoin Core contributor, told me, “The fact that only one reviewer can agree to merge code that affects consensus is gone.”

People also put a lot of energy into automated testing, for example, there are unit tests written in C++ language and functional tests written in Python language. Every change that is not simple must update existing tests or add new tests to the framework. In addition to unit testing and functional testing, fuzz testing is also done on Bitcoin Core, and a benchmark testing framework is established to measure the performance of the code. For example, the bitcoinperf.com network provides Grafana and codespeed interfaces to visualize the results of periodic benchmark tests.

After years of hard work, Bitcoin Core software has formed a clear release process. The major version of Bitcoin Core is released every 6 months. The release plan includes a translation process, a feature freeze process, and usually multiple candidate versions. Recently, Cory Fields and Carl Dong are also committed to improving the security of the Bitcoin Core build process, using deterministic and bootable build packages. This new build system may not be ready to support Bitcoin Core v0.19.0, which will be released this fall, but it can provide better build process security in the future.

in conclusion

In the past ten years, the development of Bitcoin has been vicissitudes of life, from being highly centralized around Satoshi Nakamoto to being decentralized around thousands of GitHub contributors. Obviously, high standards of code review, code quality, and security are all necessary. These standards have been followed and consistently improved.

I believe that to fully understand the philosophy behind the current state of Bitcoin development, it is essential to understand these historical events. So I made a timeline to string together more events.

For further research needs, I suggest reading The Tao Of Bitcoin Development ( Chinese translation) written by Alex B. , The Bitcoin Core Merge Process written by Eric Lombrozo , and Jameson Lopp The masterpiece Who Controls Bitcoin Core? (Who controls Bitcoin Core?).

Thanks

Thanks to John Newbery for helping me sort out and review this article. He did a lot of historical research in his speech History and Philosophy of Bitcoin Development , which is also the basis of my article. In addition, I am very grateful to Chaincode Labs, he invited me to participate in their 2019 Summer Residency camp, where I met a lot of interesting people, learned a lot, and it was exactly where I started to organize the timeline and write This article

timeline

Early 2007: Satoshi Nakamoto began to develop Bitcoin

Satoshi Nakamoto began to write the code for Bitcoin. This is based on an email written by Satoshi Nakamoto on the Cryptography mailing list on November 17, 2008:

“I am sure that I have solved all these details in the programming work of the past year and a half.”

See: e-mail (metzdowd.com) and e-mail (nakamotoinstitute.org)

November 1, 2008: Bitcoin white paper released

Satoshi Nakamoto published the white paper in the Cryptography mailing group:

“I have been developing a brand new digital cash system, which is completely peer-to-peer, and there is no third party that needs to be trusted by users.”

See: e-mail (metzdowd.com) and e-mail (nakamotoinstitute.org), and white paper

Between January 3 and 9, 2009: Bitcoin’s genesis block mined

The timestamp of the genesis block is January 9th.

The coinbase transaction (the type of transaction for issuing new coins) in this block contains a famous passage:

“The Times 03/Jan/2009 Chancellor on brink of second bailout for banks”

See: block explorer, encyclopedia entry

January 9, 2009: Bitcoin v0.1 software released

Satoshi Nakamoto wrote in the Cryptography mailing list:

“I released the first version of the Bitcoin software. Bitcoin is a new electronic cash system that uses a peer-to-peer network to prevent multiple payments. It is completely decentralized, with no server and no centralized authority. “

See: e-mail

December 16, 2009: Bitcoin v0.2 software released

Martti Malmi (sirius-m) has added initial support for Linux systems. Other new features include the use of multiple cores of the CPU for mining and preliminary support for the use of agents.

See: bitcointalk.org

July 6, 2010: Bitcoin v0.3 software released

Laszlo Hanyecz (Bitcoin pizza guy) added support for macOS. Other new features include the JSON-RPC interface, and a new daemon mode. The user helped translate the graphical interface of the software into German, Dutch and Italian.

See: bitcointalk.org

July 15, 2010: Bitcoin v0.3.1 software (patch) released

Various bugs have been fixed. Gavin Andresen began to contribute.

See: bitcointalk.org

July 17, 2010: Bitcoin v0.3.2 software released

Satoshi Nakamoto added checkpoints as a safety measure. The checkpoint is that the hash value of the block that locks a certain height must be a certain value, otherwise it will be rejected. Satoshi Nakamoto wrote:

“I will probably add a checkpoint every time a new version is released from now on. If the software has already determined which is the universally accepted blockchain, there is no need to leave an increase in trouble, which may be in a few months The chance of a reversal later.”

见:bitcointalk.org、checkpoints added (diff on GitHub)

July 25, 2010: Bitcoin v0.3.3 software released

This version adds the first consensus level change.

Bitcoin software began to follow the chain with the most accumulated workload. Before that, follow the longest chain in the literal sense.

见:bitcointalk.org、consensus change (diff on GitHub)

Throughout the summer of 2010

Multiple versions of Bitcoin v0.3.xx were released during this period

August 15, 2010: Fatal overflow vulnerability is fixed

Satoshi Nakamoto released a patch in v0.3.9(ish) telling users and miners to reorganize blocks with overflow error transactions.

See: bitcointalk.org

August 22, 2010: The introduction of the alarm system

Satoshi Nakamoto started to develop an alarm system, which is planned to be added in v0.3.11. He wrote:

“I have been writing an alarm system. The alarm will be broadcast on the network and will take effect in some versions of the software. The alarm message needs to be signed with a private key that only I know.”

“Occasionally a node may fall into a temporary downtime that may scare you, but it’s better than the scare when you find that your money is sucked away.”

“When we haven’t found any new bugs for a long time, and thorough security checks have not found any problems, this system can be reduced. I don’t advocate that we will use it forever. But Bitcoin is still in a beta stage. software.”

See: bitcointalk.org

December 12, 2010: Satoshi Nakamoto made the last post

Satoshi Nakamoto posted his last post on bitcointalk.org. He added some DoS restrictions and removed the aforementioned alarm system security mode.

“There is still a lot of work to be done on DoS protection, but I am developing a backup quick build package in case of accidents; more complicated ideas will be discussed later. The software built by this package is v0.3.19.”

See: bitcointalk.org

December 19, 2010: Development work moved to GitHub

Active development and issue tracking of Bitcoin software have been transferred to GitHub.

See: the first issue recorded by GitHub

April 23, 2011: Satoshi Nakamoto speaks for the last time

The last email from Satoshi Nakamoto to Mike Hearn allegedly:

“I have already done something else. Gavin and everyone will do it well.”

See: Email conversation on pastebin.com

March to June 2011: new contributors join

Several new contributors joined: TheBlueMatt (on March 3), sipa (on March 12), laanwj (on March 15), and gmaxwell (on June 18).

See their first merger request: TheBlueMatt, sipa, laanwj, gmaxwell

August 19, 2011: First BIP *

The first BIP “BIP 1: Purpose and Guidelines of BIP” appeared.

See: BIP 1 on GitHub

September 23, 2011: Bitcoin v0.4 launched

v0.4 is released, and the main new feature is wallet encryption. See: update instructions

November 21, 2011: Bitcoin-QT v0.5 released

The new feature is a major patch for the new qt graphical interface and wallet encryption function (CVE-2011-4447)

See: update instructions, CVE-2011-4447

November 2011 ~ April 2012: P2SH and other proposed work

Several proposals (OP_EVAL, P2SH, OP_CHV) are designed to allow the recipient of a transaction to specify a script for spending funds.

P2SH is implemented on Bitcoin-Qt v0.5.4. The other two were abandoned.

See: BIP 12: OP_EVAL, OP_EVAL and request, OP_EVAL recursion problem, BIP 16: P2SH, BIP 17: OP_CHECKHASHVERIFY

March 30, 2012: Bitcoin-QT v0.6 released

New features include an address QR code, an implementation of BIP30 (a security fix for an attack involving copying coinbase transactions), and a repair of memory-related denial of service attack vectors.

See: update instructions

September 17, 2012: Bitcoin-QT v0.7 released

Including the implementation of BIP22, BIP34 and BIP35, as well as many changes on the graphical interface, as well as networking RPC code.

See: update instructions

September 27, 2012: Bitcoin Foundataion was announced

Gavin Andresen announced the establishment of the Bitcoin Foundation.

See: post on bitcointalk.org

February 19, 2013: Bitcoin-QT v0.8 released

This version update migrates blockchain storage from BerkleyDB database format to LevelIDB database. The “Ultraprune” function was implemented by sipa (Pieter Wuille), who separated the UTXO collection from the blockchain database.

See: update announcement

March 11, 2013: Unexpected hard fork

An unexpected hard fork occurred, separating the v0.8 node from the older version.

See: BIP 50: Post-incident report of the chain split in March 2013, bitcoin.org network alert

December 12, 2013: Software rebranding

The Bitcoin-Qt software has been repackaged to use the new name of Bitcoin Core.

See: PR on GitHub

March 19, 2014: Bitcoin Core v0.9 released

New features include: OP_RETURN opcode can write data in the blockchain, but it will also make related UTXOs unusable. In addition, autotools is used as a build system, and bitcoin-cli (command line tool) is introduced as an RPC client.

See: update instructions

Sometime in 2014: Chaincode Labs was established

Alex Morcos and Suhas Daftuar established Chaincode Labs in 2014 to create a space where engineers and scientists can support the development of decentralized digital currencies.

October 23, 2014: Blockstream was established

Adam Back, Matt Corallo, Greg Maxwell, Pieter Wuille and others founded Blockstream and released their sidechain white papers.

See: Why do we want to set up Blockstream?

February 16, 2015: Bitcoin Core v0.10.0 released

Important updates include: the synchronization method of first synchronizing the block header, the REST interface, and the bitcoin-tx module for creating and manipulating transactions.

See: update instructions

February 2015: Release of Lightning Network White Paper

Joseph Poon and Thaddeus Dryja released the first draft of the Lightning Network white paper

See: Lightning Network White Paper

April 15, 2015: MIT DCI was established

MIT Media Lab launched the Digital Currency Initiative (DCI). DCI is a research community focusing on cryptocurrency and blockchain technology.

See: DCI launch announcement

July 12, 2015: Bitcoin Core v0.11.0 released

This version of the software regards block file trimming as a major feature.

See: update instructions

February 3, 2016: BIP 2

Luke Dashjr drafted BIP 2, proposing a more clearly defined BIP process. This proposal is accepted by the community

See: BIP 2: BIP process revision

February 23, 2016: Bitcoin Core v0.12.0 released

The main update is the introduction of libsecp, sendheader, selected RBF (BIP 125) and transaction memory pool limits.

See: update instructions

April 15, 2016: Bitcoin Core v0.12.1 released

This version includes the definition of BIP 9 (version identification logic) and OP_CHECKSEQUENCEVERIFY soft fork.

See: update instructions

August 23, 2016: Bitcoin Core v0.13.0 released

It includes changes prepared for segwit (segregated witness), block compression function, transaction pool filtering based on fee price, HD wallet lag, and CPFP transaction selection algorithm.

See: update instructions

October 27, 2016: Bitcoin Core v0.13.1 released

This version includes the SegWit soft fork.

See: update instructions

November 1, 2016: The alarm system retires

The alarm system at the network layer represents a large centralization force of Bitcoin, which has now entered history.

See: Announcement

March 8, 2017: Bitcoin Core v0.14 released

This version of the software greatly improves the speed of the first download of the block.

See: update instructions

August 24, 2017: SegWit activation

SegWit is activated on the Bitcoin mainnet.

September 14, 2017: v0.15 released

This version of the software has added a better fee estimation function, which can add a fee on the graphical interface, as well as a multi-wallet function and a script cache function.

See: update instructions

November 11, 2017: v0.15.1 released

This version focuses on the security of the P2P network to prevent possible network forks in the future. It also fixes some bugs and optimizes and upgrades the 0.15.x series.

See: update instructions

February 26, 2018: Bitcoin Core v0.16 released

This version mainly adds SegWit support to the Bitcoin Core wallet.

See: update instructions

October 3, 2018: Bitcoin Core v0.17 released

This version adds some functions to the wallet. One of them is to support partially signed Bitcoin transactions (PSBT).

See: update instructions

March 20, 2019: Square Crypto was established

Jack Dorsey announced that Square Crypto will recruit 3~4 engineers and 1 designer to make full-time open source contributions to the Bitcoin ecosystem.

See: tweet

May 2, 2019: Bitcoin Core v0.18 released

This version update includes a large number of new features and some minor changes.

See: update instructions

May 6, 2019: Taproot proposes

Pieter Wuille proposed multiple BIPs to implement Schnorr signature and taproot in Bitcoin to improve the privacy, efficiency and flexibility of Bitcoin smart contracts.

See: Mail Group Post

August 9, 2019: Bitcoin Core v0.18.1 released

This minor version added new features, multiple patches and performance upgrades, and updated translations.

See: update instructions

August 19, 2019: Miniscript launched

Pieter Wuille proposed Miniscript, a language that makes programming of Bitcoin scripts more friendly.

See: mail group post, project page

November 24, 2019: Bitcoin Core v0.19.0.1 released

This version added new features, multiple patches and performance upgrades, and updated translations.

See: update instructions

March 9, 2020: Bitcoin Core v0.19.1 released

This version fixes multiple bugs and improves performance.

See: update instructions

June 3, 2020: Bitcoin Core v0.20.0 released

This version fixes multiple bugs and improves performance.

See: update instructions

August 1, 2020: Bitcoin Core v0.20.1 released

This minor version update includes different ways to deal with bad peer nodes, wallet reminders, and PSBT support UTXO with and without witness.

See: update instructions

2020: Development awards for Bitcoin projects and individual contributors

Companies including BitMEX, Square Crypto, OKCoin, BTSE, and Kraken, as well as Human Rights Fundation, Paradigm and Coinbase exchanges, have set up multiple development awards for Bitcoin projects and individual contributors.

见:Square Crypto Grants、BitMEX Grants、OKCoin Grants、Coinbase Grants、Polylunar Grant Tracker、Bitcoin Words Grant Tracker

 

Posted by:CoinYuppie,Reprinted with attribution to:https://coinyuppie.com/incomplete-history-of-bitcoin-development/
Coinyuppie is an open information publishing platform, all information provided is not related to the views and positions of coinyuppie, and does not constitute any investment and financial advice. Users are expected to carefully screen and prevent risks.

Leave a Reply