Bitcoin has no CEO or formal central authority. But software development inevitably involves people who have more influence than ordinary users. Bitcoin core is extremely important because the software determines which blocks and transactions a node considers valid. Bitcoin.org itself says users running Bitcoin core independently enforce the rules. And the Bitcoin developer documentation explicitly acknowledges that Bitcoin's security depends on the behavior of software maintaining consensus.
Does it mean that developers control Bitcoin? If yes, How we call it as decentralized?
From your OP (above), you've clearly highlighted the division of responsibilities, which includes:
- Node runners
- Consensus
- developers.
Node runners: This part is responsible for transaction verification and record keeping. They may include any single individualincluding youwho has a good working system with enough storage, and an Internet connection.
Consensus: This is an automated system that determines how a transactions is approved. It includes a set of rules that the whole system follows to approve, verify, and store a transaction. This part includes the following:
- Miners: they pick up pending transactions from the mempool and group them into blocks using high computing power, earning rewards based on first come basisit's basically a competition of computing power out there (proof-of-work).
- Nodes: they verify the sorted out transactions as validensuring no double spendingand eventually keeps a record of them.
Developers: this is the last part of your OP. They actually propose new rules that can be implemented by the system above (nodes and miners). Lemme explain further.
When a new rule is proposed, it is sent to the Bitcoin devs, the whole Bitcoin dev community look into the proposal, and either accept or reject it. If accepted, they implement the code in Bitcoin core, the code will be triggered by a conditionnormally, an "if" statement (the newly implemented code is usually strictly applied, in that, the previous rules are also wired in the new implementation)although, sometimes there could be a hard fork.
After this process, it is left for the miners and node runners to download this new version and trigger it. If the community doesn't like the new implementation, they can simply ignore the trigger condition and continue with the previous rule.
No one arm can dictate the eventual rules to apply without a general and synchronous agreementyou can't enforce a rule, or make changes independently. This is why the protocol is actually decentralized despite devs being the ones that write the rules into the code base.
Let's walk down history lane. Gavin Andresen was one of the core developers of Bitcoin who worked closely with Satoshi. Satoshi even said He has left things in the good hands of Gavin and everyone in a private email to Mike Hearn which was later made publicthese are historical facts you can easily find anywhere.
The above statement is to show how influential Gavin was in the Bitcoin projectyou can Google or wiki him to know more. Yet, when he proposed BIP101 to increase the block size of transaction from 1mb - 8mb, it was rejected. He had to go create his own coin. Even when a similar proposal was made by miners and some devs in 2016, it was shut down using UASF (Users-Activated Soft Fork): this activated segwit based on nodes influence.
(
source)
The brief history above shows how deveven though very influential, and can write and propose new rulescannot enforce these rules and have centralization of authority over the network.