As far as my understanding goes, nodes in the network should accept the longest branch of blocks and disregard any other branches (excuse my terminology if it’s not what’s normally used - I hope it is clear what I mean).

If this is correct, I am wondering what would prevent me from creating my own node in which I append blocks to very old blocks. These appended blocks could contain transactions from my address to another one of my addresses for example (just to make sure the block is valid - I’m assuming there are some constraints on what makes a block valid, like amount of transactions or bits in a block). After probably a long while I would have a branch that has outgrown the current branch, undoing all transactions from the block my node started with to the current active block, and instead replacing all of those by my useless transactions.

What is preventing me from doing this? I know that I would still have to mine these blocks, and understand that this would probably be a the main thing preventing me from doing this right now.

However, as I understand, mining difficulty is determined by the amount of blocks mined in a certain time. Say that the BTC network becomes useless one day for some reason, and almost no new blocks were created, would it then be possible to execute this (after a long while to keep the difficulty of my own mined blocks low)

Thanks for any answers in advance. If BTC does ever become obsolete and unused it’d be cool to magically be able to erase everything (if there are still nodes around that is)

  • 2
    The short answer is that "the longest chain" is just a simplification; the actual criterion is "the most-work chain that passes all validity rules". Just adding blocks does not help, if those blocks have a low difficulty ("work" is informally defined as the sum of all difficulties in the chain). – Pieter Wuille Mar 18 at 1:37
  • That makes a lot of sense! Thank you :) – timgfx Mar 18 at 20:51