
Author: 0xB10C
Author: 0xB10C
Translation: A Jian
I am not a witness to most of the events here. So a large part of this timeline is quoted from a talk by John Newbery called "The History and Philosophy of Bitcoin Development". The title of this article is also very clear. This article does not and cannot cover every important event. History is always in flux, if you think I'm missing something, or want to suggest some changes, please file an issue in the open source project bitcoin-development-history, which is how I attach more timelines.
first level title
When Satoshi Nakamoto was still there
The starting point for this timeline is early 2007. Satoshi Nakamoto started developing Bitcoin. There is no place for this peer-to-peer electronic cash system to be trusted. The entire system is completely controlled by software run by the user.
Early on, there were contributors who joined Satoshi's work. In addition to software development, these new contributors have added support for the Linux and maxOS operating systems to the software. By the summer of 2010, Satoshi had made some key changes to the software. For example, "checkpoints" were introduced as a security measure against attacks that propagate low-difficulty chains. Nodes that use these checkpoints will reject chains that do not match certain blocks at a certain height. The checkpoints are hard-coded by Satoshi alone, which theoretically allows Satoshi to decide for himself which chain the entire network follows.
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 urged users to upgrade. In the next month, multiple minor version updates will be released one after another. One of them fixes a fatal overflow bug. This vulnerability was exploited to create two high-value UTXOs. Satoshi suggested that miners reorganize blocks containing malicious transactions.
A week later, Satoshi added an alert system to alert node operators of similar bugs and issues in the network. This alarm system has a safe mode. This security mode, once triggered, disables all RPC methods for currency processing across the entire network. Only Satoshi Nakamoto was able to sign with a private key to create valid network alerts. Some users began to question: what would happen to the network if someone else, such as a government, got hold of this private key?
In October 2010, Satoshi Nakamoto posted his last post on the bitcointalk forum, announcing the removal of this security model. In one of his last emails, Satoshi wrote: "I'm ready to go elsewhere. With Gavin and everyone, this project will be well maintained." Some have argued that Satoshi Leaving the Bitcoin world is one of his greatest contributions.
first level title
After Satoshi left
Almost at the same time, the entire development process moved from SVN to GitHub. BlueMatt, sipa, laanwj and gmaxwell joined the project. In mid-2011, the BIP (Bitcoin Upgrade Proposal) process was born. During the last quarter of 2011 and the first month of 2012, the community discussed several proposals that would allow recipients of transactions to specify spending conditions. Thus, P2SH transactions were introduced into Bitcoin.
In late 2012, the Bitcoin Foundation was announced. The Bitcoin Foundation is modeled after the Linux Foundation. Below the announcement post, some people left messages expressing concern that development would become centralized.
Bitcoin v0.8.0 was released in spring 2013. Two weeks later, an unexpected hard fork erupted between upgraded and non-upgraded nodes in the network. The hard fork was quickly resolved, with miners switching their mining power to a chain that worked for both upgraded and non-upgraded nodes.
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.
first level title
The Current State of Bitcoin Development
Over the past few years, Bitcoin's development culture has become increasingly decentralized, purposeful, and rigorous. The Bitcoin Core code base now has 6 maintainers spread across three countries. Only they can incorporate code changes proposed by contributors. However, the changed content also goes through a review process, which also becomes much more rigorous, before the content is merged.
For example, in the early days of Bitcoin, there was a proposal to compete with P2SH called "OP_EVAL". A pull request ("merge request") implementing OP_EVAL was merged into the codebase at the end of 2011. Even such code with major changes to consensus has only one reviewer. Russell O'Connor opened an issue criticizing parts of the implementation and arguing that such a large, consensus-critical change should be more reviewed and tested.
This incident fueled an ongoing discussion on how to achieve higher quality code through more testing and auditing. Today, each merge request is reviewed by multiple developers. If a change touches a key part of security or even consensus, the review process needs to be reviewed by more reviewers, requiring a lot of testing, which usually takes several months. John Newbery, an active Bitcoin Core contributor, told me that "gone are the days when only one reviewer could approve of merging consensus-affecting code".
first level title
timeline
timeline
Early 2007: Satoshi Nakamoto begins developing Bitcoin
Satoshi Nakamoto began writing the code for Bitcoin. This is according to an email written by Satoshi Nakamoto on the Cryptography mailing list on November 17, 2008:
"I'm pretty sure I've worked out all these details in the past year and a half of programming."
See: e-mail (metzdowd.com) and e-mail (nakamotoinstitute.org)
November 1, 2008: Bitcoin white paper released
Satoshi Nakamoto announced the white paper in the Cryptography mailing group:
“I have been developing a brand new digital cash system that is completely peer-to-peer with no third parties that users need to trust.”
See: e-mail (metzdowd.com) and e-mail (nakamotoinstitute.org), and white paper
Between January 3rd and 9th, 2009: Bitcoin's genesis block is mined
The genesis block has a timestamp of January 9th.
The coinbase transaction (the type of transaction that issues new coins) of this block contains a famous passage:
“The Times 03/Jan/2009 Chancellor on brink of second bailout for banks”
See: block browser, encyclopedia entry
January 9, 2009: Bitcoin v0.1 software released
Satoshi Nakamoto wrote in the Cryptography mailing group:
"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 servers and no centralized authority. "
See: e-mail
December 16, 2009: Bitcoin v0.2 software released
Martti Malmi (sirius-m) added preliminary support for Linux systems. Other new features include mining with multiple CPU cores and preliminary support for using proxies.
See: bitcointalk.org
July 6, 2010: Bitcoin v0.3 software released
Laszlo Hanyecz (Bitcoin pizza guy) added support for macOS. Other new features include a JSON-RPC interface, and a new daemon mode. User assistance translated the software's graphical interface into German, Dutch and Italian.
See: bitcointalk.org
July 15, 2010: Bitcoin v0.3.1 software (patch) released
Fixed various bugs. Gavin Andresen started contributing.
See: bitcointalk.org
July 17, 2010: Bitcoin v0.3.2 software released
Satoshi Nakamoto added checkpoints as a security measure. The checkpoint is to lock the block hash value of a certain height must be a certain value, otherwise it will be rejected. Satoshi Nakamoto wrote:
"I'd probably start now and add a checkpoint every new release. If the software has already decided which is the generally accepted blockchain, there's no point in leaving an incrementally troubled chain that may be in a few months." Opportunities for a reversal later.”
See: bitcointalk.org, checkpoints added (diff on GitHub)
July 25, 2010: Bitcoin v0.3.3 software released
This version incorporates the first consensus-level changes.
The Bitcoin software starts following the chain with the most accumulated work. Before that, follow the literally longest chain.
See: bitcointalk.org, consensus change (diff on GitHub)
Throughout the summer of 2010
Multiple versions of Bitcoin v0.3.xx were released during this time
August 15, 2010: Deadly overflow bug 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: Alert system introduced
Satoshi Nakamoto started developing an alert system, planned to be added in v0.3.11. He wrote:
"I've been writing an alert system. Alerts are broadcast across the network, and in some versions of the software. Alert messages are signed with a private key that only I know."
“The occasional temporary outage of a node can be a shock to you, but it’s better than the shock of finding out that your money has been sucked out.”
"Whenever we haven't found new bugs for a long time, and thorough security checks have found nothing, the system can be scaled back. I'm not advocating that we use it forever. But Bitcoin is still a beta stage software."
See: bitcointalk.org
December 12, 2010: Last post by Satoshi Nakamoto
Satoshi Nakamoto's last post on bitcointalk.org. He added some DoS restrictions and removed the aforementioned alert system safemode.
"There's still a lot of work to be done on DoS protection, but I'm working on a backup quick build package in case something happens; more complex ideas for later. The software this package builds is v0.3.19."
See: bitcointalk.org
December 19, 2010: Development moved to GitHub
Active development and issue tracking of the Bitcoin software moved to GitHub.
See: the first issue logged by GitHub
April 23, 2011: Satoshi Nakamoto's last voice
Allegedly from Satoshi’s last email to Mike Hearn:
"I'm already off to other things. Gavin and everyone will get this right."
See: email conversation on pastebin.com
March-June 2011: New contributors join
Several new contributors joined: TheBlueMatt (on March 3rd), sipa (on March 12th), laanwj (on March 15th), and gmaxwell (on June 18th).
See their first merge requests: TheBlueMatt, sipa, laanwj, gmaxwell
August 19, 2011: First BIP
The first BIP "BIP 1: Purpose and Guidelines for BIP" appears.
See: BIP 1 on GitHub
September 23, 2011: Bitcoin v0.4 launched
v0.4 is released, the main new feature is wallet encryption. See: Update Notes
November 21, 2011: Bitcoin-QT v0.5 released
New features are new qt GUI and a major fix for wallet encryption (CVE-2011-4447)
See: Update Notes, CVE-2011-4447
Nov 2011 ~ April 2012: Work on P2SH and other proposals
Several proposals (OP_EVAL, P2SH, OP_CHV) aim to allow the recipient of a transaction to specify a script to spend funds.
P2SH is implemented on Bitcoin-Qt v0.5.4. The other two were dropped.
See: BIP 12: OP_EVAL, OP_EVAL merge request, OP_EVAL recursive issue, BIP 16: P2SH, BIP 17: OP_CHECKHASHVERIFY
March 30, 2012: Bitcoin-QT v0.6 released
New features include QR codes for addresses, an implementation of BIP30 (a security fix for an attack involving copying coinbase transactions), and fixes for memory-related denial-of-service attack vectors.
See: Update Notes
September 17, 2012: Bitcoin-QT v0.7 released
Includes implementations of BIP22, BIP34, and BIP35, as well as many changes to the graphical interface, and RPC code for networking.
See: Update Notes
September 27, 2012: Bitcoin Foundationataion announced
Gavin Andresen announced the formation of the Bitcoin Foundation.
See: post on bitcointalk.org
February 19, 2013: Bitcoin-QT v0.8 released
This update migrates the storage of the blockchain from the BerkleyDB database format to the LevelIDB database. The "Ultraprune" feature was implemented by sipa (Pieter Wuille), who separated the UTXO set from the blockchain database.
See: update announcement
March 11, 2013: The Unexpected Hard Fork
An unexpected hard fork happened that separated the v0.8 nodes from the older versions.
See: BIP 50: After-the-fact report of the March 2013 chain split event, bitcoin.org Network Alert
December 12, 2013: Software rebranding
The Bitcoin-Qt software has been repackaged under the new name of Bitcoin Core.
See: PR on GitHub
March 19, 2014: Bitcoin Core v0.9 released
New features include: The OP_RETURN opcode can write data in the blockchain, but also makes the associated UTXO unusable. Also, autotools is used as the build system, while bitcoin-cli (command line tool) is introduced as an RPC client.
See: Update Notes
Sometime in 2014: Chaincode Labs is formed
Alex Morcos and Suhas Daftuar founded Chaincode Labs in 2014 to create a space where engineers and scientists could support the development of decentralized digital currencies.
October 23, 2014: Blockstream launched
Adam Back, Matt Corallo, Greg Maxwell, Pieter Wuille and others founded the Blockstream company and released their sidechain white paper.
See: Why did we start Blockstream?
February 16, 2015: Bitcoin Core v0.10.0 released
Important updates include: the sync method to first sync block headers, the REST interface, and the bitcoin-tx module for creating and manipulating transactions.
See: Update Notes
February 2015: Lightning Network white paper released
Joseph Poon and Thaddeus Dryja Release First Draft of Lightning Network Whitepaper
See: Lightning Network White Paper
April 15, 2015: MIT DCI launched
The MIT Media Lab launches the Digital Currency Initiative (DCI). DCI is a research community focused on cryptocurrencies and blockchain technology.
See: DCI Launch Announcement
July 12, 2015: Bitcoin Core v0.11.0 released
This version of the software includes block file pruning as a major feature.
See: Update Notes
February 3, 2016: BIP 2
Luke Dashjr drafted BIP 2, proposing a more clearly defined BIP process. This proposal was accepted by the community
See: BIP 2: BIP Process Revision
February 23, 2016: Bitcoin Core v0.12.0 released
Major updates are the introduction of libsecp, sendheader, opt-in RBF (BIP 125), and transaction mempool limits.
See: Update Notes
April 15, 2016: Bitcoin Core v0.12.1 released
This version includes BIP 9 (version identification logic) and the definition of the OP_CHECKSEQUENCEVERIFY soft fork.
See: Update Notes
August 23, 2016: Bitcoin Core v0.13.0 released
Contains changes for segwit (segregated witness), compressed block function, transaction pool filtering based on fee price, HD wallet hysteresis, and CPFP transaction selection algorithm.
See: Update Notes
October 27, 2016: Bitcoin Core v0.13.1 released
This release includes the SegWit soft fork.
See: Update Notes
November 1, 2016: Alert system retired
The alert system at the network layer represents a great centralizing force of Bitcoin, and is now a thing of the past.
See: Announcements
March 8, 2017: Bitcoin Core v0.14 released
This version of the software has greatly improved the speed of the initial block download.
See: Update Notes
August 24, 2017: SegWit activation
SegWit is activated on the Bitcoin mainnet.
September 14, 2017: v0.15 released
This version of the software adds a better service fee estimation function, which can add service fees in the graphical interface, as well as multi-wallet function and script cache function.
See: Update Notes
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 Notes
February 26, 2018: Bitcoin Core v0.16 released
This version mainly adds SegWit support to the Bitcoin Core wallet.
See: Update Notes
October 3, 2018: Bitcoin Core v0.17 released
This release adds some functionality to the wallet. One of these is support for partially signed Bitcoin transactions (PSBT).
See: Update Notes
March 20, 2019: Square Crypto launched
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 Notes
May 6, 2019: Taproot proposed
Pieter Wuille proposed multiple BIPs to implement Schnorr signatures in Bitcoin as well as taproot to improve the privacy, efficiency, and flexibility of Bitcoin smart contracts.
See: mailing list post
August 9, 2019: Bitcoin Core v0.18.1 released
This minor release includes new features, several patches and performance upgrades, and updated translations.
See: Update Notes
August 19, 2019: Miniscript launched
Pieter Wuille proposed Miniscript, a more friendly language for Bitcoin script programming.
See: mailing list post, project page
November 24, 2019: Bitcoin Core v0.19.0.1 released
This version adds new features, several patches and performance upgrades, and updated translations.
See: Update Notes
March 9, 2020: Bitcoin Core v0.19.1 released
This version fixes several bugs and improves performance.
See: Update Notes
June 3, 2020: Bitcoin Core v0.20.0 released
This version fixes several bugs and improves performance.
See: Update Notes
August 1, 2020: Bitcoin Core v0.20.1 released
Updates in this minor version include different ways of dealing with rogue peers, wallet reminders, and PSBT support for UTXOs with and without witnesses.
See: Update Notes
2020: Development Awards for Bitcoin Projects and Individual Contributors
Companies including BitMEX, Square Crypto, OKCoin, BTSE, Kraken, as well as the Human Rights Foundation, Paradigm, and Coinbase exchanges have created several development awards for Bitcoin projects and individual contributors.
first level title
in conclusion
in conclusion
Over the past ten years, Bitcoin’s development culture has changed from highly centralized around Satoshi Nakamoto to decentralized around a few thousand GitHub contributors (2018 data). Clearly, high standards of code review, code quality, and security are all necessary. These standards are followed and consistently improved.
I believe that understanding these historical events is essential to fully understanding the philosophy behind the current state of Bitcoin development. So I made a timeline that strings together more events.For further research needs, it is recommended to read The Tao Of Bitcoin Development written by Alex B. (), The Bitcoin Core Merge Process by Eric Lombrozo, and Jameson Lopp's masterpiece Who Controls Bitcoin Core? (Who controls Bitcoin Core?).
thank you
thank you
(unfinished)
Original link:
https://b10c.me/blog/004-the-incomplete-history-of-bitcoin-development/