1
Imagine the following scenario:
I send you 1000 BTC.
After 6 confirmations, you give me what I bought.
I create another transaction with 900 BTC to my own wallet and 100 BTC as transaction fee, using the same input as the previous transaction. (double spend)
The mining pools find that 100 BTC is higher than 6 block rewards which is 12.5 * 6 = 75 BTC, so they start to mine on the last block which doesn't contain my first transaction.
Those 6 confirmations are orphaned and the pools earned more money.
My double spending succeeded.
I know that this mining strategy is not implemented in most pools today, but nothing is preventing pools from doing this in the future.
100 BTC is a large amount of money. But after many years the block reward will be very low, so this attack may not require so much money to perform in the future.
I googled and didn't find any related questions.
I want to know whether this kind of attack is possible in practice and what we can do to prevent this.
I think this implies that the mining pool was not aware of the previous 6 blocks (highly improbable) Usually when it's added to the chain, it's irreversible, they would not fork from an old block, because it would be computationally infeasible to catch up and generate a longer chain than the current one. And if they could rewrite the chain fast enough, there would be far more lucrative things they could do. – QuantumLicht – 2018-03-11T20:33:11.873
Many pools can use this strategy together for profit – zzh1996 – 2018-03-11T20:36:51.847
1I think it's up to the receiver of the money to prevent that kind of thing by waiting for more than 6 blocks, or better, by waiting for enough blocks that the rewards are bigger than the value transferred. – Osias Jota – 2018-03-11T20:48:13.883