<blockquote>
  <p>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?</p>
</blockquote>

<p>It depends. If you're just importing <em>blocks</em> (so no <code>chainstate/</code> 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.</p>

<p>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").</p>

<blockquote>
  <p>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?</p>
</blockquote>

<p>Blocks can't be altered without invalidating them, so other peers downloading blocks from you can't be affected. Similarly, a <code>-reindex</code> would fix any problems for yourself as well.</p>

CC BY-SA 3.0
2016-08-30T10:59:49.667Z
2016-09-04T15:51:11.677Z
2016-09-04T15:51:11.677Z
Pieter Wuille
<p>Let's say I found a tarball with blockchain data files which I load to my <code>datadir</code> 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?</p>

<blockchain><bitcoind><bitcoin-core><synchronization><bootstrap.dat>
Faking blockchain data in bitcoin-core
xabbix
# Faking blockchain data in bitcoin-core

(Asked by: username_0 on 2016-08-30)

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?

**Tags:** blockchain, bitcoind, bitcoin-core, synchronization, bootstrap.dat


---

## 1 answers

### Answer by username_1 on 2016-08-30. Score: 8 | Accepted 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.


---

