<p>This is precisely why Bitcoin Core does not support pruning in this manner. However this does not always need to be the case. There are people working on things like UTXO set syncing where each block commits to the UTXO set as of that block. You can then use that to be sure that you have downloaded the proper blockchain.</p>

CC BY-SA 3.0
2017-12-04T02:40:26.980Z
Does this mean that each block would have a hash of all the current unspent addresses? Because I think that would solve it.
CornSmith
CC BY-SA 3.0
2017-12-04T02:45:40.203Z
Not unspent addresses (those don't exist technically). Rather all of the unspent outputs.
Ava Chow
CC BY-SA 3.0
2017-12-04T03:07:51.943Z
Cool, yep I'm convinced that'd solve it. A pruned node would immediately see that they're compromised
CornSmith
CC BY-SA 3.0
2017-12-03T02:19:48.930Z
2017-12-03T02:19:48.930Z
Ava Chow
<p>This isn't a problem today, because if I want to run a pruned node then I still have to download the whole chain, but it sure would be nice if I could just download a pruned chain instead and validate it. </p>

<p>The attack I'm thinking of would be that I download a pruned chain, but the person I got it from omitted an unspent address from a thousand blocks back. I'd have no way of knowing. </p>

<p>This means that the full chain will always have to be downloaded and pruned manually. Right?</p>

<p><strong>edit</strong>: <s>I think I figured it out. All the unspent addresses on a pruned chain should add up to all the bitcoin in circulation, which is known based on how many blocks there are. So you could tell right away if someone evil omitted an unspent address.</s>. Turns out that doesn't help</p>

<blockchain><address><attack><full-node><pruning>
Can a bad actor omit an unspent address from a pruned chain?
CornSmith
# Can a bad actor omit an unspent address from a pruned chain?

(Asked by: username_0 on 2017-12-02)

This isn't a problem today, because if I want to run a pruned node then I still have to download the whole chain, but it sure would be nice if I could just download a pruned chain instead and validate it.

The attack I'm thinking of would be that I download a pruned chain, but the person I got it from omitted an unspent address from a thousand blocks back. I'd have no way of knowing.

This means that the full chain will always have to be downloaded and pruned manually. Right?

**edit**: ~~I think I figured it out. All the unspent addresses on a pruned chain should add up to all the bitcoin in circulation, which is known based on how many blocks there are. So you could tell right away if someone evil omitted an unspent address.~~. Turns out that doesn't help

**Tags:** blockchain, address, attack, full-node, pruning


---

## 1 answers

### Answer by username_1 on 2017-12-03. Score: 2 | Accepted answer

This is precisely why Bitcoin Core does not support pruning in this manner. However this does not always need to be the case. There are people working on things like UTXO set syncing where each block commits to the UTXO set as of that block. You can then use that to be sure that you have downloaded the proper blockchain.

> **Comments:**
> **username_0**: Does this mean that each block would have a hash of all the current unspent addresses? Because I think that would solve it.  
> **username_1**: Not unspent addresses (those don't exist technically). Rather all of the unspent outputs.  
> **username_0**: Cool, yep I'm convinced that'd solve it. A pruned node would immediately see that they're compromised  

---

