As RedGrittyBrick points out, every node unilaterally validates all data they receive, thereby enforcing all rules of the Bitcoin protocol. Nodes can't be convinced by many peers telling them about invalid data. If data doesn't fit the consensus rules, they'll just drop that data and ban the peers that sent them invalid data. So, to respond with a bit more detail to your last paragraph:
For example, if a given party controlled the majority (or even smaller percentage) of validator nodes, could they change their Bitcoin Core code to do any of the following and disrupt the network?
- Reject incoming mempool transactions based on their own implementation of an address block list
- Flood the mempool with faulty transactions and slow things down for all other node participants (ie remove the initial verification checks for transactions (https://github.com/bitcoin/bitcoin/blob/master/src/validation.cpp))
- Work in coordination with a miner to accept a mined transaction block that has invalid transactions
- Reject a valid block that a miner legitimately has created, causing the reward to go elsewhere
It doesn't matter how many nodes misbehave, having a single honest peer is enough to learn about the actual best chain, and to learn about more peers. One exception is if all your peers are colluding to trick you. Then they can hide new data from you, and, if they also have sufficient mining power, even present you with an alternative shorter chaintip that your node will misconstrue as the best chain in absence of better information. If all your peers are controlled by an attacker, this is referred to as an eclipse attack.
Beyond that, yes, someone could do the things you propose, but they would not have the intended effect: nodes can reject transactions locally, but that will not stop other nodes from forwarding the same transactions to each other. Nodes can create faulty data and spam their peers with it, but their peers will simply ban them for relaying invalid dataβyour node won't ever accept invalid data just because it's presented multiple times. Nodes can deliberately accept invalid blocks, but that won't cause other nodes to accept those blocks. Nodes can reject a valid block, but that just forks them off from the best chain.
A node is free to create an alternate reality for themselves, but they cannot change other nodes' evaluation of the situation.
You can get bonuses upto $100 FREE BONUS when you:
π° Install these recommended apps:
π² SocialGood - 100% Crypto Back on Everyday Shopping
π² xPortal - The DeFi For The Next Billion
π² CryptoTab Browser - Lightweight, fast, and ready to mine!
π° Register on these recommended exchanges:
π‘ Binanceπ‘ Bitfinexπ‘ Bitmartπ‘ Bittrexπ‘ Bitget
π‘ CoinExπ‘ Crypto.comπ‘ Gate.ioπ‘ Huobiπ‘ Kucoin.
Comments