I'm dealing with some problems to finally understand how implicit consensus works and I've come across with one question. Suppose the following:

A malicious miner proposes the following block to be included somewhere in the middle of the blockchain. If he just copies the value of the previous block's hash pointer in the new block's header, and recalculates the following blocks hash pointers till the end of the chain, by coping the same header in each block in the original chain, wouldn't this blockchain be as valid as the original, considering that the new hash pointers match with the content of each previous block?

A way of trying to clarifying myself and answering to the question was to think of the implicit consensus. Could it be that the other well-behaving nodes will deny this proposing block by storing a copy of the previous state of the blockchain and comparing the old blockchain with a new one?


Changing the previous block hash in all of the subsequent block hashes will change those block's hashes too. They become different blocks and are treated as different blocks by nodes. When other nodes try to verify those other blocks, they will extremely likely compute a block hash which does not meet the Proof of Work requirement, and thus those blocks would fail validation.

The way around this is for the attacker to recompute the Proof of Work, but then that takes a lot of time and computing power and is thus difficult to do.

  • Okay, understood. So the proof of work will fail because it's highly unlikely that the new computed proof of work hash would match the target space required by the proof of work. Therefore it falls to be computably unfeasible to recalculate all the hashes up to the head of the chain. Is that right? – ignacio aranguren Dec 30 '20 at 21:22
  • Just one more question: how many proofs of work have to be verified when a new block is added to the chain? Is this range going from each previous block which includes every last validated transaction to which the new transactions of the minted block are referring to, to the last accepted block? – ignacio aranguren Dec 30 '20 at 21:36
  • @ignacioaranguren to verify the state of the network, every block all the way back to the genesis block needs to be verified. A node only needs to do this once, and then each new block is verified as it is received, and this verification includes checking that previous block hash is included and correct (but the node has already verified that previous block - no need to do it all over again!). – chytrik Dec 30 '20 at 23:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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