A Bitcoin Improvement Proposal (BIP) is a standard for proposing changes to the Bitcoin protocol, or in some cases a source for information for the Bitcoin community. Additionally, some BIPs are proposed changes to the BIP process itself.
BIPs can include consensus-critical changes (like soft fork and hard fork protocol upgrades) but also other changes that benefit from coordination across different Bitcoin software implementations, such as changes to the peer-to-peer layer or new backup seed formats.
Further Reading: What Are Bitcoin Forks?
Not all changes to a Bitcoin software implementation affect the Bitcoin protocol, however. For example, some changes make the code run more efficiently, or change the user interface. Such changes, therefore, do not require a BIP.
The BIP process was first developed and introduced by early Bitcoin developer Amir Taaki, who also created the first alternative implementation of the Bitcoin protocol: Libbitcoin. Taaki believed that the Bitcoin development process would benefit from becoming more structured and accountable.
Taaki submitted the first BIP (BIP 0001) on August 19, 2011, which described the BIP process itself. It was heavily based on the process for improving Python, a programming language, described in Python Enhancement Proposal 0 (PEP 0).
Every BIP starts as a draft, submitted by one or several authors. (Although, even before a BIP is a draft, it’s typically discussed more informally on the Bitcoin development mailing list, Internet Relay Chat (IRC) channels and/or other venues.)
As a draft, the BIP can be changed and improved by the author(s), based on community feedback. In the case of Bitcoin protocol changes, it will also require a reference implementation, in code. If the proposal reaches community consensus, it will be considered final.
Pictured below is the BIP process as taken from BIP 0001.
Adoption ultimately happens as developers implement the code that reflects the BIP, and users choose to download and run this code.
BIP numbers are assigned by the BIP editor. The current BIP editor is Bitcoin Core contributor and Bitcoin Knots maintainer Luke-Jr. BIPs are numbered once the draft BIP meets some minimal criteria. For example, it must comply with some formatting requirements, and the proposal must be considered complete.
The BIP editor can reserve certain ranges of numbers for proposals around a common theme. But really, the numbering doesn’t matter.
No, BIPs are not binding. In the end, developers decide what code to implement, and everyone decides for themselves which software they run on their computer, and even which software and protocol they consider to be “Bitcoin.”
Further Reading: What Is Bitcoin?
For a more detailed overview of the BIP process see BIP 0001.