1

This question already has an answer here:

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?

marked as duplicate by Greg Hewgill, Nate Eldredge, dchapes, hafnero, John T May 20 '14 at 23:25

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

migrated from stackoverflow.com May 14 '14 at 17:40

This question came from our site for professional and enthusiast programmers.

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

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 '14 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. – Erik Aronesty Dec 6 '16 at 18:20

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