<p>The blockchain is not determined by a majority vote and does not necessarily change if a significant portion of nodes claim an alternative chain is the main chain. Rather the main chain is determined by each node independently, and all nodes arrive at the same conclusion independently because they all are following the same set of rules.</p>
<p>So even if an attacker were able to have more nodes than honest nodes, and those nodes were broadcasting an alternate chain, all of the blocks in that chain would still have to pass validation by the honest nodes before those honest nodes will accept those blocks. This means that all transactions must be valid, the proof of work for every block must be valid, etc. That alternative chain must be valid for it to be accepted by other nodes, regardless of how many malicious nodes claim that it is the main chain.</p>
<p>If the alternative chain contained &quot;fake data&quot; that is invalid, then the entire chain would be rejected as invalid and no honest node would accept it. If the alternative chain is fully valid, and if it has more cumulative work than what honest nodes currently consider to be the main chain, then the honest nodes would switch to that alternative chain.</p>

CC BY-SA 4.0
2022-01-18T09:07:56.957Z
I have tried transferring 0.1 BTC from my Exodus, Coinbase Pro to Crypto.com and it took 1 hour or perhaps even close to 2 hours. It said it needed 3 or 6 confirmations or something. So I guess it does not mean 3 or 6 confirmations from 3 or 6 nodes, but rather, it check hundreds of random computers and consider it 1 confirmation... and so it hits hundreds of computer and they all land on the "bad guys", the probability is really small.  If it lands on one "honest guy", then the confirmation is not established and considered invalid. Is that how we can understand it?
Stefanie Gauss
CC BY-SA 4.0
2022-01-18T17:18:23.247Z
No. Confirmations is the number of blocks into the blockchain you must go to find the transaction that contains your transaction. 1 confirmation means that the latest block in the chain contains your transaction. 2 confirmations means that the 2nd most recent block contains it. 3 means the 3rd most recent, and so on. Confirmations is not related to nodes verifying your transaction. Of course a transaction can only be confirmed (has at least one confirmation) if the block that includes it is valid.
Ava Chow
CC BY-SA 4.0
2022-01-17T03:33:01.870Z
2022-01-17T03:33:01.870Z
Ava Chow
<p>What you are describing is an eclipse attack -- if the city ran enough nodes with the &quot;faulty&quot; blockchain they could make a node connecting to the network believe that that blockchain was the reality. This chain however would differ in the hashes that it contains so clients would reject it.</p>
<p>There are checkpoint hashes within that are hard-coded into clients:
<a href="https://bitcoin.stackexchange.com/questions/3114/which-blocks-get-to-be-checkpoints">Which blocks get to be checkpoints?</a></p>
<p>The &quot;fake data&quot; you describe would be easy to disambiguate from a higher proof of work chain (which cannot be faked no matter how many computers you have because it requires a tremendous number of hashes that have accumulated from all the miners over many years).</p>

CC BY-SA 4.0
2022-01-17T02:35:44.293Z
An eclipse attack is surrounding a victim node with *only* attacker nodes, so that it cannot learn about the true chain. Just spinning up more nodes is not nearly enough for that. As long as the victim has *any* connection to the honest network, even just a single one, they'll learn about the true chain and switch over.
Pieter Wuille
CC BY-SA 4.0
2022-01-17T02:42:55.087Z
what if it is not all fake data, but just 1 fake entry that says, "transfer 10 BTC from address 1 to address 2?"
Stefanie Gauss
CC BY-SA 4.0
2022-01-17T03:27:50.403Z
*Any* invalid transaction would be detected by an honest node and that chain would be discarded
meshcollider
CC BY-SA 4.0
2022-01-17T14:16:00.347Z
You're linking to another question where the answer is "none", which directly contradicts what you're saying. There are no checkpoints.
Jannes
CC BY-SA 4.0
2022-01-17T02:25:14.310Z
2022-01-17T02:25:14.310Z
user491880
<p>Google says</p>
<blockquote>
<p>As of now, there are roughly 12,130 public nodes running on the Bitcoin network.</p>
</blockquote>
<p>So in a nearby small city, there are 70,000 people. If 1 household is assumed to have 3 people on average, there are 23,333 households.</p>
<p>Does that mean if each household runs a Bitcoin node using a US$5000 PC and provides some &quot;fake data&quot;, now these 23,333 nodes become the majority and can alter the Bitcoin blockchain any way it wants to?</p>
<p>P.S. Maybe &quot;fake data&quot; is too vague.  How about: it is not all fake data, but just 1 fake entry that says, &quot;transfer 10 BTC from address 1 to address 2?&quot;</p>

CC BY-SA 4.0
2022-01-17T03:42:09.637Z
Possible duplicate of https://bitcoin.stackexchange.com/q/95564/5406
Murch
<blockchain><nodes><sybil-attack>
It only takes 20,000 computers to alter the Bitcoin blockchain?
Stefanie Gauss
# It only takes 20,000 computers to alter the Bitcoin blockchain?

(Asked by: username_0 on 2022-01-17)

Google says

> As of now, there are roughly 12,130 public nodes running on the Bitcoin network.

So in a nearby small city, there are 70,000 people. If 1 household is assumed to have 3 people on average, there are 23,333 households.

Does that mean if each household runs a Bitcoin node using a US$5000 PC and provides some "fake data", now these 23,333 nodes become the majority and can alter the Bitcoin blockchain any way it wants to?

P.S. Maybe "fake data" is too vague. How about: it is not all fake data, but just 1 fake entry that says, "transfer 10 BTC from address 1 to address 2?"

**Tags:** blockchain, nodes, sybil-attack

> **Comments:**
> **username_1**: Possible duplicate of https://bitcoin.stackexchange.com/q/95564/5406  

---

## 2 answers

### Answer by username_2 on 2022-01-17. Score: 5

The blockchain is not determined by a majority vote and does not necessarily change if a significant portion of nodes claim an alternative chain is the main chain. Rather the main chain is determined by each node independently, and all nodes arrive at the same conclusion independently because they all are following the same set of rules.

So even if an attacker were able to have more nodes than honest nodes, and those nodes were broadcasting an alternate chain, all of the blocks in that chain would still have to pass validation by the honest nodes before those honest nodes will accept those blocks. This means that all transactions must be valid, the proof of work for every block must be valid, etc. That alternative chain must be valid for it to be accepted by other nodes, regardless of how many malicious nodes claim that it is the main chain.

If the alternative chain contained "fake data" that is invalid, then the entire chain would be rejected as invalid and no honest node would accept it. If the alternative chain is fully valid, and if it has more cumulative work than what honest nodes currently consider to be the main chain, then the honest nodes would switch to that alternative chain.

> **Comments:**
> **username_0**: I have tried transferring 0.1 BTC from my Exodus, Coinbase Pro to Crypto.com and it took 1 hour or perhaps even close to 2 hours. It said it needed 3 or 6 confirmations or something. So I guess it does not mean 3 or 6 confirmations from 3 or 6 nodes, but rather, it check hundreds of random computers and consider it 1 confirmation... and so it hits hundreds of computer and they all land on the "bad guys", the probability is really small.  If it lands on one "honest guy", then the confirmation is not established and considered invalid. Is that how we can understand it?  
> **username_2**: No. Confirmations is the number of blocks into the blockchain you must go to find the transaction that contains your transaction. 1 confirmation means that the latest block in the chain contains your transaction. 2 confirmations means that the 2nd most recent block contains it. 3 means the 3rd most recent, and so on. Confirmations is not related to nodes verifying your transaction. Of course a transaction can only be confirmed (has at least one confirmation) if the block that includes it is valid.  

---

### Answer by username_3 on 2022-01-17. Score: -1

What you are describing is an eclipse attack -- if the city ran enough nodes with the "faulty" blockchain they could make a node connecting to the network believe that that blockchain was the reality. This chain however would differ in the hashes that it contains so clients would reject it.

There are checkpoint hashes within that are hard-coded into clients:
[Which blocks get to be checkpoints?](https://bitcoin.stackexchange.com/questions/3114/which-blocks-get-to-be-checkpoints)

The "fake data" you describe would be easy to disambiguate from a higher proof of work chain (which cannot be faked no matter how many computers you have because it requires a tremendous number of hashes that have accumulated from all the miners over many years).

> **Comments:**
> **username_4**: An eclipse attack is surrounding a victim node with *only* attacker nodes, so that it cannot learn about the true chain. Just spinning up more nodes is not nearly enough for that. As long as the victim has *any* connection to the honest network, even just a single one, they'll learn about the true chain and switch over.  
> **username_0**: what if it is not all fake data, but just 1 fake entry that says, "transfer 10 BTC from address 1 to address 2?"  
> **username_5**: *Any* invalid transaction would be detected by an honest node and that chain would be discarded  
> **username_6**: You're linking to another question where the answer is "none", which directly contradicts what you're saying. There are no checkpoints.  

---

