AFAIK, verification of transactions on the blockchain doesn't require the full chain data and six to ten verification will be enough (which makes uses of a Merkle tree). Thus, why cannot it abridge the data for a future complete node?

  • 1
    I think it's healthy to re-ask questions since that one was asked more than 2 years ago. May 15, 2014 at 7:52
  • 1
    @LucaMatteis: The situation hasn't changed from when that question was answered. The protocol of Bitcoin still works the same. May 15, 2014 at 20:49
  • @GregHewgill I found not technique detailed description on this. It seems I have to read source code.
    – asn-0184
    May 17, 2014 at 15:24

1 Answer 1


The idea of Bitcoin is that you can obtain the current state of the network without having to trust anyone. You essentially rely on the fact that the state that has most work put into it, is the valid state, and that all transactions are chained together up until the genesys block, after which there are no more transactions.

Now if you were to truncate this state (the block chain) in half, you could hard code this information into the software and it could reach some form of consensus among the nodes of the network. However this opens the door for attacks, because a dishonest node could easily fake and send you a wrong block height information, perhaps making you believe that a different history happened before the truncation of the block chain. And it could do this by simply broadcasting chunks of the history that was truncated, because lots of work has been put in that chunk and your client is programmed to accept longest worked on chains.

You would really have no way of knowing unless you read the entire history yourself.

  • Thanks, but I should ask in a more concise way that I'd like to dip into tech details. If mining is not involving/safe enough to do without actual history records in blockchain we can clean up the history redundancy. The only question is here that I do not know how the merkle tree is generated. Can anyone explain me an abstract model that takes in (previn) and outputs (stdout), showing in a diagram?
    – asn-0184
    May 15, 2014 at 13:41
  • No, nobody could fool you. If you truncate the chain a year ago, saving the aggregated state, and the old block hash, all you'd need to do is ignore anything that doesn't hash to the longest chain, offset by your truncation. There's no way a fork can reach back a year, so you're good. Clients do this all the time. And since you reached your own conclusion and cache state... you didn't have to trust anyone to do it. Dec 6, 2016 at 18:20

Not the answer you're looking for? Browse other questions tagged or ask your own question.