<p>Every Bitcoin node unilaterally enforces the protocol rules locally. Bitcoin Core (and most other Bitcoin node software) does <em>not</em> have an auto-update function. Nodes only update when their operators choose to install a new version of the software. Node operators <em>decide what they consider to be Bitcoin</em> every time they choose which version of the software to run. <strong>Not updating</strong> to a version that implements new rules that breaks with established precepts of Bitcoin is the <em>expected decision</em>.  Bitcoin’s network rules emerge from these individual decisions.</p>
<p>Therefore, it is unlikely that you would succeed at convincing 17,000 of 18,000 nodes to run your forward-incompatible version. Even if you spin up thousands of new nodes, the existing nodes will not be influenced: they enforce the rules of their own implementation. <em>Even if you were to convince a majority to upgrade to your new version, a minority could stick to the old rules</em>, the nodes following the old rules would simply reject the first block found by the new nodes and ban the peer for sending them invalid data. The networks would separate in two whenever the new nodes published their first block.</p>
<p>Basically, it comes down to: &quot;I don’t care what rules your node accepts, my node enforces the rules that I think are Bitcoin.&quot; I might reconsider if I see evidence that the economic majority rests with the new rules, but for above reasons, I’d expect that the economic majority would stick to the old rules, just like it did when BCH forked off.</p>

CC BY-SA 4.0
2024-06-03T13:43:05.737Z
2024-06-03T13:43:05.737Z
Murch
<p>Imagine Bitcoin was run by only you and 2 other friends. Each of you run their own node. You decide you want to change the code, so you spin up 40 new nodes so that now you have 95% of the nodes. You change the code on your nodes, but your friends don't.</p>
<p>What would happen is that you would be left alone, while your friends would keep exchanging sats between them. No one will accept your blocks, the network would fork and your nodes would be mining blocks that no one care about.</p>
<p>In a nutshell, it's not about 95% of the nodes, it's about 95% of economic interests on the network. And it doesn't need to be 95%, it must be a vast majority, but not sure if the value is fixed on 95%.</p>

CC BY-SA 4.0
2024-05-28T08:04:13.103Z
If network start forking between my block and my friends block. Just because majority nodes accepted my protocols (because i am running them), due to which my branch increase in length and accepted by main block. 
Because as per the rule longest chain consider valid and all node switch to it.
Burair abbas
CC BY-SA 4.0
2024-05-28T08:53:04.743Z
@Burair, the longest **valid** chain, nodes don't keep track of invalid blocks. (and it is chain with most work not longest)
RedGrittyBrick
CC BY-SA 4.0
2024-05-28T13:02:26.540Z
As @RedGrittyBrick said, even though there are 40 nodes mining branch B (your branch), your friend's nodes will not accept those blocks, since they would be invalid to them (remember, they didn't update the code, so they are still running the previous version of the code) so they will keep themselves on branch A.
bordalix
CC BY-SA 4.0
2024-06-02T06:52:42.783Z
@bordalix , If i am merging my branch B into main branch and every other node have to update their software. Which mean all the node now follow my code changes. Right?
Burair abbas
CC BY-SA 4.0
2024-06-02T07:22:58.617Z
@Burairabbas no. You cannot merge branches, since they are incompatible. Let's say blocks on branch B (your branch) have a new block subsidy of 21 while blocks on initial branch still have the initial 3.125 subsidy. Your friend nodes will never accept your blocks, and you cannot force them to update their code. From the fork moment onwards there will be 2 branches/networks, Bitcoin and Buraircoin.
bordalix
CC BY-SA 4.0
2024-06-02T10:27:16.413Z
@bordalix  I believe i am not understanding the blockchain or bitcoin principle. 
Let me define it:
There are more than 300 issues in Bitcoin github and developers are actively working on it. Bitcoin is based on blockchain and it is just a project which allow people to transfer crypto-currency over the internet with PoW.
And every person who literal own that project in their local machine are the full nodes and act like a ledger.
Am i correct till now ?
Burair abbas
CC BY-SA 4.0
2024-06-02T11:26:29.640Z
Like any other project, bitcoin is just a project.
If developer is fixing any bug or improving any thing, than all node simple update its software and it got reflected their. For example: if i want to change the logo of bitcoin than i create a new feature branch, update the logo and open the merge request. When it got accepted. New logo is reflected when someone update its software. 
Just because its an application people will update it with their own comfortability. Like user update their android phone and windows laptop.
Burair abbas
CC BY-SA 4.0
2024-06-02T11:43:55.727Z
@bordalix 
As i am repeating myself again. Like any other project, bitcoin is just a project.
For example: If i am change any logic or fixing any bug in my ecommerce project. Or changing logo.
I dont ask my user or do consensus either they like new logo or not.

They update the software and logo updated.
So, why dont we just simple change the bitcoin code like any other project?
Burair abbas
CC BY-SA 4.0
2024-06-03T05:53:28.747Z
First, there's a central point for Bitcoin code at https://github.com/bitcoin/bitcoin. In order for you (or any other person) to change the code, the change must be accepted by the repo coordinators. Second, not all changes are equal: changing a logo doesn't change the coin, but changing the consensus rules will. Third, there's no auto update on bitcoin, users must update it by themselves. So, you're not wrong, changing bitcoin is about changing the code, but that change must be accepted by the community to have an effect, and that's why you cannot change the bitcoin cap limit on your own.
bordalix
CC BY-SA 4.0
2024-06-03T06:38:25.303Z
@bordalix as per your statement:
'changing a logo doesn't change the coin, but changing the consensus rules will'
Why changing the consensus need to change the coin? A simple 'CHANGE OF LOGIC' can't identify as a Change in Consensus Or Change in Logo. 
If i change the consensus rule and most of nodes accepted it. Then those you haven't updated there software are the one left alone.
Burair abbas
CC BY-SA 4.0
2024-06-03T06:50:57.797Z
@bordalix 
For example: old protocol rules said 'Bitcoin cap < 21M' while new updated code block protocol said 'Bitcoin cap > 21M'. 
Then old nodes rejected new block. Plus they loss the opportunity of getting new reward coins on validation. 
Vice versa If old nodes validate any coin all of the network reject their block because they are violating new protocol. 
What if: in old protocol have some bug like one found in 2010 where 184 billion new bitcoin was created in single transaction. 
At that point, either they have to leave their branches Or update their code with new protocol.
Burair abbas
CC BY-SA 4.0
2024-06-03T09:37:46.807Z
@Burairabbas "Then old nodes rejected new block. Plus they loss the opportunity of getting new reward coins on validation" - old nodes will be validating and getting rewards from old network. For them the new network is worthless.
bordalix
CC BY-SA 4.0
2024-06-03T09:40:57.007Z
@Burairabbas "What if: in old protocol have some bug like one found in 2010 where 184 billion new bitcoin was created in single transaction" - yes, in this case a majority of miners must adhere to the code update in order implement the soft fork and reverse the bug. But this was a very special situation, one of the two moments where Bitcoin had a downtime: https://en.bitcoin.it/wiki/Value_overflow_incident
bordalix
CC BY-SA 4.0
2024-06-04T06:35:26.337Z
@bordalix - "old nodes will be validating and getting rewards from old network."  If there were a 2 branches. New nodes which are on new protocol and they are in majorities. So, most of the transaction is validated by them. Old nodes which are in minorities like 1% as compare to new nodes. If i did a pizza transaction. And its validated by old nodes. The receiver and me both using different wallet service provider. My wallet confirmed my transaction but receiver wallet only verify the new protocol branch, can't verified it. Does this create any conflict? If there any chances for this scenario?
Burair abbas
CC BY-SA 4.0
2024-06-04T11:05:11.733Z
@Burairabbas you would have 2 networks: Bitcoin with 2 nodes, and Buraircoin with 40 nodes. They will not validate transactions from each other, as Bitcoin nodes don't validate BCash transactions and vice-versa.
bordalix
CC BY-SA 4.0
2024-06-08T09:12:51.633Z
@bordalix Thanks for your all answers.
Burair abbas
CC BY-SA 4.0
2024-05-28T05:58:37.380Z
2024-05-28T13:03:14.800Z
2024-05-28T13:03:14.800Z
bordalix
<p>To alter the Bitcoin blockchain protocol, such as increasing the Bitcoin cap, a consensus among the majority (95%) of participants is necessary due to decentralization and the consensus mechanism.</p>
<p>However, with only 18,000 full node Bitcoin users, achieving the required 95% agreement threshold, roughly 17,100 full nodes, don't seem challenging. Many of these nodes can belong to the same institution.</p>
<p>As FED is already run by secret group, its also possible most of bitcoin full node is already running by some institutes.</p>

CC BY-SA 4.0
2024-05-28T07:00:11.683Z
You misunderstand. Having even 99.9% of nodes on the network is meaningless in terms of someone's ability to alter the Bitcoin network's consensus rules.
chytrik
CC BY-SA 4.0
2024-05-28T13:47:40.220Z
Possible duplicate of https://bitcoin.stackexchange.com/q/61759/5406
Murch
CC BY-SA 4.0
2024-06-03T07:01:51.547Z
@Murch Thanks for this useful link. but its not a duplicate question.
Burair abbas
<bitcoin-core><blockchain><bitcoind><bitcoin-core-development><bitcoin-cash>
Why changing Bitcoin Cap Limit Is Not Possible
Burair abbas
# Why changing Bitcoin Cap Limit Is Not Possible

(Asked by: username_0 on 2024-05-28)

To alter the Bitcoin blockchain protocol, such as increasing the Bitcoin cap, a consensus among the majority (95%) of participants is necessary due to decentralization and the consensus mechanism.

However, with only 18,000 full node Bitcoin users, achieving the required 95% agreement threshold, roughly 17,100 full nodes, don't seem challenging. Many of these nodes can belong to the same institution.

As FED is already run by secret group, its also possible most of bitcoin full node is already running by some institutes.

**Tags:** bitcoin-core, blockchain, bitcoind, bitcoin-core-development, bitcoin-cash

> **Comments:**
> **username_1**: You misunderstand. Having even 99.9% of nodes on the network is meaningless in terms of someone's ability to alter the Bitcoin network's consensus rules.  
> **username_2**: Possible duplicate of https://bitcoin.stackexchange.com/q/61759/5406  
> **username_0**: @username_2 Thanks for this useful link. but its not a duplicate question.  

---

## 2 answers

### Answer by username_3 on 2024-05-28. Score: 3 | Accepted answer

Imagine Bitcoin was run by only you and 2 other friends. Each of you run their own node. You decide you want to change the code, so you spin up 40 new nodes so that now you have 95% of the nodes. You change the code on your nodes, but your friends don't.

What would happen is that you would be left alone, while your friends would keep exchanging sats between them. No one will accept your blocks, the network would fork and your nodes would be mining blocks that no one care about.

In a nutshell, it's not about 95% of the nodes, it's about 95% of economic interests on the network. And it doesn't need to be 95%, it must be a vast majority, but not sure if the value is fixed on 95%.

> **Comments:**
> **username_0**: If network start forking between my block and my friends block. Just because majority nodes accepted my protocols (because i am running them), due to which my branch increase in length and accepted by main block.  Because as per the rule longest chain consider valid and all node switch to it.  
> **username_4**: @username_0, the longest **valid** chain, nodes don't keep track of invalid blocks. (and it is chain with most work not longest)  
> **username_3**: As @username_4 said, even though there are 40 nodes mining branch B (your branch), your friend's nodes will not accept those blocks, since they would be invalid to them (remember, they didn't update the code, so they are still running the previous version of the code) so they will keep themselves on branch A.  
> **username_0**: @username_3 , If i am merging my branch B into main branch and every other node have to update their software. Which mean all the node now follow my code changes. Right?  
> **username_3**: @username_0 no. You cannot merge branches, since they are incompatible. Let's say blocks on branch B (your branch) have a new block subsidy of 21 while blocks on initial branch still have the initial 3.125 subsidy. Your friend nodes will never accept your blocks, and you cannot force them to update their code. From the fork moment onwards there will be 2 branches/networks, Bitcoin and Buraircoin.  
> **username_0**: @username_3  I believe i am not understanding the blockchain or bitcoin principle.  Let me define it: There are more than 300 issues in Bitcoin github and developers are actively working on it. Bitcoin is based on blockchain and it is just a project which allow people to transfer crypto-currency over the internet with PoW. And every person who literal own that project in their local machine are the full nodes and act like a ledger. Am i correct till now ?  
> **username_0**: Like any other project, bitcoin is just a project. If developer is fixing any bug or improving any thing, than all node simple update its software and it got reflected their. For example: if i want to change the logo of bitcoin than i create a new feature branch, update the logo and open the merge request. When it got accepted. New logo is reflected when someone update its software.  Just because its an application people will update it with their own comfortability. Like user update their android phone and windows laptop.  
> **username_0**: @username_3  As i am repeating myself again. Like any other project, bitcoin is just a project. For example: If i am change any logic or fixing any bug in my ecommerce project. Or changing logo. I dont ask my user or do consensus either they like new logo or not.  They update the software and logo updated. So, why dont we just simple change the bitcoin code like any other project?  
> **username_3**: First, there's a central point for Bitcoin code at https://github.com/bitcoin/bitcoin. In order for you (or any other person) to change the code, the change must be accepted by the repo coordinators. Second, not all changes are equal: changing a logo doesn't change the coin, but changing the consensus rules will. Third, there's no auto update on bitcoin, users must update it by themselves. So, you're not wrong, changing bitcoin is about changing the code, but that change must be accepted by the community to have an effect, and that's why you cannot change the bitcoin cap limit on your own.  
> **username_0**: @username_3 as per your statement: 'changing a logo doesn't change the coin, but changing the consensus rules will' Why changing the consensus need to change the coin? A simple 'CHANGE OF LOGIC' can't identify as a Change in Consensus Or Change in Logo.  If i change the consensus rule and most of nodes accepted it. Then those you haven't updated there software are the one left alone.  
> **username_0**: @username_3  For example: old protocol rules said 'Bitcoin cap < 21M' while new updated code block protocol said 'Bitcoin cap > 21M'.  Then old nodes rejected new block. Plus they loss the opportunity of getting new reward coins on validation.  Vice versa If old nodes validate any coin all of the network reject their block because they are violating new protocol.  What if: in old protocol have some bug like one found in 2010 where 184 billion new bitcoin was created in single transaction.  At that point, either they have to leave their branches Or update their code with new protocol.  
> **username_3**: @username_0 "Then old nodes rejected new block. Plus they loss the opportunity of getting new reward coins on validation" - old nodes will be validating and getting rewards from old network. For them the new network is worthless.  
> **username_3**: @username_0 "What if: in old protocol have some bug like one found in 2010 where 184 billion new bitcoin was created in single transaction" - yes, in this case a majority of miners must adhere to the code update in order implement the soft fork and reverse the bug. But this was a very special situation, one of the two moments where Bitcoin had a downtime: https://en.bitcoin.it/wiki/Value_overflow_incident  
> **username_0**: @username_3 - "old nodes will be validating and getting rewards from old network."  If there were a 2 branches. New nodes which are on new protocol and they are in majorities. So, most of the transaction is validated by them. Old nodes which are in minorities like 1% as compare to new nodes. If i did a pizza transaction. And its validated by old nodes. The receiver and me both using different wallet service provider. My wallet confirmed my transaction but receiver wallet only verify the new protocol branch, can't verified it. Does this create any conflict? If there any chances for this scenario?  
> **username_3**: @username_0 you would have 2 networks: Bitcoin with 2 nodes, and Buraircoin with 40 nodes. They will not validate transactions from each other, as Bitcoin nodes don't validate BCash transactions and vice-versa.  
> **username_0**: @username_3 Thanks for your all answers.  

---

### Answer by username_2 on 2024-06-03. Score: 2

Every Bitcoin node unilaterally enforces the protocol rules locally. Bitcoin Core (and most other Bitcoin node software) does *not* have an auto-update function. Nodes only update when their operators choose to install a new version of the software. Node operators *decide what they consider to be Bitcoin* every time they choose which version of the software to run. **Not updating** to a version that implements new rules that breaks with established precepts of Bitcoin is the *expected decision*. Bitcoin’s network rules emerge from these individual decisions.

Therefore, it is unlikely that you would succeed at convincing 17,000 of 18,000 nodes to run your forward-incompatible version. Even if you spin up thousands of new nodes, the existing nodes will not be influenced: they enforce the rules of their own implementation. *Even if you were to convince a majority to upgrade to your new version, a minority could stick to the old rules*, the nodes following the old rules would simply reject the first block found by the new nodes and ban the peer for sending them invalid data. The networks would separate in two whenever the new nodes published their first block.

Basically, it comes down to: "I don’t care what rules your node accepts, my node enforces the rules that I think are Bitcoin." I might reconsider if I see evidence that the economic majority rests with the new rules, but for above reasons, I’d expect that the economic majority would stick to the old rules, just like it did when BCH forked off.


---

