Let's say I found a tarball with blockchain data files which I load to my datadir
and start my Bitcoin Core client, what sort of attacks am I vulnerable to? Could the files contain fake balances? If yes, what will happen if another peer requests a block which has altered data in it, how will that other peer handle this situation?
1 Answer
Let's say I found a tarball with blockchain data files which I load to my datadir and start my Bitcoin Core client, what sort of attacks am I vulnerable to? Could the files contain fake balances?
It depends. If you're just importing blocks (so no chainstate/
subdirectory with UTXO set), there should not be any possible attack. The client will validate those blocks at startup time, just as if they were being received from the network, to rebuild the chainstate. If one of the blocks was modified, it would be rejected as an invalid block at this time, and the correct blocks would be requested from the network instead.
However, if you accept a chainstate from someone, anything is possible. They can convince you they have unlimited amounts of money, or convince you they have paid you in the past. For any future transactions relying on such faked funds, getting to confirm them would require cooperation from a miner that is willing to build an invalid chain to defraud you (or others, in case many people used that chainstate "backup").
If yes, what will happen if another peer requests a block which has altered data in it, how will that other peer handle this situation?
Blocks can't be altered without invalidating them, so other peers downloading blocks from you can't be affected. Similarly, a -reindex
would fix any problems for yourself as well.