What happens when a strong attacker has control of majority or all of the full nodes?
What damage can he do and would they be reversible?
Bitcoin Stack Exchange is a question and answer site for Bitcoin crypto-currency enthusiasts. It only takes a minute to sign up.Sign up to join this community
Here is an additional answer about what you can do if you control all fully validating nodes (but not necessarily all nodes that don't validate):
Bitcoin's security rests on auditing by full nodes. It is directly what prevents them from accepting fraudulent payments, and indirectly what makes it uneconomical for miners to produce invalid blocks (which in turn could be used to defraud non-validating clients).
If you have control over all fully validating nodes, you can effectively set the protocol rules at will. Including but not limited to theft and printing money out of thin air (beyond what the subsidy schedule currently permits).
Assuming that you have majority control of full nodes and no control of mining. Here are few attacks that can be done:
Double spend even after confirmation: Don't relay the blocks that build upon the block (in which you spent coins). Instead relay any other forks on the blockchain to make them the longest chain
Fool SPV clients: SPV clients like electrum, multibit connect to full node for information. You can send them fraudulent transactions/chain by building headers on very less difficultly level
Force miners/users to pay you: Relay only those blocks/transactions that send your address some bitcoins. Non paying blocks/tx will be delayed through the network or will be orphaned. People wanting fast transactions will be forced pay you a bribe
During the moment of control, they can do at least the following:
relay transactions selectively. this means they can choose to not relay transactions which are valid and therefor censor users of the network.
relay blocks selectively. this means they can choose not to relay valid blocks by miners, as well as choose to relay invalid blocks, or blocks containing invalid transactions. it allows them to deny new nodes the current blockchain and the history it carries, and could even supply new nodes with an entirely different chain.
if 100% of all full nodes and all non-node storage of the current chain is lost, then they effectively control the current chains history.
however, since bitcoin is open to participation and holds decentralization as one of its core values, it is practically impossible to gain control of 100% of the nodes without new participants entering the network.
if less than 100% of the full nodes or all non-node storage of the current chain is compromised, the netwok can revert back to its last non-compromised state as new participants set up new, uncompromised, nodes.
attacking the network by controlling the nodes and taking actions that hurt users would also lower the utility of the network and that would lower the value of the tokens on the network, so it might not be economically feasable to do in the first place.