# Is verification of a blockchain computationally cheaper than recreating it?

One of the advantages of cryptocurrencies like Bitcoin that is often repeated is how hard it should be to manipulate past transactions. The reason that is often stated is that you would have to re-calculate all the headers with all the hash values of the whole chain which is practically un-doable.

My question is: How do you verify the blockchain integrity? Don't you also have to recalculate all the values to see whether they are valid? Or is the complexity class of verification different from creating a new chain? In other words is there some asymmetry at work here and if yes how does it work?

Is verification of blockchain computationally cheaper than recreating it?

Yes, far easier

How do you verify the blockchain integrity? Don't you also have to recalculate all the values to see whether they are valid?

No.

The miner has to find a value for parts of the block they can choose a value for, such that a hash of the block has a certain number of leading zeroes. This is impossible to predict without actually calculating the hash. So miners have to try a very large number of different choices before finding one that produces the hash with the required number of leading zeroes.

The verifier only has to recalculate that hash once because they don't need to vary any part of the block.

(note, the above is a simplification but the principles apply)

Reference:

The reason that is often stated is that you would have to re-calculate all the headers with all the hash values of the whole chain which is practically un-doable.

It's not the mere recalculation of new headers: miners currently create about 8×10^19 block candidates every second. However, at current difficulty levels, it takes about 4.8×10^22 block candidates until a valid block is found. E.g. to change the history five blocks back, you have to find six blocks (approximately 2.9×10^23 block candidates) before the whole network together finds one more block.