<p>Block data is not necessary to check proof of work, or to check that past block headers has not been altered. This is because for a block to pass proof of work check, the hash of its <em>header</em> must be less than a certain value. So, the header (which is just 80 bytes in Bitcoin) has enough information to check proof of work. Also, each header includes the hash of header of the previous block. So, assuming that the hash function is collision-resistant, it is impossible to modify any of the previous headers without changing the hash of the last header, and it is impossible to change any header while keeping proof of any work done after the corresponding block. The only way to "fake" a mini-blockchain is to outrun the honest miners, which requires an attacker to have comparable amount of hash power.</p>

CC BY-SA 3.0
2016-09-23T07:53:28.257Z
Ha, I just revisited this question and realized that I now understood your answer sufficiently to understand why it completely answered the question. I guess two years ago I didn't know enough about the headers of Bitcoin blocks. :)
Murch
CC BY-SA 3.0
2014-10-01T08:37:37.530Z
2014-10-01T08:37:37.530Z
abacabadabacaba
<p>I have just finished reading the paper <a href="http://bitfreak.info/files/pp2p-ccmbc-rev1.pdf" rel="nofollow">Purely P2P Crypto-Currency With Finite Mini-Blockchain by J.D. Bruce</a>. While I got the impression, that the rolling blockchain as an idea might work, I was left wondering about one detail in the proposal. </p>

<p>It seems to me that the proof-chain fails to live-up to it's purpose:<br>
Bruce suggests that it would be sufficient to keep the proof-of-work solutions of the blocks as a <em>proof-chain</em>. Yet, how could one verify the proof-chain if all the block data has been discarded as suggested? Wouldn't it be possible to replace any blockhash in the proof-chain with another valid blockhash and start a competing mini-blockchain from that point?</p>

<p>That way an attacker could spend any amount of time on the mini-blockchain and just insert it into the proof-chain whenever it is sufficiently long.</p>

<p>Am I missing something? Why would the proposal work as intended by the author? Or is it actually "broken"?</p>

<blockchain><alternatives>
Mini-Blockchain proposal: How is the proof-chain secured against injections?
Murch
# Mini-Blockchain proposal: How is the proof-chain secured against injections?

(Asked by: username_0 on 2014-05-08)

I have just finished reading the paper [Purely P2P Crypto-Currency With Finite Mini-Blockchain by J.D. Bruce](http://bitfreak.info/files/pp2p-ccmbc-rev1.pdf). While I got the impression, that the rolling blockchain as an idea might work, I was left wondering about one detail in the proposal.

It seems to me that the proof-chain fails to live-up to it's purpose:  
Bruce suggests that it would be sufficient to keep the proof-of-work solutions of the blocks as a *proof-chain*. Yet, how could one verify the proof-chain if all the block data has been discarded as suggested? Wouldn't it be possible to replace any blockhash in the proof-chain with another valid blockhash and start a competing mini-blockchain from that point?

That way an attacker could spend any amount of time on the mini-blockchain and just insert it into the proof-chain whenever it is sufficiently long.

Am I missing something? Why would the proposal work as intended by the author? Or is it actually "broken"?

**Tags:** blockchain, alternatives


---

## 1 answers

### Answer by username_1 on 2014-10-01. Score: 2 | Accepted answer

Block data is not necessary to check proof of work, or to check that past block headers has not been altered. This is because for a block to pass proof of work check, the hash of its *header* must be less than a certain value. So, the header (which is just 80 bytes in Bitcoin) has enough information to check proof of work. Also, each header includes the hash of header of the previous block. So, assuming that the hash function is collision-resistant, it is impossible to modify any of the previous headers without changing the hash of the last header, and it is impossible to change any header while keeping proof of any work done after the corresponding block. The only way to "fake" a mini-blockchain is to outrun the honest miners, which requires an attacker to have comparable amount of hash power.

> **Comments:**
> **username_0**: Ha, I just revisited this question and realized that I now understood your answer sufficiently to understand why it completely answered the question. I guess two years ago I didn't know enough about the headers of Bitcoin blocks. :)  

---

